2011-12-01 39 views
5

Tôi mới sử dụng bản đồ google và đang cố gắng tìm hiểu cách hạn chế chức năng thu phóng để không thu phóng bất cứ đâu ngoại trừ trung tâm bản đồ chứ không phải zoom đến điểm chuột. Về cơ bản nó phóng to đến trung tâm của bản đồ được trả về cho dù con trỏ chuột của bạn nằm trên bản đồ như thế nào so với phóng to nơi con trỏ chuột nằm trên bản đồ. Tôi thậm chí không biết nếu điều này là có thể hiện nay, một số trợ giúp sẽ được đánh giá cao.Phóng to đến trung tâm trên bản đồ trong API Google Maps 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

Có xem xét này: http://stackoverflow.com/questions/2818984/google-map-api-v3-center-zoom-on-displayed-markers – Flukey

Trả lời

4

Có một số loại zoom:

  • sử dụng điều khiển zoom - đó phóng đến trung tâm của bản đồ
  • sử dụng bánh xe di chuyển - đó sẽ phóng to con trỏ chuột khi bạn phàn nàn
  • sử dụng nhấp đúp - lần đầu tiên căn giữa vị trí dưới con trỏ chuột và sau đó phóng to

Vì vậy, nếu bạn chỉ muốn loại thu phóng đầu tiên, bạn có thể vô hiệu hóa hai loại kia bằng cách đặt disableDoubleClickZoom và tùy chọn bản đồ con lăn thành sai. Ngoài ra, bạn có thể xử lý sự kiện bản đồ dblclick (sự kiện bánh xe cuộn không đơn giản, nhưng có thể bạn cũng sẽ tìm cách how to handle the scroll wheel in javascript) và trong trình xử lý này chỉ thay đổi tỷ lệ bản đồ bằng cách sử dụng map.setZoom(). Trung tâm bản đồ sẽ vẫn giữ nguyên. Khá dễ.

0

Từ những gì tôi có thể thấy trong mã của bạn, bạn đang phóng to biến latlng mà bạn đã khai báo ở trên. Đúng rồi. Biến myOptions của bạn sau đó được chuyển vào khai báo bản đồ mới của bạn. Vì vậy, bạn nên tập trung vào 51.285583, 1.091045, đó là Caterbury Kent ở Vương quốc Anh.

Nếu đó là nơi con trỏ chuột của bạn đang hoạt động, nếu điều này không giúp tôi đề xuất sao chép ví dụ từ ví dụ trên google và cắt ra những gì bạn không cần cho bản trình diễn đầu tiên của mình.

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

2

Hoặc xử lý việc này bằng cách căn giữa lại bản đồ trên thay đổi thu phóng. Điều này bảo tồn chức năng dự kiến ​​trên nhấp đúp và bánh xe cuộn.

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

Không phải là một giải pháp tốt, bởi vì thị giác hiệu ứng của bản đồ di chuyển đến điểm zoom và sau đó quay trở lại trung tâm mong muốn là hoàn toàn sai! –

Các vấn đề liên quan