Estoy un poco confundido acerca de Mapbox MVT. Según entendí, un mosaico es una pequeña pieza de mapa, como en un rompecabezas.
No estoy completamente seguro sobre el funcionamiento de MVT.
https://docs.mapbox.com/data/tilesets/guides/vector-tiles-introduction/#benefits-of-vector-tiles
Aquí, dice que Vector tiles are really small, enabling global high resolution maps, fast map loads, and efficient caching.
Entonces, la cosa es que estoy tratando de obtener todas las coordenadas de db que pueden llegar a más de 10K y actualmente obtengo los datos de postgis usando:
with connection.cursor() as cursor: cursor.execute(query) rows = cursor.fetchall() mvt = bytes(rows[-1][-1]) return Response( mvt, content_type="application/vnd.mapbox-vector-tile", status=200 )Ahora me pregunto acerca de los problemas de rendimiento, ya que cada vez que un usuario lo visite, pondrá estrés en db.
Y otro problema que tengo es cuando uso vector tiles como fuente, llama a la URL de la fuente y (presionando el db) cada vez que muevo el mapa.
type: 'vector', tiles: [ 'http://url/{z}/{x}/{y}.mvt' ]¿Es posible llamar a la URL de origen a un nivel de zoom específico y hasta entonces todos los puntos permanecen en el mapa?
por ej.
Mapbox should call source url (only one time from zoom level 1-7) at zoom level 1 and draw points on to the map and when zoom level reach 7 then mapbox should call the source url(only one time from zoom level 7-22) and update the map.Realmente estar agradecido si alguien puede ayudar.
Cuando se trata de mosaicos de datos (vectores, ráster, cualquier formato), casi siempre querrá un servicio que tenga una estrategia de almacenamiento en caché, especialmente si los mosaicos se crean en tiempo real a partir de datos en una base de datos. La llamada directa a la base de datos para cuando se necesite cada mosaico solo debe realizarse durante el desarrollo/prueba, o para demostraciones simples. Los mosaicos vectoriales por sí solos no son la solución, necesita una arquitectura de extremo a extremo para servir los datos. Aquí hay un par de ejemplos de estrategias de almacenamiento en caché:
También es importante tener en cuenta que debe optimizar los datos en sus mosaicos. Por ejemplo, si está trabajando con polígonos de alta resolución, para mosaicos que están alejados, probablemente encontrará que hay muchas coordenadas que caben dentro del mismo píxel, por lo que cuando solicite el polígono de la base de datos, reduzca su resolución a coincida con la resolución del mosaico. Esto reducirá drásticamente el tamaño del mosaico y la cantidad de datos que genera la base de datos.
Puede encontrar muchas herramientas y artículos para teselas vectoriales aquí: https://github.com/mapbox/awesome-vector-tiles
También hay muchos blogs sobre cómo servir teselas vectoriales y crear canalizaciones.