You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android端点击谷歌地图KML标记时如何展示标记内所需信息

解决方案

你遇到的问题是谷歌地图安卓SDK的KmlLayer默认不会自动应用自定义点位样式,也不会绑定点击事件加载信息窗口,需要补充两部分代码实现需求:

一、设置自定义标记样式

加载图层后遍历所有点位,应用你需要的图标样式即可:

// 原有KML加载代码
InputStream inputStream = kml_data;
KmlLayer layer = new KmlLayer(map, inputStream, context);
layer.addLayerToMap();

// 新增:遍历所有KML点位应用样式
// 遍历根容器下的点位
for (KmlContainer container : layer.getContainers()) {
    traverseContainer(container);
}
// 遍历直接挂载在图层下的点位
for (KmlPlacemark placemark : layer.getPlacemarks()) {
    setPlacemarkStyle(placemark);
}

// 递归遍历嵌套容器内的点位
private void traverseContainer(KmlContainer container) {
    for (KmlPlacemark placemark : container.getPlacemarks()) {
        setPlacemarkStyle(placemark);
    }
    for (KmlContainer nestedContainer : container.getContainers()) {
        traverseContainer(nestedContainer);
    }
}

// 为单个点位设置样式
private void setPlacemarkStyle(KmlPlacemark placemark) {
    if (placemark.getGeometry() instanceof Point) {
        // 示例:替换为你需要的自定义图标资源
        BitmapDescriptor chargeIcon = BitmapDescriptorFactory.fromResource(R.drawable.charge_station_marker);
        KmlStyle customStyle = new KmlStyle();
        customStyle.setMarkerIcon(chargeIcon);
        // 如果KML本身已定义样式,也可以直接解析KML的Style标签内容复用
        placemark.setStyle(customStyle);
    }
}

二、绑定标记点击事件实现信息弹窗

KmlLayer默认不会处理点击事件,需要手动添加监听,解析点位属性加载到弹窗:

// 新增图层点击监听
layer.setOnFeatureClickListener(feature -> {
    if (!(feature instanceof KmlPlacemark)) return;
    KmlPlacemark placemark = (KmlPlacemark) feature;
    // 获取Open Charge Map返回的点位属性,包含站点名、地址、充电参数等信息
    String stationName = placemark.getProperty("name");
    String stationDesc = placemark.getProperty("description");

    Marker marker = (Marker) placemark.getMarker();
    if (marker == null) return;
    // 基础弹窗直接设置标题和内容即可
    marker.setTitle(stationName);
    marker.setSnippet(stationDesc);
    // 如果需要和网页端完全一致的渲染效果,可将HTML格式的stationDesc用WebView加载到自定义InfoWindow中
    marker.showInfoWindow();
});

内容的提问来源于stack exchange,提问作者Snow Star

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:36:02