¿A qué escalas de relación se corresponden los niveles de zoom de Google Maps?

78

¿Puede alguien proporcionarme un enlace (o algunos detalles) sobre la relación real a las cifras del "nivel de zoom" para Google Maps?

por ejemplo Nivel 13 de Google Maps = 1: 20000

    
pregunta mlo55 18.03.2011 - 05:44

12 respuestas

72

Si está diseñando un mapa que planea superponer sobre google maps o virtual earth y está creando un esquema de mosaico, creo que lo que está buscando son las escalas para cada nivel de zoom, use estas:

20 : 1128.497220
19 : 2256.994440
18 : 4513.988880
17 : 9027.977761
16 : 18055.955520
15 : 36111.911040
14 : 72223.822090
13 : 144447.644200
12 : 288895.288400
11 : 577790.576700
10 : 1155581.153000
9  : 2311162.307000
8  : 4622324.614000
7  : 9244649.227000
6  : 18489298.450000
5  : 36978596.910000
4  : 73957193.820000
3  : 147914387.600000
2  : 295828775.300000
1  : 591657550.500000

Fuente: enlace

    
respondido por el CaptDragon 18.03.2011 - 14:13
35

Encontré esta respuesta, escrita por un empleado de Google, que probablemente sea la más precisa:

  

Esto no será preciso, porque la resolución de un mapa con la proyección de mercator (como los mapas de Google) depende de la latitud.

     

Es posible calcular usando esta fórmula:

metersPerPx = 156543.03392 * Math.cos(latLng.lat() * Math.PI / 180) / Math.pow(2, zoom)
     

Esto se basa en el supuesto de que el radio de la Tierra es 6378137m. Cuál es el valor que usamos :)

tomado de: enlace

BTW - Supongo que:

'latLng.lat()' = map.getCenter.lat()
'zoom' = map.getZoom()
    
respondido por el gilad mayani 01.01.2015 - 21:52
29

Para ayudarlo a comprender las matemáticas (no es un cálculo preciso, es solo a modo de ilustración):

  • El mosaico del mapa web de Google tiene 256 píxeles de ancho
  • digamos que el monitor de su computadora tiene 100 píxeles por pulgada (PPI). Eso significa que 256 píxeles tienen aproximadamente 6,5 cm de longitud. Y eso es 0.065 m .

  • en nivel de zoom 0 , todos los 360 grados de longitud son visibles en una sola ficha . No puedes observar esto en Google Maps porque se mueve automáticamente al nivel de zoom 1, pero puedes verlo en Mapa de OpenStreetMap (usa el mismo esquema de mosaico).

  • Los grados de 360 grados en el ecuador son iguales a la circunferencia de la Tierra, 40,075.16 km, que es 40075160 m

  • divide 40075160 m con 0.065 m y obtendrás 616313361 , que es una escala de nivel de zoom 0 en el Ecuador para un monitor de computadora con 100 DPI

  • entonces el punto es que la escala depende del PPI de su monitor y de la latitud (debido a la proyección de Mercator)
  • para el nivel de zoom 1, la escala es la mitad del nivel de zoom 0
  • ...
  • para el nivel de zoom N, la escala es la mitad del nivel de zoom N-1

También puedes ver: enlace

    
respondido por el Igor Brejc 19.03.2011 - 12:55
17

No es tan fácil. Dada la proyección, el tamaño de los píxeles de las baldosas depende de la latitud del área en la que está interesado. Luego, en términos de transformación del tamaño de píxeles de las baldosas en el tamaño de píxeles de la pantalla, depende de la pantalla y la resolución en que se muestran los datos. dpi tu pantalla esta usando.

    
respondido por el GuillaumeC 18.03.2011 - 09:28
12

Respuesta correcta autoritaria directa:

591657550.500000 / 2^(level-1)

te da la tabla de arriba, ingresando el nivel de zoom.

Pruébelo en vivo en jsfiddle.net

Debido a que la pregunta es solo para Google MAPS, no para EARTH, al OP no le importa la geometría 3D. Los mapas de Google YA están aplanados, por lo que 1 píxel es siempre la misma distancia (en GRADOS, que es lo que se refiere a un mapa de Google), aquí y en el ecuador que en los polos.

Por cierto, ¿te diste cuenta de que en algún lugar dentro de la primera fila de píxeles del mapa de un mundo, la escala es 1: 1?

    
respondido por el Sergio 25.12.2013 - 22:46
9

Hay una tabla de este tipo en la documentación de del sistema Virtal Earth Tile de Microsoft . Pero como dice GuillaumeC, los valores dependen de la latitud y de la resolución de la pantalla. La tabla muestra los valores medidos en el ecuador y con una resolución de pantalla de 96 ppp.

PS: No estoy seguro de eso, pero los niveles de zoom de Microsoft podrían cambiar en 1 en comparación con los niveles de zoom de Google. Pero definitivamente usan la misma proyección para que los valores sigan siendo correctos para Google.

    
respondido por el Name 18.03.2011 - 12:02
6

Radio @ Equator 6,378,137 metros exactos (WGS-84)

Circunferencia en Ecuador = 40,075,017 metros (2πr)

El nivel de zoom 24 usa 2 a los 32 píxeles de potencia (4,294,967,296) en la circunferencia.

Circunferencia ecuatorial / 2 32 = .009330692 metros por píxel

Unidad en latitud = (Coseno de latitud) X (Unidad en ecuador)

El nivel de zoom duplica cada incremento.

1 pie (internacional) = 0.3048 metros

Editar

Bueno, no es realmente una pregunta legítima para empezar. Las proporciones de escala son relativas a documentos impresos, no a pantallas de computadora. Lo que necesita para que estas imágenes se utilicen con precisión es conocer la dimensión de cada píxel y luego escalar la imagen de acuerdo con su superposición.

Hace 15 o 20 años atrás, alguien tomó WGS-84 como datos base. (note que en una publicación anterior alguien utilizó un valor de 40,075,160, lo he visto en Wikipedia en algunos lugares y es incorrecto. El valor correcto es 40,075,017

Luego tomaron eso y lo dividieron por un entero de 32 bits. Esta es una elección lógica ya que proporciona una precisión global de aproximadamente un centímetro, lo que es suficiente para imágenes aéreas. Los enteros de 32 bits también son eficientes para almacenar y procesar.

Por qué se eligió este nivel 24, no sé. Sin embargo, como otra persona aquí elaborada 0 te lleva a un mosaico de 256 píxeles para la Tierra.

Ahora para un ejemplo de cómo usar los datos anteriores. Digamos que tengo una imagen en el nivel de zoom 20 (con el zoom que le permiten obtener) Tome 0.009330692 (Zoom 24 en el ecuador) doble para zoom 23, nuevamente para zoom 22, nuevamente para zoom 21 y una última vez para zoom 20 . Ahora debería tener 0.149231071.

Ahora digamos que nuestra imagen está en la latitud 45. Tome el coseno de eso (0.707106781) y multiplíquelo por nuestro 0.149231071 y le dará 0.105564729 metros. Esa es la longitud y la altura de un píxel de una imagen en la latitud 45 en el nivel de zoom 20. Si captura una imagen de 1000 x 1000 píxeles de esa área, la dimensión es de 105.56 metros cuadrados. Si quieres pies divide ese 0.3048

En cuanto a las fuentes, me he revertido esencialmente hace aproximadamente 5 años gracias a la información y documentación que encontré en la web, incluidos los sitios de soporte de mapas de Google y MS.

He usado cientos de veces y las he superpuesto con datos de encuestas de campo, y siempre ha sido correcto. Compruébelo en cualquiera de las tablas publicadas aquí y los números coincidirán.

    
respondido por el DavidG 28.11.2012 - 03:46
4

Simplemente hice algunos cálculos y obtuve los siguientes resultados:

Google Maps muestra una regla de 1 km (parte inferior izquierda del mapa) que tiene 90 píxeles de longitud, en el nivel de zoom 13. Lo que significa lo siguiente:

Suponiendo que la resolución de la pantalla es de 96 ppp o 36 dpcm, en el nivel de zoom 13 tenemos 0,4 km (desde 36/90) en 1 cm, lo que produce una escala de mapa de 1: 40,000 para una pantalla de 96 ppp.

Para varias operaciones en la pantalla, lo mejor es tomar 90 píxeles como base, ya que todos los números se redondearán en todos los niveles de zoom, es decir,

  • Nivel de zoom 12: 2 km en 90px
  • Nivel de zoom 11: 4 km en 90px
  • Nivel de zoom 10: 8 km en 90px

y así sucesivamente.

Tenga en cuenta que esta es una aproximación que debería funcionar más o menos bien en escalas más pequeñas en lugar de grandes.

(Y a Google le gustan los números redondos al final ...)

    
respondido por el mojuba 15.08.2012 - 20:55
3

Sobre la base de toda la información proporcionada, he creado una función que proporciona la mejor z aplicada a un mapa cuando desea tener una línea horizontal que represente el N% del mapa visualizado.

El mapa que se muestra se caracteriza por su propio ancho de píxeles.

function calculateZoom(WidthPixel,Ratio,Lat,Length){
    // from a segment Length (km), 
    // with size ratio of the segment expected on a map (70%),
    // with a map WidthPixel width in pixels (100px),
    // and a latitude (45°) we can get the best Zoom
    // assume earth is a perfect ball with radius : 6,378,137m and
    //      circumference at the equator = 40,075,016.7 m
    // The full world on google map is available in tiles of 256 px; 
    // it has a ratio of 156543.03392 (px/m).
    // For Z = 0; 
    // pixel scale at the Lat_level is ( 156543,03392 * cos ( PI * (Lat/180) ))
    // The map scale increases at the rate of square root of Z.
    //
    Length = Length *1000;                     //Length is in Km
    var k = WidthPixel * 156543.03392 * Math.cos(Lat * Math.PI / 180);        //k = circumference of the world at the Lat_level, for Z=0 
    var myZoom = Math.round( Math.log( (Ratio * k)/(Length*100) )/Math.LN2 );
    myZoom =  myZoom -1;                   // Z starts from 0 instead of 1
    //console.log("calculateZoom: width "+WidthPixel+" Ratio "+Ratio+" Lat "+Lat+" length "+Length+" (m) calculated zoom "+ myZoom);

    // not used but it could be useful for some: Part of the world size at the Lat 
    MapDim = k /Math.pow(2,myZoom);
    //console.log("calculateZoom: size of the map at the Lat: "+MapDim + " meters.");
    //console.log("calculateZoom: world circumference at the Lat: " +k+ " meters.");
    return(myZoom);
}
    
respondido por el jaroc 01.02.2016 - 12:37
3

No puedo agregar un comentario todavía, pero esta es una posible fuente de la respuesta de Pete anterior: enlace

  

[...] tenga en cuenta que cada aumento del nivel de zoom es dos veces más grande en las direcciones x e y. Por lo tanto, cada nivel de zoom superior contiene cuatro veces más resolución que el nivel anterior. Por ejemplo, en el nivel de zoom 1, el mapa consta de 4 mosaicos de 256x256 píxeles, lo que resulta en un espacio de píxeles de 512x512. En el nivel de zoom 19, se puede hacer referencia a cada píxel x e y en el mapa usando un valor entre 0 y 256 * 2 19

    
respondido por el Ingo Haumann 15.01.2015 - 13:53
1

Calculé las escalas para cuatro niveles de zoom:

Nivel de zoom | Escala 20 1: 500 19 1: 1000 18 1: 2000 17 1: 4000

Parece que la escala se duplica al aumentar el nivel de zoom en un paso. Por lo tanto, espero que la escala para el nivel de zoom 16 sea 1: 8000 y así sucesivamente.

    
respondido por el Pete 12.08.2014 - 17:57
0

Hola, creo que he calculado que 1 píxel = 11.627 km en línea recta; No teniendo en cuenta el radio de la tierra. Aquí está el enlace del video que explica cómo: enlace . Espero que te aclare la mente.

    
respondido por el The Mr. Totardo 02.02.2016 - 15:08

Lea otras preguntas en las etiquetas