我向你解释我的问题,我必须在地图中显示一些多边形,当我点击其中一个窗口信息中的链接时,我必须能够调用javascript方法。
直接使用google api时没问题,您可以在下面找到结果和代码:
http://jsfiddle.net/9fzy3/embedded/result/
var contentString = "You can add thi zone : <a href=\"#\" onclick=\"alert('Your zone has been added !')\">add</a>";
var infowindow = new google.maps.InfoWindow({
content: contentString
});
function initializeGoogleMaps() {
var polygonCenter = new google.maps.LatLng( -74.43013763427734,45.95257568359375),
placeholder = document.getElementById("print_map"),
mapOptions = {
center: polygonCenter,
mapTypeControl:false,
mapTypeId: google.maps.MapTypeId.ROADMAP
},
map = new google.maps.Map( placeholder, mapOptions ),
kmlLayer = new google.maps.KmlLayer({
url: "http://xxxxxxx/910413303.kml"
});
google.maps.event.addListener(kmlLayer, 'click', function(evt) {
infowindow.setPosition(evt.latLng)
infowindow.open(map);
});
kmlLayer.setMap(map);
}
var contentString = "You can add thi zone : <a href=\"#\" onclick=\"alert('Your zone has been added !')\">add</a>";
var infowindow = new google.maps.InfoWindow({
content: contentString
});
function initializeGoogleMaps() {
var polygonCenter = new google.maps.LatLng( -74.43013763427734,45.95257568359375),
placeholder = document.getElementById("print_map"),
mapOptions = {
center: polygonCenter,
mapTypeControl:false,
mapTypeId: google.maps.MapTypeId.ROADMAP
},
map = new google.maps.Map( placeholder, mapOptions ),
kmlLayer = new google.maps.KmlLayer({
url: "http://xxxxxxx/910413303.kml"
});
google.maps.event.addListener(kmlLayer, 'click', function(evt) {
infowindow.setPosition(evt.latLng)
infowindow.open(map);
});
kmlLayer.setMap(map);
}
但我想知道,如果只有在使用kml文件时才有相同的行为。
对我来说,我认为这是不可能的,但我想听取您的意见。因为我被迫只使用kml文件。
我认为解决问题的解决方案更好,可能是使用geoxml3 api解析kml文件,并在使用api直接使用解析后的元素。
提前感谢您的建议。
答案 0 :(得分:0)
您的KML可以有一个默认的信息窗口 - 检查Placemarks的结构 开始:名称/描述应该显示在v3中。
此外,如果您不想对说明中的所有内容进行硬编码,则可以使用ExtendedData和更多结构化信息窗口的模板。