1

我有一张地图,其中包含从 .kml 文件加载的标记,我正在使用 geoxml3 对其进行解析,并使用 markerclusterer 对它们进行聚类。我添加了一些代码来尝试在用户单击标记时将 kml 文件中每个标记上的 and 标记放在 infoWindow 上。但是由于某种原因,当我单击标记时,它不会创建 infoWindow。我之前添加了一个console.log 以确保它正在识别点击,它只是似乎不想制作信息窗口。

您可以在http://tanagerproductions.com/test/site2/testmap.html查看页面

.kml 文件位于 http://tanagerproductions.com/test/site2/js/locations.kml

4

1 回答 1

1

看起来您正在使用 geoxml3 的主干版本。这不再是真正的支持。如果您使用 polys 或 kmz 分支,它们都受支持。

是使用 polys 分支的页面版本。

这是更新后的 createMarker 函数:

createMarker:function(placemark){
    var point = placemark.latlng;
    var info = "<pre" + placemark.name + "<br /><br />" + placemark.description + "</pre>";
    var marker = new google.maps.Marker({position:point});

    google.maps.event.addListener(marker, "click", function(){
        infoWindow.setContent(info);
        infoWindow.open(map, marker);
    });
    markerclusterer.addMarker(marker);
}

您可能只需要 infoWindow.content = info; => infoWindow.setContent(info); 改变。

(历史记录,“主干”版本在 github 上不存在,因此下面的链接不再起作用)
使用主干 geoxml3 版本的工作版本,所以唯一的问题是 API 不再支持 infoWindow.content。

于 2012-12-04T23:05:59.497 回答