我正在向我的谷歌地图加载KML。使用此功能,地图可以正确加载kml上的标记
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(12.136389, -86.251389),
zoom: 11
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
var ctaLayer = new google.maps.KmlLayer({
url: 'http://mobilenicode-001-site1.smarterasp.net/Content/Prueba.css'
});
ctaLayer.setMap(map);
}
问题是我正在尝试向来自KML的标记添加“addListener”事件。 我该如何实现?
答案 0 :(得分:1)
你做不到。 Google会渲染KML服务器端,并将其与给定的行为和元素作为一个整体叠加在地图中。虽然您可以为KML图层设置一些选项,但您无法解决其中的特定元素。
根据您的后端,如果您有后端,则可以解析KML文件。 (标记应出现在<PlaceMark>
标记内,但您的里程可能会有所不同)并自行绘制标记。
答案 1 :(得分:1)
向KmlLayer添加点击监听器(如documentation中所述):
var ctaLayer = new google.maps.KmlLayer({
url: 'http://mobilenicode-001-site1.smarterasp.net/Content/Prueba.css'
});
ctaLayer.setMap(map);
google.maps.event.addListener(ctaLayer,'click',function(evt) {
alert("marker clicked");
});
请注意,KmlLayers支持的唯一鼠标事件是&#34;点击&#34;事件