2015-02-11 22 views
5

Çevrimdışı harita için MapBox SDK kullanıyorum Haritaya çok sayıda işaretçi ekledim, işaretçiler için tıklama olayı nasıl elde edilir. İşaretçi tıklama etkinliğini almanın bir yolu var mı?MapBox SDK kullanarak işaretleyici tıklama olayı nasıl elde edilir?

+0

Sorununuzu nasıl çözdüğünüz @BSavaliya – Erum

+0

Ben sadece bir tane kullanmaya çalışıyorum işaretleyici – BSavaliya

+0

işaretleyici için ItemizedIconOverlay kullanmış Kullanıcının mevcut konumunun işaretçisi – Erum

cevap

5

MapizedIconOverlay adlı mapbox sdk tarafından sağlanan bir işlev kullanılarak harita kutusunda işaretçi tıklama olayı için çözüm var.

aşağıdaki gibi yapmış:

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); 
    } 

Biz tek bir tıklama için onItemSingleTapUp herhangi bir etkinliği gerçekleştirebilir ve uzun tıklama için biz onItemLongPress yöntemi kullanabilirsiniz.

benim uygulamada kullanmış ve büyük

+0

ile olan cihazda o anki konumunda hareketli zum yapabiliyor ve tıkla o çevreyi o zumla zumla – Erum

+0

no, sadece konum işaretleyici görüntünün yeri vuransım – BSavaliya

+0

Sadece işaretleyici göstermek istiyorum Kullanıcının mevcut konumu ile ilgili görselleştirmeler için, UserLocationOverlay öğesinin alMarkerGT öğesinin ItemizedIconOverlay uygulamasında kullanılmasına izin verilmiyor mu? – Erum

0

Sen MapboxMap

map.setOnMarkerClickListener(this); 

bir MarkerClickListener ayarlayın ve sonra olabilir Sınıf/etkinlik/parça uygulamak çalışır MapboxMap.OnMarkerClickListener

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

Bu yaklaşımda, aynı İşaretleyiciyi birbiri ardına iki kez tıklayamazsınız, ilk tıklamayı alır ancak Eşleştir'i tıklatıp aynı İşaretleyiciyi yeniden temizlemediğiniz sürece aynı İşaretçide başka tıklamalar almaz. –

+1

Evet, MapBox bunu biliyor ve üzerinde çalıştıklarını varsayıyorum https://github.com/mapbox/mapbox-gl-native/issues/6099 https://github.com/mapbox/ mapbox-gl-yerli/sorunlar/3176 – vanshg

İlgili konular