有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java当用户点击osmdroid映射中的标记时,如何设置标记片段?

下面是我的实现,当我点击它时,我看不到我的标记上的任何描述。我甚至查了很多资料,但找不到一个有用的。寻找积极的出路

public Marker addMarker(GeoPoint p) {

    Marker marker = new Marker(osm);
    marker = new Marker(osm);
    marker.setPosition(p);
    osm.getOverlays().add(marker);
    marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
    marker.setIcon(getResources().getDrawable(R.drawable.black));
    marker.setTitle("Marker");
    marker.setSnippet("Snippet marker");
    marker.setSubDescription("SubDescription marker");
    return marker;

}

共 (1) 个答案

  1. # 1 楼答案

    您的代码是正确的,应该可以工作。您应该使用最新版本的openstreetmap库并相应地修改代码Latest version目前为5.6.5

    快速制作的示例给出了以下结果(点击后):

    enter image description here

    我不得不评论这句话:

    marker.setIcon(getResources().getDrawable(R.drawable.black));
    

    因为我没有抽绳器

    您从osmbonuspack使用的类不再存在,因为它们已移动到osmdroid库。您必须更改导入(例如,到org.osmdroid.views.overlay.Marker等)。您可以完全删除osmbonuspack依赖项,因为您提供的代码不需要它

    您必须更改磁贴源的构造:

    osm.setTileSource(TileSourceFactory.MAPNIK);
    

    (但请记住,openstreetmap瓷砖有a usage policy。)

    最后一点注意:标记的常见问题是,当您在MarkerClickListener上设置自定义时,默认实现不会被调用。您需要通过调用marker从侦听器打开marker窗口。showInfoWindow()。但这不是你的问题