Android Google मैप्स v2 - myLocation के लिए ज़ूम स्तर सेट करें


105

क्या नए Google मैप्स API v2 के साथ myLocation के लिए ज़ूम स्तर बदलना संभव है?

यदि आप सेट करते हैं GoogleMap.setEnableMyLocation(true);, तो आपको अपना स्थान खोजने के लिए मानचित्र पर एक बटन मिलता है।

यदि आप उस पर क्लिक करते हैं, तो मानचित्र आपको अपने स्थान पर लाएगा और इसे कुछ स्तर तक ज़ूम कर देगा। क्या मैं इस ज़ूम को कम या अधिक होने के लिए बदल सकता हूँ?


1
क्या आपको मायलोकेशन बटन जूम स्तर का कोई विचार है? मुझे वह मूल्य चाहिए।
प्रशांत देवबद्वार

जवाबों:


211

यह संदिग्ध है कि आप इसे डिफ़ॉल्ट myLocation मार्कर के साथ क्लिक पर बदल सकते हैं। हालाँकि, यदि आप चाहते हैं कि ऐप एक बार मिल जाए तो अपने स्थान पर स्वचालित रूप से ज़ूम इन कर लें, तो मैं इस प्रश्न का उत्तर दूंगा

ध्यान दें कि मैंने जो उत्तर दिया है, वह ज़ूम इन नहीं करता है, लेकिन यदि आप onLocationChanged विधि को नीचे दिए गए अक्षर की तरह संशोधित करते हैं, तो आप जो भी ज़ूम स्तर पसंद करते हैं, उसे चुन सकते हैं:

@Override
public void onLocationChanged(Location location) 
{
    if( mListener != null )
    {
        mListener.onLocationChanged( location );

        //Move the camera to the user's location and zoom in!
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 12.0f));
    }
}

146

आप भी उपयोग कर सकते हैं:

mMap.animateCamera( CameraUpdateFactory.zoomTo( 17.0f ) );    

न्यूनतम मूल्य = 2.0 और अधिकतम मूल्य = 21.0 के बीच किसी भी वांछित मान को ज़ूम मान बदलने के लिए।

एपीआई ने चेतावनी दी है कि सभी स्थानों पर अधिकतम ज़ूम पर या उसके निकट मूल्यों पर टाइल नहीं हैं।

में उपलब्ध ज़ूम विधियों के बारे में अधिक जानकारी के लिए इसे देखें CameraUpdateFactory


1
डिफ़ॉल्ट ज़ूम स्तर क्या है ??
इगोरगानापोलस्की 15

14 डिफ़ॉल्ट जूम स्तर है
vin shaba

25

स्थान के साथ - नए GoogleMaps SDK में:

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14));

2
क्या NewLatLngZoom () और zoom () के बीच कोई अंतर है जिसे बहुत सारे अन्य उत्तरों ने संदर्भित किया है? एप्लिकेशन में, अंत उपयोगकर्ता के दृष्टिकोण से, ये समान दिखते हैं।
portfoliobuilder

15

हीटफैनजॉन की तुलना में थोड़ा अलग समाधान, जहां मैं ज़ूम को वर्तमान ज़ूम स्तर में अपेक्षाकृत बदल देता हूं:

// Zoom out just a little
map.animateCamera(CameraUpdateFactory.zoomTo(map.getCameraPosition().zoom - 0.5f));

15

यहाँ अनुमानित ज़ूम स्तर हैं और वे क्या करते हैं:

1: World
5: Landmass/continent
10: City
15: Streets
20: Buildings

इसलिए आप उदाहरण के लिए सड़क स्तर पर ज़ूम करने के लिए कुछ ऐसा कर सकते हैं (ध्यान दें कि नीचे "15f" सड़क स्तर है):

 override fun onMapReady(googleMap: GoogleMap?) {
    googleMap?.mapType = GoogleMap.MAP_TYPE_NORMAL
    googleMap?.addMarker(MarkerOptions()
            .position(LatLng(37.4233438, -122.0728817))
            .title("cool place")

            .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ROSE)))

    googleMap?.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng(37.4233438, -122.0728817), 15f))

नोट: बस इसलिए कि आप जानते हैं कि विभिन्न स्थानों में अलग-अलग अधिकतम ज़ूम स्तर हो सकते हैं। googleMap.maxZoomLevelयदि आप अधिकतम या न्यूनतम ज़ूम स्तर प्राप्त करना चाहते हैं तो उपयोग करने का प्रयास करें ।


12

OnMapReady () विधि में

ज़ूमलेवल को किसी भी वांछित मान में बदलें।

float zoomLevel = (float) 18.0;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel));

2

आपको map_activity.xml में केवल एक पंक्ति लिखनी है

map:cameraZoom="13"

मुझे उम्मीद है कि यह आपकी समस्या को हल करेगा ...


2

आप उपयोग कर सकते हैं

    CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
    CameraUpdate zoom = CameraUpdateFactory.zoomTo(12);

1

यहां तक ​​कि मैंने हाल ही में एक ही क्वेरी की थी .... कुछ कैसे उपर्युक्त सेटमैक्सज़ूम में से कोई भी या किसी अन्य मानचित्र: कैमराज़ूम = "13" ने काम नहीं किया, इसलिए मैंने पाया कि जो उपयोग किया गया था, वह पुराना था कृपया गूगल मैप्स के लिए अपनी निर्भरता सुनिश्चित करें यह सही है यह सबसे नया उपयोग है

compile 'com.google.android.gms:play-services:11.8.0' 


0
Location locaton;
double latitude = location.getlatitude;
double longitude = location.getlongitude;

यदि आप ज़ूम को सहेजना चाहते हैं या इसे हर समय प्राप्त करना चाहते हैं, तो आपको बस निम्नलिखित कॉल करने की आवश्यकता है

int zoom = mMap.getCameraPosition().zoom;

//To set that just use

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(getlatitude(), getlongitude),zoom);

0

ऊपर दिए गए अधिकांश उत्तर या तो पदावनत हैं या वर्तमान अक्षांश और देशांतर को बरकरार रखते हुए ज़ूम कार्य करता है और उस सटीक स्थान पर ज़ूम नहीं करता है जिसे आप चाहते हैं। निम्न कोड को अपने onMapReady () विधि में जोड़ें।

@Override
public void onMapReady(GoogleMap googleMap) {
    //Set marker on the map
    googleMap.addMarker(new MarkerOptions().position(new LatLng(0.0000, 0.0000)).title("Marker"));
    //Create a CameraUpdate variable to store the intended location and zoom of the camera
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(0.0000, 0.0000), 13);
    //Animate the zoom using the animateCamera() method
    googleMap.animateCamera(cameraUpdate);
}

0

मैंने "mMap.animateCamera (CameraUpdateFactory.zoomTo (17.0f)) के साथ कोशिश की;" लेकिन यह मेरे लिए काम नहीं किया। इसलिए मैंने इस एनीमेशन का इस्तेमाल शुरू में ज़ूम करने के लिए किया।

LatLng loc = new LatLng(33.8688, 151.2093);
mMap.addMarker(new MarkerOptions().position(loc).title("Sydney"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 18), 5000, null);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.