2014-10-17 84 views
0

我已經能夠使用下面的代碼在谷歌地圖的中心放置一個標記,然後單擊標記顯示關於中心座標的infowindow。但是,當我滾動地圖,然後點擊標記,它顯示相同的座標。如何更新,以便當我縮放/滾動/平移地圖時,它會顯示更新的中心? 請幫忙。如何在用戶滾動時更新Google地圖中心

function initialize() { 
    var mapOptions = { 
     zoom: 14, 
     center: new google.maps.LatLng(52.5498783, 13.425209099999961), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById('map_canvas'), 
     mapOptions); 
    $('<div/>').addClass('centerMarker').appendTo(map.getDiv()) 
     //do something onclick 
     .click(function(){ 
      var that=$(this); 
      if(!that.data('win')){ 
      that.data('win',new google.maps.InfoWindow({content: 
          myGeoCode(map.getCenter()) 
                 })); 
      that.data('win').bindTo('position',map,'center'); 
      } 
      that.data('win').open(map); 
     }); 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 

    function myGeoCode(latlng){ 
     return 'Your Coor is ' + latlng; 
    } 
+0

我真的不明白了「滾動地圖」,然後「點擊標記」 。如果標記位於同一位置,則即使縮放也不應該改變該值。你可以說得更詳細點嗎 ?另外,jsfiddle會幫助很多。 – SamiX 2014-10-17 14:25:20

+0

對不起,我想我對這個問題不是很清楚,..滾動地圖=平移地圖。實際上,我想要一個標記位於地圖的中心,即使用戶平移地圖/放大/縮小,仍然保留在地圖的中心位置。當用戶點擊標記時,將會彈出一個信息窗口,顯示標記所在的座標。 – j4rey89 2014-10-18 04:35:46

回答

0

什麼是bindto方法/ etc?並不像您使用的是標準的標記......反正你可以使用空閒的事件來更新標記/信息窗口

google.maps.event.addListener(map, 'idle', function() { 
    // assign map.getCenter() to InfoWindow reference 
}) 
+0

我嘗試過使用標準標記,但是當用戶拖動導致標記閃爍的地圖時,我刪除了標記並將其放回中央。 – j4rey89 2014-10-18 04:54:50

+0

我能想到的唯一工作就是在用戶平移/縮放和用戶閒置時移除標記,並將標記放回到工作的地圖上。但我無法弄清楚如何更新標記,以便在點擊時顯示地圖的更新中心。 – j4rey89 2014-10-18 05:00:52

相關問題