以下是一个示例代码,展示如何批量添加多种标记,并将每种标记作为一个图层,实时刷新标记位置和弹窗信息。

// 创建地图控件
MapView mapView = findViewById(R.id.map_view);
// 设置地图中心点和缩放级别
mapView.getController().setZoom(10);
mapView.getController().setCenter(new GeoPoint(39.9042, 116.4074));
// 创建标记图层管理器
MarkerLayerManager markerLayerManager = new MarkerLayerManager(mapView);
// 创建多种标记图层
MarkerLayer restaurantLayer = markerLayerManager.createMarkerLayer("restaurant");
MarkerLayer hotelLayer = markerLayerManager.createMarkerLayer("hotel");
// 向每种标记图层中添加标记
restaurantLayer.addMarker(new Marker(mapView).setPosition(new GeoPoint(39.9129, 116.3897)).setTitle("Restaurant A").setSubDescription("This is a restaurant"));
restaurantLayer.addMarker(new Marker(mapView).setPosition(new GeoPoint(39.9042, 116.4074)).setTitle("Restaurant B").setSubDescription("This is a restaurant"));
hotelLayer.addMarker(new Marker(mapView).setPosition(new GeoPoint(39.9129, 116.4074)).setTitle("Hotel A").setSubDescription("This is a hotel"));
hotelLayer.addMarker(new Marker(mapView).setPosition(new GeoPoint(39.9042, 116.3897)).setTitle("Hotel B").setSubDescription("This is a hotel"));
// 注册标记图层管理器
mapView.getOverlayManager().add(markerLayerManager);
// 设置标记图层管理器的点击监听器
markerLayerManager.setOnMarkerClickListener(new MarkerLayerManager.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker, MarkerLayer layer) {
        // 显示标记弹窗信息
        Toast.makeText(MainActivity.this, marker.getTitle() + "\n" + marker.getSubDescription(), Toast.LENGTH_SHORT).show();
        return true;
    }
});

在上述代码中,我们首先创建了一个地图控件,并设置了地图中心点和缩放级别。然后,我们创建了一个标记图层管理器,用于管理多种标记图层。接着,我们使用createMarkerLayer()方法创建了两个标记图层,并向每个标记图层中添加了两个标记。每个标记都设置了位置、标题和子描述。最后,我们将标记图层管理器注册到地图控件中,并设置了标记图层管理器的点击监听器,在标记被点击时显示弹窗信息。

注意,上述代码中的坐标和弹窗信息仅供示例使用,实际使用时需要根据需要更改

android osmdroid批量添加多种标记将每种标记作为一个图层实时刷新标记位置和弹窗信息 给出具体代码

原文地址: https://www.cveoy.top/t/topic/huaJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录