2011-12-01 60 views
5

我是新來使用谷歌地圖,我試圖找出如何限制縮放功能,使得它不會在任何地方放大,除了在地圖的中心,而不是中心放大到鼠標點。基本上它縮放到返回地圖的中心無論在哪裏你的鼠標指針,而不是縮放在鼠標指針位於地圖上的地圖上。我甚至不知道這是否可能,目前有些幫助將不勝感激。放大到在谷歌地圖API V3地圖

<script type="text/javascript"> 
     function initialize() { 
     var latlng = new google.maps.LatLng(51.285583, 1.091045); 
     var myOptions = { 
     zoom: 15, 
     center: latlng, 
     scrollwheel: true, 
     navigationControl: false, 
     mapTypeControl: false, 
     scaleControl: false, 
     draggable: false, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map(document.getElementById("map_canvas"), 
     myOptions); 

     var marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(51.285826, 1.089973), 
      map: map, 
      title: 'Run of The Mill', 
      clickable: true 
      }); 
     } 
    </script> 
+0

有一個看看這個:http://stackoverflow.com/questions/2818984/google-map-api-v3-center-zoom-on-displayed-markers – Flukey

回答

4

有幾種變焦類型:

  • 使用變焦控制 - 即放大使用滾輪地圖
  • 的中心 - 即放大鼠標指針,你抱怨
  • 使用雙擊 - 首先居中鼠標指針下方的位置,然後放大

所以如果你想只有第一變焦類型,你可以通過disableDoubleClickZoom和滾輪地圖選項設置爲false,禁用其他兩個。此外,您可能會處理dblclick地圖事件(滾輪事件並不那麼直截了當,但也許您會發現一種方法how to handle the scroll wheel in javascript),並且在此處理程序中只需使用map.setZoom()更改地圖比例。地圖中心將保持不變。相當簡單。

0

從我在代碼中可以看到的,你正在放大上面聲明的latlng變量。那是對的。然後,您的myOptions變量將傳遞到您的新地圖聲明中。所以,你應該在51.285583,1.091045,這是Caterbury肯特在英國的中心。

如果這是你的鼠標指向它是工作,如果這並不能幫助我建議從谷歌的例子複製一個例子,切割出你不需要的東西你的第一個演示。

http://code.google.com/apis/maps/documentation/javascript/examples/index.html

2

或者通過重新圍繞變焦改變地圖上處理這個問題。這通過雙擊和滾輪保留了預期的功能。

google.maps.event.addListener(map,'zoom_changed',function() { 
    map.setCenter(new google.maps.LatLng(47.61388802057299,-122.31870898147581)); 
}) 
+1

不是一個很好的解決方案,因爲視覺地圖移動到變焦點然後回到想要的中心的效果是絕對錯誤的! –