18

Google मानचित्र पर लगभग 100 मार्कर हैं और एक विशेष मार्कर भी दिखाना आवश्यक है। वर्तमान में, मानचित्र ज़ूम आउट होने पर इसके चारों ओर मार्कर इसे पूरी तरह से या आंशिक रूप से छुपाते हैं। मुझे उस मार्कर को पूरी तरह से दिखने की ज़रूरत है और मुझे लगता है कि इसे अन्य सभी मार्करों के शीर्ष पर रखना चाल चलाना चाहिए। लेकिन मुझे अपने स्टैकिंग ऑर्डर (जेड-इंडेक्स) को संशोधित करने का कोई तरीका नहीं मिल रहा है।Google मानचित्र: मैं मार्कर के जेड-इंडेक्स को कैसे बदल सकता हूं?

+2

Google मानचित्र API v3 समाधान यहां है: http://salman-w.blogspot.com/2012/07/change-z-index-google-map-v3-markers.html –

उत्तर

5

जब आप शीर्ष पर चाहते हैं तो मार्कर बनाते समय GMarkerOptions में zIndexProcess विकल्प का उपयोग करें। उदाहरण के लिए:

var pt = new GLatLng(42.2659, -83.74861); 
var marker = new GMarker(pt, {zIndexProcess: function() { return 9999; }}); 
map.addOverlay(marker); 

मेरा मानना ​​है कि डिफ़ॉल्ट z- इंडेक्स मार्कर के बिंदु के अक्षांश है कि करने के लिए है, इसलिए इस मोर्चे के लिए एक एकल मार्कर लाने में काफी सुरक्षित होना चाहिए। इसके अलावा, यह सिर्फ एक साधारण उदाहरण था; आप अपने सभी मार्करों के जेड-इंडेक्स को जो भी सरल या जटिल तरीका चाहते हैं, सेट कर सकते हैं। एक और उदाहरण दो कार्यों के लिए है: एक विशेष मार्करों के लिए और बाकी के लिए एक। मार्कर की: (संख्या zindex)

var pt1 = new GLatLng(42.2659, -83.74861); 
var pt2 = new GLatLng(42.3000, -83.74000); 
var marker1 = new GMarker(pt1, {zIndexProcess: specialMarker}); 
var marker2 = new GMarker(pt2, {zIndexProcess: normalMarker}); 
map.addOverlay(marker1); 
map.addOverlay(marker2); 

function specialMarker() { 
    return 9999; 
} 

function normalMarker() { 
    return Math.floor(Math.random()*1000); 
} 
+0

आह ... ऐसा लगता है कि यह वादा करता है । लेकिन मुझे आश्चर्य है कि 99 99 हार्ड कोडिंग ठीक है या नहीं। क्या ज़ेड-इंडेक्स> = 99 99 के साथ मार्कर होना संभव है? –

+0

मैंने इस प्रश्न को हल करने के लिए उपरोक्त मेरा उत्तर संपादित किया। – Mark

+0

मुझे संकेत दिया गया था कि मैं दिए गए अक्षांश पर प्रस्तुत किए जाने वाले मार्करों के जेड-इंडेक्स को खोजने के लिए GOverlay.getZIndex() फ़ंक्शन का उपयोग करने में सक्षम हो सकता हूं, लेकिन इसे काम करने में सक्षम नहीं था :( –

5

, jhanifen के जवाब देने के लिए पर जोड़ने से आप सभी बाकी के शीर्ष पर होना करने के लिए अपने एक विशेष मार्कर प्राप्त करना चाहते हैं, सेट यह google.maps.Marker.MAX_ZINDEX + 1 के zindex है। यह सुनिश्चित करेगा कि यह मानचित्र पर किसी भी मार्कर के शीर्ष पर है।