触发Google地图KML地标上的点击事件

时间:2013-02-19 19:52:19

标签: javascript google-maps google-maps-api-3 kml

我有一个加载在动态外部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标记预加载所有内容。谢谢!

2 个答案:

答案 0 :(得分:2)

目前无法实现。

明确错误跟踪器上的问题,对其进行投票并遵循其进度:https://code.google.com/p/gmaps-api-issues/issues/detail?id=3006

答案 1 :(得分:1)

我找到了解决方法。

将其添加到<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);
});