Google मानचित्र मार्कर से ऑब्जेक्ट आईडी कैसे प्राप्त करें? - जावा, एंड्रॉइड, गूगल-मैप्स, हैशपैप, एंड्रॉइड-मैप्स-वी 2

मैं Google मानचित्र पर मार्कर आकर्षित करने के लिए इस कोड का उपयोग कर रहा हूं (उन लोगों को छुपाएं जो स्क्रीन पर अदृश्य हैं)

for (MyMapPointModel item : items) {
// If the item is within the the bounds of the screen
if (bounds.contains(item.getLatLng())) {
// If the item isn"t already being displayed
if (!visibleMarkers.containsKey(item.getId())) {
// Add the Marker to the Map and keep track of it with
// the HashMap
// getMarkerForItem just returns a MarkerOptions object
customMarker = getMap().addMarker(getMarkerForItem(item));
visibleMarkers.put(item.getId(), customMarker);
drawMarker(item.getLatLng(), item.getThumbUri(), item.getId());
}
} else { // If the marker is off screen
// If the course was previously on screen
if (visibleMarkers.containsKey(item.getId())) {
// 1. Remove the Marker from the GoogleMap
visibleMarkers.get(item.getId()).remove();
// 2. Remove the reference to the Marker from the
// HashMap
visibleMarkers.remove(item.getId());

}
}
}

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

उत्तर:

जवाब के लिए 0 № 1

नीचे आज़माएं

 mMap.setOnMarkerClickListener(new OnMarkerClickListener()
{

@Override
public boolean onMarkerClick(Marker arg0) {
arg0.getId() //get id
//use switch case
// or use title
if(arg0.getTitle().equals("title"))
// do something
return true;
}

});

उत्तर № 2 के लिए 1

और मैं हैशपैप में आइटम आईडी के साथ मार्कर संग्रहीत कर रहा हूं मैं हैशप का उपयोग कर रहा हूँ

मुझे लगता है कि आप उस विशेष डेटा संरचना का सफलतापूर्वक कहीं और उपयोग कर रहे हैं और इसलिए यह उपयोगी है।

आपकी समस्या के लिए, हालांकि, ऐसा लगता है कि आपको इसकी आवश्यकता है HashMap<String, Integer>, का उपयोग कर getId() पर Marker कुंजी के रूप में यह आपको अपना देखने की अनुमति देगा Integer इसे दिया Marker

या, यदि आप अपनी खुद की जानकारी विंडो बना रहे हैं, तो शीर्षक में शीर्षक या स्निपेट फ़ील्ड्स का उपयोग करें Marker अपने पूर्णांक की स्ट्रिंग प्रस्तुति को पकड़ने के लिए, ताकि आप इसका उपयोग कर सकें getTitle() या getSnippet() उस मूल्य को सीधे प्राप्त करने के लिए।


जवाब के लिए 0 № 3

इसके लिए इस कोड का प्रयोग करें

 mMap.setOnMarkerClickListener(new OnMarkerClickListener()
{

@Override
public boolean onMarkerClick(Marker arg0) {
if(arg0.getTitle().equals("MyHome")) // if marker source is clicked

return true;
}

});

संबंधित सवाल
सबसे लोकप्रिय