6 votos

¿Cómo enumerar todos los nombres de azulejo dentro de un polígono dado?

Me gustaría generar un conjunto específico de azulejos mapa desplazable para cubrir cierta cierta masa de la tierra.

Dado un polígono shapefile, ¿hay algo que va a generar rápidamente una lista de los nombres de azulejo z/x/y que se sientan dentro de ese polígono en un nivel de zoom específico? Idealmente, permitiría buffer alrededor del polígono para dar algo de espacio.

1voto

Marc Puntos 230

No es 100% seguro de si esto iba a funcionar, pero un posible algoritmo sería conseguir el cuadro delimitador de la shapefile, convertir este Esférica Mercartor (ver aquí algunos consejos), entonces el trabajo de la baldosa medida. Esto podría ser algo como esto:

xmaxextent = 40075016.685578488 (max extent of spherical mercartor x)
ymaxextent = 40075016.685578488 (max extent of spherical mercartor y)

mintile_x = ((min x of bbox + (xmaxextent / 2)) / xmaxextent) * (2 ^ (zoomlayer + 1))       
maxtile_x = ((max x of bbox + (xmaxextent / 2)) / xmaxextent) * (2 ^ (zoomlayer + 1))    
mintile_y = ((min y of bbox + (ymaxextent / 2)) / ymaxextent) * (2 ^ (zoomlayer + 1))
maxtile_y = ((max y of bbox + (ymaxextent / 2)) / ymaxextent) * (2 ^ (zoomlayer + 1))

Usted tendrá que ronda el min de números y el número máx porque ellos serán calculados como decimales, pero, en esencia, que debe darle el rango de baldosa extensiones para cualquier zoom de la capa, es decir, (@z2,5-6x,4-5y). Usted probablemente necesita para escribir un script o algo para convertir los rangos reales de baldosas de números. En este caso hipotético de que sería:

2/5/4

2/5/5

2/6/4

2/6/5

Este enlace da algunos útiles de información de antecedentes y una secuencia de comandos de python para trabajar la baldosa número correspondiente a cualquier lat/lon.

0voto

texai Puntos 178

Leer mi respuesta aquí, puede dar algo de información acerca de sus necesidades.

Al lado de este código tienes tus coordenadas de polígono agregando a la longitud de 256 pixel azulejo del lazo. Si no lo logras, puedo escribir código para usted.

Espero te ayuda a...

0voto

Devdatta Tengshe Puntos 942

Dependiendo de exactamente cómo desea ser 'dentro' versus 'exterior', una buena opción sería usando Shapely para tu búsqueda de punto en Polígono y luego generar todas las fichas posibles dentro del cuadro delimitador y pruebas de cada uno (por Centralia, o por construcción de una geometría rectángulo) por si están adentro o hacia afuera.

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