2014-10-17 86 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

相关问题