2015-02-11 56 views
5

我正在使用MapBox SDK進行離線地圖我在地圖上添加了多個標記, 如何獲取標記的點擊事件。 有沒有辦法獲得標記的點擊事件?如何使用MapBox SDK獲取標記點擊事件?

+0

你如何解決你的問題@BSavaliya – Erum 2015-05-18 05:56:34

+0

我已經使用ItemizedIconOverlay標記點擊 – BSavaliya 2015-05-18 06:04:22

+0

即時通訊只試圖使用一個位置,即用戶當前所在位置的設備上有標記 – Erum 2015-05-18 07:23:35

回答

5

我在mapbox中使用mapbox sdk提供的一個名爲ItemizedIconOverlay的功能得到了標記點擊事件的解決方案。

我已經做了類似以下內容:

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 2015-05-18 07:00:32

+0

不,我只在位置上放置了標記圖像 – BSavaliya 2015-05-18 08:04:34

+0

我只想顯示標記在用戶的當前位置上顯示圖像,因此不允許在ItemizedIconOverlay中使用UserLocationOverlay alMarkerGT的Instad?如何克服 – Erum 2015-05-18 08:33:01

0

您可以在MapboxMap

map.setOnMarkerClickListener(this); 

設置MarkerClickListener,然後讓你的類/活動/片段實施MapboxMap.OnMarkerClickListener

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

在這種方法中,您不能一次接一個地點擊相同的Marker,它會獲得第一次點擊,但不會在同一Marker上獲得其他點擊,除非您單擊Map,然後再次點擊相同的Marker。 – 2016-10-19 14:59:21

+1

是的,MapBox知道這一點,我假設他們正在研究它 https://github.com/mapbox/mapbox-gl-native/issues/6099 https://github.com/mapbox/ mapbox-GL-本地/問題/ 3176 – vanshg 2016-10-20 22:41:40