在 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】:我找到了解决方法。
将此添加到<style>
部分中的地标
<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 包不存在