简体   繁体   English

如何知道我在osmdroid地图中按下的标记?

[英]How to know that marker I press in osmdroid maps?

I would like to know how I can control which marker I clicked on osmdroid. 我想知道如何控制单击osmdroid的标记。

List<Marker> markerList_OSM = new ArrayList<>();

... ... ……

                Marker coorLoad = new Marker(map);
                map.getOverlays().add(coorLoad);
                markerList_OSM.add(coorLoad);

Now, how can I control the press marker? 现在,如何控制印刷机标记? both long and short press. 长按和短按。

In the google maps I use: 在谷歌地图,我使用:

map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @SuppressLint("InflateParams")
        public boolean onMarkerClick(final Marker markerSelect) {
......
......
......
return false;
        }
    });

thank you. 谢谢。

Use setOnMarkerClickListener on a Marker instance. 在Marker实例上使用setOnMarkerClickListener

coorLoad.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
    boolean onMarkerClick(Marker marker, MapView mapView) {
        ....
    }
});

To control a long press, you have to subclass the Marker class, and implement onLongPress method: 要控制长按,您必须将Marker类子类化,并实现onLongPress方法:

@Override public boolean onLongPress(final MotionEvent event, final MapView mapView) {
        boolean touched = hitTest(event, mapView);
        if (touched){
           //here, do whatever you want
           //....
        }
        return touched;
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM