当用户点击osmdroid地图中的标记时,如何设置标记片段?

时间:2017-09-14 05:31:11

标签: java android 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 个答案:

答案 0 :(得分: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。)

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

相关问题