1 votos

LeafletJS Medición de la distancia en la capa de azulejos deepzoom

He estado tratando de entender cómo LeafletJS determina las distancias entre dos puntos en una capa. Estoy tratando de implementar el plugin de escala personalizada (y lo he hecho con éxito) en una imagen estática en mosaico utilizando el folleto deepzoom tilelayer plugin .

Información añadida

Utilizando CRS.Simple, el zoom de la imagen se ajusta por potencias de 2 por lo que parece:

CRS.Simple parece funcionar en potencias de 2:

o.CRS.Simple=o.extend({},o.CRS,{projection:o.Projection.LonLat,transformation:new o.Transformation(1,0,-1,0),scale:function(t){return Math.pow(2,t)}})

Constantes que conozco:

  1. DPI
  2. tamaño de las baldosas (256 x 256 píxeles)
  3. tamaño del mapa en píxeles (límites de la imagen)
  4. nivel de zoom del folleto
  5. tamaño de la imagen en el mundo real

¿Qué debo cambiar en Leaflet para poder hacer barras de escala precisas?

1voto

Om Shankar Puntos 117

Si las baldosas son siempre de 256x256 píxeles, con una baldosa que cubre el planeta en el nivel de zoom 0, aumentando en potencias de 4 en cada nivel de zoom, entonces el cálculo aproximado de la distancia por píxel en cualquier nivel de zoom es relativamente sencillo (dado el errores inherentes a la medición de la distancia en EPSG:3857 )

Si su imagen ha sido correctamente georreferenciada, dividida en mosaicos de 256x256 píxeles para que coincida con el sistema de referencia global {x}{y}{z} de Leaflet, y luego mostrada usando Leaflet, entonces el plugin de escala personalizada debería funcionar... Pero parece que estás utilizando Leaflet como un visor de zoom continuo, sin tener en cuenta dónde encajan tus mosaicos en la tierra en el espacio {x}{y}{z}, y por lo tanto la barra de escala y la distancia de píxeles por tabla de zoom que has referenciado no se aplicarán.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X