2011-12-01 41 views
5

Soy nuevo en el uso de google maps y estoy tratando de averiguar cómo restringir la función de zoom para que no se acerque a ningún lado excepto al centro del mapa y no acercar al punto del mouse. Básicamente se acerca al centro del mapa devuelto, sin importar dónde se encuentre el puntero del mouse en el mapa, en lugar de acercar el puntero del mouse en el mapa. Ni siquiera sé si esto es posible actualmente, se apreciará algo de ayuda.Zoom para centrar en un mapa en Google Maps 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

Tener un vistazo a esto: http://stackoverflow.com/questions/2818984/google-map-api-v3-center-zoom-on-displayed-markers – Flukey

Respuesta

4

Existen varios tipos de zoom:

  • utilizando el control de zoom - que se acerca al centro del mapa
  • utilizando la rueda de desplazamiento - que se acerca al puntero del ratón como usted se queja
  • haciendo doble clic - que primero centra el lugar debajo del puntero del mouse y luego amplía

Por lo tanto, si solo desea el primer tipo de zoom, puede desactivar los otros dos estableciendo disableDoubleClickZoom y las opciones de desplazamiento de scrollwheel en false.

Además, puede manejar el evento dblclick map (el evento de la rueda de desplazamiento no es tan directo, pero tal vez encuentre el modo how to handle the scroll wheel in javascript también) y en este controlador simplemente cambie la escala del mapa usando map.setZoom(). El centro del mapa permanecerá igual. Bastante fácil.

0

Por lo que puedo ver en el código, está haciendo un acercamiento a la variable latlng que ha declarado anteriormente. Eso es correcto. La variable myOptions se pasa luego a su nueva declaración de mapas. Por lo tanto, debe centrarse en 51.285583, 1.091045, que es Caterbury Kent en el Reino Unido.

Si su mouse indica que está funcionando, si esto no funciona le sugiero que copie un ejemplo de los ejemplos de Google y elimine lo que no necesita para su primera demostración.

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

2

O maneje esto al volver a centrar el mapa en el cambio de zoom. Esto preserva la funcionalidad esperada con doble clic y rueda de desplazamiento.

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

No es una buena solución, porque lo visual ¡El efecto del mapa moviéndose al punto de zoom y luego regresando al centro deseado es absolutamente incorrecto! –

Cuestiones relacionadas