我正在尝试使用侧边栏中的一系列复选框来构建 map ,以显示标记组。我的KML文件的结构如下(它来自Google Earth):
<document>
<folder>
<placemark>
<xx />
<xxx />
</placemark>
</folder>
</document>
我能够加载KML并将其作为图层应用到 map ,一次显示所有标记和多边形等。我不确定如何在KML中操作特定节点,我不确定,也无法在任何地方找到相关文档-通过复选框来显示特定文件夹中的所有地标,或显示所有多边形,但不显示标记或反之亦然。
由于地标数量众多,我宁愿使用Google Earth来维护KML文件,而不是通过javascript / API单独添加它们。使用Fusion Tables会更好吗?
为了使事情更加复杂,在某些情况下,我想显示一个文件夹中的所有地标,另一个文件夹中的一个地标-我想我将使用ExtendedData来实现这一目的,或者按名称显式添加标记。稍后再说...
最佳答案
据我所知,您是对的-添加KmlLayer
时,无法访问Google Maps创建的Javascript对象。我什至不认为它们存在-Google Maps v3经常将图层渲染为在服务器端渲染的覆盖图块,因此可能没有您期望的Marker
或Polygon
对象(see the API docs)。
这给您两个选择:
myKmlLayer.setMap(map)
和myKmlLayer.setMap(null)
隐藏/显示它们。此处的Javascript相对简单,但管理数据较为困难,而且您只能使用一个完整的KML文件的粒度-您无法显示/隐藏单个地标。 您还可以通过听
addoverlay
来捕获引用,如this answer to a related question中所述。关于javascript - 通过Google Maps API操纵KML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7975567/