2014-04-29 49 views
1

我解釋一下我的問題,我必須顯示在地圖的一些多邊形,我必須要能夠調用JavaScript方法,當我在窗口中點擊本鏈接其中之一的信息。我們怎樣才能直接調用從KML文件中的JavaScript功能

,當我與谷歌API直接使用沒問題,你會發現結果與下面的代碼:

http://jsfiddle.net/9fzy3/embedded/result/

var contentString = "You can add thi zone : <a href=\"#\" onclick=\"alert('Your zone has been added !')\">add</a>"; 
var infowindow = new google.maps.InfoWindow({ 
     content: contentString 
}); 
function initializeGoogleMaps() { 
     var polygonCenter = new google.maps.LatLng(-74.43013763427734,45.95257568359375), 
     placeholder = document.getElementById("print_map"), 
     mapOptions = { 
       center: polygonCenter, 
       mapTypeControl:false, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
     }, 
     map = new google.maps.Map(placeholder, mapOptions), 
     kmlLayer = new google.maps.KmlLayer({ 
        url: "http://xxxxxxx/910413303.kml" 
     }); 

     google.maps.event.addListener(kmlLayer, 'click', function(evt) { 
      infowindow.setPosition(evt.latLng) 
      infowindow.open(map); 
     }); 

     kmlLayer.setMap(map); 
} 

但我想知道,如果可能的話只有在使用kml文件時才具有相同的行爲。

對我來說,我認爲這是不可能的,但我想聽聽你的意見。因爲我被迫只使用kml文件。

我認爲更好的解決方案來解決我的問題,這也許解析KML文件與geoxml3 API和直接解析的元素與使用API​​後。

提前感謝您的建議。

+0

你有一個問題,你的信息窗口KmlLayer [固定的小提琴(http://jsfiddle.net/9fzy3/) – geocodezip

+0

感謝您的幫助和自己的進度。但我想知道是否可以在沒有addlistener javascript的情況下直接在kml中完成某些操作(我想也許是用描述應答器或其他)。 – user2049200

回答

0

您的KML可以有一個默認infowindow - 檢查構建Placemarks 開始:名稱/描述應顯示在v3中。

此外,您可以使用ExtendedData和更加結構化的信息窗口的模板,如果你不想硬編碼在說明一切。