我向你解释我的问题,我必须在 map 中显示一些多边形,并且当我单击其中一个多边形的窗口信息中存在的链接时,我必须能够调用 JavaScript 方法。
当我直接使用 google api 时没有问题,您会在下面找到结果和代码:
http://jsfiddle.net/9fzy3/embedded/result/
var contentString = "您可以添加此区域:添加";
var infowindow = new google.maps.InfoWindow({
内容:内容字符串
});
函数initializeGoogleMaps() {
var PolygonCenter = new google.maps.LatLng(-74.43013763427734,45.95257568359375),
占位符 = document.getElementById("print_map"),
map 选项 = {
中心:多边形中心,
map 类型控制:假,
map 类型 ID:google.maps.MapTypeId.ROADMAP
},
map =新的google.maps.Map(占位符,mapOptions),
kmlLayer = 新的 google.maps.KmlLayer({
网址:“http://xxxxxxx/910413303.kml”
});
google.maps.event.addListener(kmlLayer, '点击', 函数(evt) {
infowindow.setPosition(evt.latLng)
infowindow.open( map );
});
kmlLayer.setMap( map );
}
但我想知道,是否仅在使用 kml 文件时才有可能具有相同的行为。
对我来说,我认为这是不可能的,但我想听听你的意见。因为我被迫只使用 kml 文件。
我认为解决我的问题的更好解决方案,可能是使用 geoxml3 api 解析 kml 文件,然后直接使用 api 使用解析后的元素。
预先感谢您的建议。
最佳答案
您的 KML 可以有一个默认信息窗口 - 检查 Placemarks 的结构 开始使用:名称/描述应显示在 v3 中。
此外,您可以使用 ExtendedData如果您不想对描述中的所有内容进行硬编码,则可以使用更结构化的信息窗口模板。
关于javascript - 我们如何从 kml 文件直接调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23375448/