2015-02-11 4 views
5

मैं ऑफ़लाइन मानचित्र के लिए मैपबॉक्स एसडीके का उपयोग कर रहा हूं मैंने मानचित्र पर कई मार्कर जोड़े हैं, मार्करों के लिए क्लिक ईवेंट कैसे प्राप्त करें। क्या मार्कर के क्लिक ईवेंट प्राप्त करने का कोई तरीका है?मैपबॉक्स एसडीके का उपयोग कर मार्कर की क्लिक इवेंट कैसे प्राप्त करें?

+0

आपने अपनी समस्या का समाधान कैसे किया @BSavaliya – Erum

+0

मैंने मार्कर क्लिक के लिए ItemizedIconOverlay का उपयोग किया है – BSavaliya

+0

मैं केवल एक का उपयोग करने की कोशिश कर रहा हूं स्थान जो उपयोगकर्ता पर वर्तमान स्थान पर मार्कर – Erum

उत्तर

5

मुझे MapboxIconOverlay नामक मैपबॉक्स एसडीके द्वारा प्रदान की गई कार्यक्षमता का उपयोग करके मैपबॉक्स में मार्कर क्लिक ईवेंट का समाधान मिला।

मैं निम्नलिखित की तरह किया है:

public void placeGTMarker() { 
     alMarkerGT = new ArrayList<Marker>(); 
     marker = new Marker("my Marker", "", latLng); 
     marker.setMarker(activity.getResources() 
       .getDrawable(R.drawable.map_pin)); 
     mv.addMarker(marker); 
     alMarkerGT.add(marker); 
     itemizedIconOverlayGT = new ItemizedIconOverlay(activity, alMarkerGT, 
       new OnItemGestureListener<Marker>() { 

        @Override 
        public boolean onItemSingleTapUp(int index, Marker item) { 
         return false; 
        } 

        @Override 
        public boolean onItemLongPress(int index, Marker item) { 
         return false; 
        } 
       }); 
     mv.addItemizedOverlay(itemizedIconOverlayGT); 
    } 

हम एक क्लिक के लिए onItemSingleTapUp पर किसी भी घटना प्रदर्शन कर सकते हैं और लंबे समय से क्लिक के लिए हम onItemLongPress विधि का उपयोग कर सकते हैं।

मैं अपने आवेदन में इस्तेमाल किया है और यह बहुत अच्छा

+0

है, आप वर्तमान स्थान में एनीमेशन में ज़ूम के साथ सर्कल खींचते हैं और क्लिक पर इसे उस सर्कल को ज़ूम आउट करना चाहिए – Erum

+0

नहीं, मैंने बस – BSavaliya

+0

पर मार्कर छवि डाली है, मैं केवल मार्कर दिखाना चाहता हूं उपयोगकर्ता के वर्तमान स्थान पर छवि, itemizedIconOverlay में alMarkerGT के UserLocationOverlay instad का उपयोग करने की अनुमति नहीं है? – Erum

0

आप MapboxMap

map.setOnMarkerClickListener(this); 

पर एक MarkerClickListener सेट और फिर हो सकता है कि आपकी कक्षा/गतिविधि/टुकड़ा लागू काम करता है MapboxMap.OnMarkerClickListener

@Override 
public boolean onMarkerClick(@NonNull Marker marker) { 
    return true; 
} 
+0

इस दृष्टिकोण में आप एक ही मार्कर को दूसरे के बाद दो बार क्लिक नहीं कर सकते हैं, यह पहला क्लिक प्राप्त करता है लेकिन उसी मार्कर पर अन्य क्लिक नहीं मिलते हैं जबतक कि आप मानचित्र पर क्लिक न करें और फिर उसी मार्कर को फिर से क्लिक्स करें। –

+1

हाँ, मैपबॉक्स इस बारे में जानता है और मुझे लगता है कि वे इस पर काम कर रहे हैं https://github.com/mapbox/mapbox-gl-native/issues/6099 https://github.com/mapbox/ MapBox-जीएल देशी/मुद्दों/3176 – vanshg

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