2011-09-22 55 views
1

我在v3 api的地圖中添加了標記集合。一切工作正常,但是當我拖動地圖(足夠讓標記離開屏幕)時,放大,然後將地圖拖回到原始中心,標記圖像大致偏移了我拖動地圖的距離。它們仍然以正確的形狀排列,然後移動。Google Maps V3:標記圖在地圖拖動和縮放後顯示在不正確位置的圖像

其他一些注意事項:

  • 如果我拖不放大的標記圖像不動,或者如果我拖和縮小。
  • 如果我只是放大地圖,直到標記是關閉屏幕,同樣的事情發生
  • 折線不動(即,它們保持正確的位置上無論是什麼)
  • 在Firefox中,標記圖像移動(或更確切地說,保持它們的相同像素位置,並且不要隨着地圖上的座標點移動)每當我放大地圖中心以外的點時移動

下面是我使用add標記:

var bounds = new google.maps.LatLngBounds; 

for (i=0, len=points.length; i<len; i++) { 

    var myPoint = points[i]; 
    var myLatLng = new google.maps.LatLng(myPoint.lat, myPoint.lng); 

    var markerImage = new google.maps.MarkerImage(
     'http://www.mysite.com/images/marker.png', 
     new google.maps.Size(21,21), // size 
     new google.maps.Point(0,0),  // origin 
     new google.maps.Point(10,10), // anchor 
     new google.maps.Size(21,21)  // scale 
    ); 

    var markerOptions = {}; 
    markerOptions.map = this.map; 
    markerOptions.position = myLatLng; 
    markerOptions.icon = markerImage;    
    markerOptions.draggable = true; 

    this.markers[i] = new google.maps.Marker(markerOptions); 

    bounds.extend(myLatLng); 

} 

這就好像標記的窗格與地圖和多段線的窗格斷開連接。添加標記時,我可以做些什麼不同,以便圖像保持其正確的顯示位置?這在V2中不是問題。

+0

什麼事件偵聽器,你有地點? – duncan

+0

在每個標記上,我有3個聽衆:: 1.標記dragend - 重繪多段線2.標記mouseover - 顯示信息框3.標記點擊 - 標記和放大中心。在地圖本身,我只有一個監聽器:地圖單擊 - 關閉所有打開的信息框 – byron

回答

0

我被解僱了。

只是代碼示例中的塊之後,我不得不

if (init) { 
    //a bunch of stuff, PLUS 
    this.map.fitBounds(bounds); 

} else { 
    //a bunch of other stuff, BUT NO fitBounds 

} 

所以,在兩條邏輯路徑中加入

this.map.fitBounds(bounds); 

固定的問題

相關問題