2015-05-22 150 views
-1

有人能告訴我爲什麼InfoWindow不會在第一次點擊時出現嗎? 第一次點擊後總是可以正常工作...Google Maps Api,GeoJson和InfoWindow

我只是從geojson文件加載數據,並嘗試添加一個單擊事件。

將一個infowindow錨定到MVCObject存在一些問題。

var anchor = new google.maps.MVCObject(); 
anchor.setValues({//position of the point 
    position:event.latLng, 
    anchorPoint:new google.maps.Point(0,-40)}); 

infoWindow.open(map, anchor); 

下面是代碼: https://jsfiddle.net/ajcL2y9p/

回答

0

我從click監聽器裏取出var infoWindow,它工作正常。

JSFiddle

像這樣:

var infoWindow = new google.maps.InfoWindow({ 
     content: "", 
     pixelOffset: new google.maps.Size(0, -30) 
    }); 
    // When the user clicks, set 'isColorful', changing the color of the letters. 
    map.data.addListener('click', function (event) { 

     event.feature.setProperty('isColorful', true); 



     infoWindow.setContent('<div>test</div>'); 

     var anchor = new google.maps.MVCObject(); 
     anchor.setValues({ //position of the point 
      position: event.latLng, 
      anchorPoint: new google.maps.Point(0, -40) 
     }); 

     infoWindow.open(map, anchor); 

    }); 

infoWindow只被在第一次點擊初始化。如果您將它放置在外部,請將其初始化,然後僅設置內容。

+0

非常感謝! –

0

初始化你的infowindow變量在函數外面,在initmap()中的一些地方;功能。

希望這會幫助你。