android osmdroid批量添加不同的标记和不同的弹窗并给出具体代码
下面是一个示例代码,用于批量添加不同的标记和不同的弹窗,其中使用了OSMDroid库。
// 定义一个标记列表
ArrayList<OverlayItem> items = new ArrayList<>();
// 创建一个标记
GeoPoint point1 = new GeoPoint(40.7143528,-74.0059731);
OverlayItem item1 = new OverlayItem("New York", "The Big Apple", point1);
Drawable marker1 = getResources().getDrawable(R.drawable.marker1);
item1.setMarker(marker1);
item1.setSnippet("Population: 8,244,910");
items.add(item1);
// 创建另一个标记
GeoPoint point2 = new GeoPoint(51.5073509,-0.1277583);
OverlayItem item2 = new OverlayItem("London", "The Big Smoke", point2);
Drawable marker2 = getResources().getDrawable(R.drawable.marker2);
item2.setMarker(marker2);
item2.setSnippet("Population: 8,136,000");
items.add(item2);
// 将标记添加到地图上
ItemizedOverlay<OverlayItem> overlay = new ItemizedOverlay<>(this, items);
mapView.getOverlays().add(overlay);
// 创建一个弹窗
MapEventsOverlay mapEventsOverlay = new MapEventsOverlay(this, new MapEventsReceiver() {
@Override
public boolean singleTapConfirmedHelper(GeoPoint p) {
Toast.makeText(MainActivity.this, "You tapped the map at " + p.getLatitude() + ", " + p.getLongitude(), Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean longPressHelper(GeoPoint p) {
return false;
}
});
mapView.getOverlays().add(mapEventsOverlay);
在这个示例中,我们首先创建了两个标记,一个是纽约,另一个是伦敦。每个标记都有不同的图标和弹窗内容。然后,我们将这些标记添加到一个“ItemizedOverlay”中,并将该覆盖层添加到地图上。最后,我们创建了一个“MapEventsOverlay”,用于在地图上添加弹窗。
请注意,这只是一个示例代码,您可以根据您的具体需求进行修改和扩展
原文地址: https://www.cveoy.top/t/topic/ht43 著作权归作者所有。请勿转载和采集!