2015-02-11 208 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

相关问题