Google地图会在点击时获得标记图标网址

时间:2012-11-09 09:44:16

标签: google-maps google-maps-api-3 kml

我需要点击标记图标网址,我在谷歌地图文档中看到有函数getIcon()但不知道在哪里调用它。

  google.maps.event.addListener(layer, 'click', function (kmlEvent) {
                    alert(kmlEvent.getIcon());//Object #<Object> has no method 'getIcon'
                    showInContentWindow(map, kmlEvent);
                });

更新

    var myOptions = {
        zoom: 8,
        center: null,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("kmlMapCanvas"), myOptions);

    var layer = new google.maps.KmlLayer(
    'https://maps.google.co.uk/maps/ms?msid=207817312541605896974.0004cdbf70e9c541de0ac&msa=0&ll=51.499019,-0.58382&spn=0.070103,0.209255&output=kml',
    {                       
      suppressInfoWindows: true,
      map: map
    });

    google.maps.event.addListener(layer, 'click', function (kmlEvent) {
             alert(kmlEvent.getIcon());//Object #<Object> has no method
        showInContentWindow(map, kmlEvent);
    });

我失去与本地标记的连接....

3 个答案:

答案 0 :(得分:4)

如果使用KmlLayer渲染KML,则无法访问该图标。如果您使用第三方解析器(例如geoxml3geoxml-v3,它使用本机Google Maps API v3标记呈现KML),则可以使用标记上的getIcon()方法访问该图标。 / p>

Your KML displayed with geoxml3

图标的网址是:

geoXmlDoc.placemarks[0].marker.getIcon().url
geoXmlDoc.placemarks[1].marker.getIcon().url
geoXmlDoc.placemarks[2].marker.getIcon().url

这适用于该页面(在地址栏中,至少在IE中):

javascript:alert(geoXmlDoc.placemarks[0].marker.getIcon().url);

答案 1 :(得分:1)

getIcon()google.maps.Marker的一种方法。地标(我想这就是你点击的内容),被渲染为标记,但不是原生标记,所以你可以在这里使用getIcon()方法。

Maps-API中没有选项可以检索有关渲染标记(地标)的信息。

答案 2 :(得分:1)

确保kmlEvent是您的标记,因为getIcon()是google.maps.Marker方法

根据您的评论

  

如何加载/获取原生标记

这是你在地图上添加标记的方法

var marker = new google.maps.Marker({
    position: userLatLngvariable,
    title: 'Your title here',
    draggable: true,
    map: map
});

在此处查看一个有效的示例:http://jsfiddle.net/RASG/vA4eQ/
(单击“添加标记”按钮)