当用户点击 osmdroid 地图中的标记时如何设置标记片段?
How to set a marker snippet when the user taps on the marker in osmdroid map?
以下是我的实现,当我点击它时我看不到我的标记上的任何描述。我什至浏览了很多资源,但找不到有效的资源。寻找积极的出路。
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;
}
您的代码是正确的,应该可以工作。您应该使用最新版本的 openstreetmap 库并相应地修改代码。 Latest version 目前是 5.6.5。
快速制作的示例给出了这个结果(点击后):
我不得不注释掉这一行:
marker.setIcon(getResources().getDrawable(R.drawable.black));
因为我没有drawable
类 您正在使用的 osmbonuspack 不再存在,因为它们已移至 osmdroid 库。您将不得不更改您的导入(例如 org.osmdroid.views.overlay.Marker 等)。您可以完全删除 osmbonuspack 依赖项,因为您提供的代码不需要它。
您将不得不更改图块源的结构:
osm.setTileSource(TileSourceFactory.MAPNIK);
(但请记住,openstreetmap 瓦片有 a usage policy。)
最后说明:标记的常见问题是当您设置自定义 onMarkerClickListener 时,不会调用默认实现。您需要通过调用 marker.showInfoWindow() 从侦听器打开标记 window。但这不是你的问题。
以下是我的实现,当我点击它时我看不到我的标记上的任何描述。我什至浏览了很多资源,但找不到有效的资源。寻找积极的出路。
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;
}
您的代码是正确的,应该可以工作。您应该使用最新版本的 openstreetmap 库并相应地修改代码。 Latest version 目前是 5.6.5。
快速制作的示例给出了这个结果(点击后):
我不得不注释掉这一行:
marker.setIcon(getResources().getDrawable(R.drawable.black));
因为我没有drawable
类 您正在使用的 osmbonuspack 不再存在,因为它们已移至 osmdroid 库。您将不得不更改您的导入(例如 org.osmdroid.views.overlay.Marker 等)。您可以完全删除 osmbonuspack 依赖项,因为您提供的代码不需要它。
您将不得不更改图块源的结构:
osm.setTileSource(TileSourceFactory.MAPNIK);
(但请记住,openstreetmap 瓦片有 a usage policy。)
最后说明:标记的常见问题是当您设置自定义 onMarkerClickListener 时,不会调用默认实现。您需要通过调用 marker.showInfoWindow() 从侦听器打开标记 window。但这不是你的问题。