2016-07-12 23 views
21

मैं Google एपीआई दस्तावेज़ पर कहीं भी नहीं ढूंढ पा रहा हूं कि इसका नक्शा अनुकूलित किया जा सकता है (मुझे पता है कि इसे केवल वेब पर अनुकूलित किया जा सकता है) लेकिन पॉकेमॉन गो ऐप पर देख सकता है कि यह कस्टम दिखाने के लिए Google API का उपयोग करता है नक्शा। https://www.reddit.com/r/pokemongo/comments/4s71t1/suggestion_download_city_map_as_a_way_to_decrease/पोकेमॉन गो Google मानचित्र API का उपयोग करके कस्टम Google मानचित्र का उपयोग कैसे करता है?

किसी को भी इस दृष्टिकोण यह पता लगाने में सक्षम: के लिए पोकीमोन जाओ

संदर्भ गूगल मानचित्र का उपयोग करता है? enter image description here

+0

टाइल ओवरले एक विकल्प हो सकता है: https://developers.google.com/maps/documentation/android-api/tileoverlay – Juvi

+0

पॉकेटमैन गो मानचित्र मैपबॉक्स स्टूडियो एसडीके का उपयोग करके डिज़ाइन किया गया था। –

+0

@ हर्षपटल क्या आपके पास इसका स्रोत है? – ThatBrianDude

उत्तर

5

Wikipedia arcticle के पोकीमोन जाओ निर्माता को:

Niantic, Inc एक सॉफ्टवेयर विकास कंपनी सबसे अच्छा है

कस्टम मानचित्र मैं हरे रंग और नीले आकाश के साथ नीचे नक्शा का मतलब के लिए जाना जाता है जो बढ़ी हुई वास्तविकता मोबाइल गेम्स इन्स्रेस और पोकेमॉन गो विकसित कर रहा है। यह किहोल, इंक। द्वारा संस्थापक जॉन हैंके ने 2010 में नैन्टिक लैब्स के रूप में गठित किया था, Google पर एक आंतरिक स्टार्टअप।

जैसा कि आप देख सकते हैं, Niantic Google पर एक आंतरिक स्टार्टअप था। हालांकि दोनों कंपनियां अपना अलग रास्ता तय कर चुकी हैं, फिर भी Google ने नैन्टिक में निवेश किया है। तो मुझे लगता है कि नैन्टिक की कुछ संभावनाएं हैं, जो हमारे लिए उपलब्ध नहीं हैं। जैसा कि आपने कहा था, मुझे एंड्रॉइड के लिए Google मानचित्र डॉक्स में कोई रास्ता नहीं मिला।

मुझे यकीन नहीं है कि यह सच है, तो यह सिर्फ एक अनुमान है।

42

मुझे नहीं पता कि पोकेमॉन गो यह कैसे करता है, लेकिन आप कुछ लेआउट चाल के साथ वास्तव में अच्छा दिखने वाला प्रभाव प्राप्त कर सकते हैं। मैं एक आकाश छवि का उपयोग कर रहा हूं और मैं आकाश छवि और नक्शा को ढाल दृश्य (क्षितिज अनुकरण करने के लिए) और नक्शा को एक सेमिट्रांसेंट हरे रंग के दृश्य के साथ कवर कर रहा हूं।

activity_maps.xml

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="170dp"> 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="centerCrop" 
      android:src="@drawable/sky"/> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="20dp" 
      android:layout_alignParentBottom="true" 
      android:background="@drawable/gradientsky"/> 
    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <fragment 
      android:id="@+id/map" 
      android:name="com.google.android.gms.maps.SupportMapFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      tools:context="mypackage.MapsActivity"/> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#2200ff00"/> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="20dp" 
      android:background="@drawable/gradientmap"/> 

    </RelativeLayout> 

</LinearLayout> 

gradientsky.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
    <gradient 
     android:angle="90" 
     android:startColor="#ffffff" 
     android:endColor="#00ffffff" /> 
</shape> 

gradientmap.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
    <gradient 
     android:angle="270" 
     android:startColor="#ffffff" 
     android:endColor="#00ffffff" /> 
</shape> 

MapsActivity.java (तुच्छ, लेकिन मैं इसे जोड़ रहा तो उदाहरण के पूरा हो गया है)

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_maps); 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 

    @Override 
    public void onMapReady(GoogleMap map) { 
     map.getUiSettings().setCompassEnabled(false); 
     map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
     CameraPosition cameraPosition = new CameraPosition.Builder() 
       .target(new LatLng(39.87266,-4.028275)) 
       .zoom(18) 
       .tilt(67.5f) 
       .bearing(314) 
       .build(); 
     map.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
    } 
} 

परिणाम इस प्रकार है:

enter image description here

एक और दृष्टिकोण के लिए एक TileOverlay का उपयोग कर किया जा सकता है एक कस्टम मानचित्र दिखाओ। आप टाइल ओवरले here के बारे में अधिक जानकारी प्राप्त कर सकते हैं।

उदाहरण को बेहतर बनाने के लिए, आप आकाश में कुछ लंबन प्रभाव जोड़ना चाहेंगे ताकि नक्शा घुमाए जाने पर यह चलता है।

+3

बहुत प्रभावशाली – MoGa

+1

आपने मेरा दिन बनाया: डी –

+0

बहुत बढ़िया, क्या आप इस उदाहरण के साथ एक गिस्ट सबमिट कर सकते हैं? –

संबंधित मुद्दे