2012-11-09 116 views
0

點擊我需要獲取標記圖標網址,我在谷歌地圖文檔中看到有函數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); 
    }); 

在那裏我失去與本地標記連接....

回答

4

如果使用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); 
+0

非常感謝你,你節省了我很多時間。 :) –

1

getIcon()google.maps.Marker的方法。地點標記(我猜這就是你點擊的),呈現爲標記,但不是本地標記,所以沒有方法可以在這裏使用getIcon()。

Maps-API中沒有任何選項來檢索有關渲染標記(地標)的信息。

+0

我在哪裏丟失與本機標記連接我更新我的文章.... –

+1

沒有任何東西丟失,根本沒有本地標記。 –

+0

我如何加載/獲取本機標記。 –

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/
(點擊「添加標記」按鈕)

+0

o.k now marker.getIcon()是'undefined'沒有得到它的url。謝謝你的例子。 –