2009-09-24 11 views
5

Cuando está bastante alejado de un mapa de Google, puede arrastrarlo lo suficiente para que el mapa termine y se convierta en un color gris en blanco. El mapa parece repetirse sin problemas en el eje horizontal, pero no verticalmente. Me pregunto si hay una forma de evitar que el mapa se arrastre cuando llegue a esa zona gris. ¿Algunas ideas?Detener el arrastre del mapa de Google fuera de los límites visuales

Respuesta

2

Solo por diversión, otro enfoque sería decirle al mapa que se ajuste verticalmente de la misma manera que se ajusta horizontalmente, sobrescribiendo GMercatorProjection.prototype.tileCheckRange antes de crear el mapa.

GMercatorProjection.prototype.tileCheckRange=function(a,b,c){ 
    var d = 1<<b; 
    if (a.y<0||a.y>=d) { 
     a.y=a.y%d; 
     if(a.y<0){ 
     a.y+=d; 
     } 
    } 
    if(a.x<0||a.x>=d){ 
     a.x=a.x%d; 
     if(a.x<0){ 
     a.x+=d; 
     } 
    } 
    return true 
    } 

La desventaja es que la API no contiene ningún código para hacer que los marcadores y polilíneas para saltar verticalmente a la copia del mapa que está a la vista, sólo saltar horizontalmente. Una solución completa requeriría escribir código propio para hacer los saltos verticales, y usar GLatLng ilimitados en todo.

+0

salvaje! gracias, probaré esto. – typeoneerror

+0

Tengo el mismo problema, me gustaría evitar que el usuario salga de los límites visuales, pero no sé cómo solucionarlo con su solución. ¿Puedes ayudarme por favor? – mgul

2

This is a good example de cómo limitar el rango de un mapa. Es un poco complicado, pero probablemente sea tu única opción real.

Cuestiones relacionadas