2013-07-16 3 views
11

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

उत्तर

2

दुर्भाग्यवश, एंड्रॉइड के लिए Google मानचित्र API V2 में Markers में जेड-इंडेक्स नहीं हैं। वे अपने स्वयं के क्रम खींचें संभाल

+1

2016 और यह अब सच है .. zindex – amalBit

+0

अपने असली अब –

5

मिले एक समाधान:

Marker.showInfoWindow();

यह इष्टतम नहीं है क्योंकि यह जानकारी विंडो को मार्कर के ऊपर दिखाई देता है लेकिन यह कुछ भी नहीं है।

+0

आप कर सकते हैं नहीं InfoWindowAdapter वापसी 0 0 द्वारा पिक्सल उस मामले में देखें। –

+3

बेकार है कि Google ने इसे लागू नहीं किया है। मुझे अपने ऐप के लिए इसकी ज़रूरत है, और मैं नहीं देख सकता कि क्यों डेवलपर इसे नियंत्रित करने में सक्षम नहीं होना चाहिए। यह समाधान कुछ भी नहीं है, लेकिन यह वास्तव में हैकी लगता है और मेरे ऐप के लिए बहुमुखी नहीं है। –

+0

हाँ यह काम करता है, लेकिन केवल तब तक जब तक हम मानचित्र पर क्लिक नहीं करते हैं। मेरे पास मार्करों की संख्या है, सभी की अपनी जानकारी विंडो है, लेकिन मैं उस मार्कर के लिए showinfowindow() का उपयोग कर रहा हूं, जिसे मैं शीर्ष पर दिखाना चाहता हूं, क्योंकि मैं मानचित्र पर क्लिक करता हूं, जानकारी विंडो छुपाता हूं और मार्कर भी छिप जाता है। –

0

मेरा मानना ​​है कि यह पोस्ट Google Maps v2 Marker zOrdering - Set to top का डुप्लिकेट है। Bastien Beurier का उत्तर मार्कर.शोइन्फोइंडो() समाधान का उपयोग करता है और यह भी दिखाता है कि 0x0 infowindow कैसे बनाएं यदि आप वास्तव में इन्फॉइंडो प्रकट नहीं करना चाहते हैं।

लिनियरलाउट में टेक्स्ट व्यू जोड़ने के बारे में उस उत्तर के नीचे मेरी टिप्पणी भी ध्यान दें।

14

एंड्रॉइड मैप्स एपीआई v2 के 27 जून, 2016 रिलीज, v9.2.0, अब एक जेड-इंडेक्स का समर्थन करता है - https://developers.google.com/maps/documentation/android-api/releases#june_27_2016 पर घोषणा देखें।

तो सुनिश्चित करें कि आपके नक्शे/Play सेवाएं संस्करण build.gradle में v9.2.0 के लिए सेट है या उच्चतर है:

compile 'com.google.android.gms:play-services-maps:9.2.0' 

z- सूचकांक प्रलेखन नीचे (https://developers.google.com/maps/documentation/android-api/marker#marker_z-index से) है:

जेड-इंडेक्स मानचित्र पर अन्य मार्करों के सापेक्ष इस मार्कर के स्टैक ऑर्डर को निर्दिष्ट करता है। उच्च जेड-इंडेक्स वाले मार्करों के शीर्ष पर एक उच्च जेड-इंडेक्स वाला मार्कर खींचा जाता है। डिफ़ॉल्ट जेड-इंडेक्स मान 0.

अन्य ओवरले के जेड-इंडेक्स के बावजूद मार्कर हमेशा टाइल परतों और अन्य गैर-मार्कर ओवरले (ग्राउंड ओवरले, पॉलिलाइन, बहुभुज, और अन्य आकार) से ऊपर खींचे जाते हैं। अन्य ओवरले की तुलना में मार्करों को प्रभावी रूप से एक अलग जेड-इंडेक्स समूह में माना जाता है।

जब नक्शा करने के लिए मार्कर जोड़ते समय सूचकांक सेट कर सकते हैं:

map.addMarker(new MarkerOptions() 
    .position(new LatLng(10, 10)) 
    .title("Marker z1") 
    .zIndex(1.0f)); 

... या Marker.setZIndex() उपयोग करने के बाद मार्कर बनाया जाता है। क्लिक घटनाओं पर z- सूचकांक के प्रभाव पर

अधिक प्रलेखन (https://developers.google.com/maps/documentation/android-api/marker#marker_click_events से) नीचे है:

  • एक उपयोगकर्ता मार्करों के एक समूह पर क्लिक करता है, क्लिक करें घटना के साथ मार्कर के लिए शुरू हो रहा है उच्चतम जेड-इंडेक्स।
  • अधिकतर एक ईवेंट प्रति क्लिक ट्रिगर किया जाता है। दूसरे शब्दों में, निचले जेड-इंडेक्स मानों के साथ मार्कर या अन्य ओवरले पर क्लिक पारित नहीं किया जाता है।
  • मार्करों के समूह पर क्लिक करने से क्लस्टर के माध्यम से चक्र के बाद के क्लिक का कारण बनता है, प्रत्येक बारी बारी से चयन करता है।चक्र का क्रम पहले जेड-इंडेक्स को प्राथमिकता देता है, फिर क्लिक पॉइंट से निकटता।
  • यदि उपयोगकर्ता क्लस्टर की निकटता के बाहर क्लिक करता है, तो एपीआई क्लस्टर को पुन: गणना करता है और क्लिक चक्र की स्थिति को रीसेट करता है ताकि यह शुरुआत से शुरू हो।
  • क्लिक ईवेंट मार्कर क्लस्टर के माध्यम से चक्र को पुनरारंभ करने से पहले अन्य आकारों और ओवरले के माध्यम से आता है।
  • अन्य ओवरले के जेड-इंडेक्स के बावजूद मार्करों को प्रभावी रूप से अन्य ओवरले या आकार (पॉलिलाइन, बहुभुज, मंडल, और/या ग्राउंड ओवरले) की तुलना में एक अलग जेड-इंडेक्स समूह में माना जाता है। यदि एकाधिक मार्कर, ओवरले या आकार एक-दूसरे के शीर्ष पर ओवरलैड होते हैं, तो क्लिक इवेंट पहले मार्कर के क्लस्टर के माध्यम से साइकिल चलाया जाता है, फिर अन्य क्लिक करने योग्य ओवरले या आकृतियों के लिए ट्रिगर किया जाता है, जो उनके जेड-इंडेक्स मानों के आधार पर होता है।
+0

धन्यवाद, आपने मुझे बचाया –