2013-04-23 74 views
0

我在獲取選項卡式信息窗口以顯示路徑時遇到一些困難。我跟着this tutorialGoogle Maps API v3多段線選項卡InfoWindow

我有一個帶多段線的KML圖層(它們曲線 - 代表地形特徵) 並且不知道如何在單擊路徑時顯示信息窗口。我已經看到了計算中點(但直線)一些教程..

2種方式(很多)我一直試圖讓路徑指向:

var streamPoly = google.maps.Polyline.prototype.getPosition = function() { 
return this.getPath().getAt(0);} 

var streamPoly = poly.getPath(); 

是什麼在我的頭:

var map; 
var streamPoly; 

function initialize() { 
    geocoder = new google.maps.Geocoder(); 
    var latlng = new google.maps.LatLng(42.687984,-79.394159); 

    var mapOptions = { 
     zoom: 12, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

    var ctaLayer = new google.maps.KmlLayer({ 
     url: 'paths.kml' 
    }); 
    ctaLayer.setMap(map); 
    ctaLayer.set('preserveViewport', true); 


    var infoBubble = new InfoBubble({ 
     maxWidth: 300 
    }); 

    var div = document.createElement('DIV'); 
    div.innerHTML = 'Hello'; 

    infoBubble.addTab('Tab 1', div); 
    infoBubble.addTab('Tab 2', "<B>This is tab 2</B>"); 

    google.maps.event.addListener(streamPoly, 'click', function() { 
     if (!infoBubble.isOpen()) { 
      infoBubble.open(map, streamPoly); 
     } 
    }); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

回答

0

您無法訪問KmlLayer中的多段線作爲google.maps.Polyline對象。要打開一個KmlLayer信息窗口(或InfoBubble),你需要添加一個偵聽按KmlLayer:

google.maps.event.addListener(ctaLayer, 'click', function(evt) { 
     if (!infoBubble.isOpen()) { 
      infoBubble.setPosition(evt.latLng); 
      infoBubble.open(map); 
     } 
    }); 

EVT將是一個KmlLayerMouseEvent其中將包含有關功能的信息單擊了

+0

我試着使用KmlMouseEvent屬性(featureData,latLng)進行事件,但某些內容仍然不起作用。這可能是標籤,但不知道如何解決這個問題。理想情況下,希望讓標籤式信息泡沫起作用! – user2309395 2013-04-25 04:52:45

+0

提供一個鏈接到您的KML,我可能會提供一個例子。 – geocodezip 2013-04-25 16:33:01

+0

這裏是KML:http://tinyurl.com/co6efw8 – user2309395 2013-04-25 17:57:41

相關問題