【问题标题】:Google maps get marker icon url on click谷歌地图在点击时获取标记图标网址
【发布时间】:2012-11-09 09:44:16
【问题描述】:

我需要在点击时获取标记图标 url,我在谷歌地图文档上看到有函数 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);
    });

我与本地标记失去联系的地方......

【问题讨论】:

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


    【解决方案1】:

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

    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);
    

    【讨论】:

      【解决方案2】:

      getIcon()google.maps.Marker 的一个方法。地标(我猜是你点击的),被渲染为标记,但不是原生标记,所以这里没有 getIcon() 方法可以使用。

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

      【讨论】:

        【解决方案3】:

        确保 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/
        (点击“添加标记”按钮)

        【讨论】:

        • 好的,现在 marker.getIcon() 是“未定义”,没有得到它的 url。谢谢你的例子。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-20
        • 2012-09-27
        • 1970-01-01
        • 2012-12-04
        • 2015-02-16
        相关资源
        最近更新 更多