1

我向您解释我的问题,我必须在地图中显示一些多边形,并且当我单击其中一个的窗口信息中存在的链接时,我必须能够调用 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);
}

但我想知道,是否有可能仅在使用 kml 文件时具有相同的行为。

对我来说,我认为这是不可能的,但我想听听你的意见。因为我被迫只使用一个 kml 文件。

我认为解决我的问题的更好解决方案可能是使用 geoxml3 api 解析 kml 文件,然后直接使用 api 解析的元素。

提前感谢您的建议。

4

1 回答 1

0

您的 KML 可以有一个默认的信息窗口 - 检查地标的构造 开始:名称/描述应显示在 v3 中。

此外,如果您不想对描述中的所有内容进行硬编码,您可以使用ExtendedData和模板来构建更结构化的信息窗口。

于 2014-04-30T17:39:24.540 回答