在 Google Maps KML 地标上触发点击事件

Posted

技术标签:

【中文标题】在 Google Maps KML 地标上触发点击事件【英文标题】:Trigger click event on a Google Maps KML placemark 【发布时间】:2013-02-04 15:29:28 【问题描述】:

我有一张正在加载动态外部 KML 的地图,其地标定义如下:

<Placemark id="MapZoneID_23443">
    <name>Name Here</name>
    <description>Text Here</description>
    <styleUrl>#ff8080ff</styleUrl>
    <Polygon>
        <outerBoundaryIs>
            <LinearRing>
                <coordinates>
                    ....
                </coordinates>
            </LinearRing>
        </outerBoundaryIs>
    </Polygon>
</Placemark>

我想做的是有一个链接/下拉列表/任何可以点击或选择的内容,以基本上触发点击$('#MapZoneID_23443') ...但我不知道如何触发该点击或者如果这甚至是可能的。地图可能非常复杂,所以我宁愿不必使用 JS gmaps 标记预加载所有内容。谢谢!

【问题讨论】:

【参考方案1】:

目前不可能。

在错误跟踪器上为该问题加注星标,以便为它投票并关注它的进展:https://code.google.com/p/gmaps-api-issues/issues/detail?id=3006

【讨论】:

【参考方案2】:

我找到了解决方法。

将此添加到&lt;style&gt; 部分中的地标

<BalloonStyle><text>TEXT</text></BalloonStyle>

在.js回调中点击后就可以访问这个值了

event.featureData.info_window_html

所以,在您的 KML 文件中

<Placemark id="MapZoneID_23443">
   <BalloonStyle><text>TEXT</text></BalloonStyle>
   ...
</Placemark>

javascript

google.maps.event.addListener(kmlLayer, 'click', function(event) 
  var content = event.featureData.info_window_html;
  console.log(content);
);

【讨论】:

以上是关于在 Google Maps KML 地标上触发点击事件的主要内容,如果未能解决你的问题,请参考以下文章

Google Earth中的地标文件kml与kmz有何区别?

Google Maps API 和 KML 文件 LocalHost 开发选项

google_maps_flutter 或任何其他 Flutter 地图插件是不是支持谷歌地图的 kml 文件?

错误:com.google.maps.android.kml 包不存在

将KMZ文件上传到我的Google地图中,并在地标描述中添加图像

使用 Google Maps API V3,确定标记是不是在 KML 图层边界内