Sto costruendo un'applicazione web, che implica (attualmente) un backend REST e una SPA di frontend. Il backend ospita enormi dati geo-abilitati e il frontend lo sta visualizzando su una mappa mapbox. Sto riscontrando problemi di prestazioni, a causa dello stack che ho impostato. Ecco lo stack, quando si tratta di visualizzare una mappa.
MapboxGl.js player
^ ^
| (HTTP) \
Node.js backend Mapbox APIs vectors
^
|
MongoDB
Gli endpoint HTTP servono sia i GeoJSON che i dati REST. La parte GeoJSON viene generata dinamicamente da un insieme di raccolte MongoDB (ad esempio, gpspoints
, images
, lines
ecc.). L'API Mapbox è il mio stile Mapbox Studio.
Sto cercando la migliore alternativa a questo design. E leggendo su mappe, vettori, piastrelle, rendering e cose, mi sono reso conto che avrei dovuto scambiare il mio server GeoJSON per un server di piastrelle Vector (solo per la parte della mappa). Mi piacerebbe finire con qualcosa di simile.
MapboxGl.js player
^ ^ ^
/ | (HTTP) \
Vector tiles Node.js backend Mapbox APIs vectors
Server ^
^ |
| |
Other backend ? MongoDB
Sto lottando sul punto di fare scelte di design. Le domande che ho in mente sono:
Informazioni sulla generazione:
- Sono giunto all'idea che devo generare le mie tessere vettoriali da un GeoJSON. È corretto ? Sarebbe possibile generare piastrelle vettoriali da zero, voglio dire, da uno script di routine node.js, analizzare i dati da varie fonti (.csv, altri database, ecc.) E fare operazioni su di esso (usando turf.js) , quindi generare materiale vettoriale, come spingere, magari aggiornare, cancellare, ecc.
- Ho trovato geojson-vt che sembra essere in grado di tradurre GeoJSON per il vettore di piastrelle, ma solo in formato json. Ho trovato vt-pbf , sono nella giusta direzione?
Informazioni sulla pubblicazione
- Una volta che sarei stato in grado di generare qualunque formato-vettore-tile, sarò disposto a servirlo. Ho trovato Tilelive.js che sembra molto buono e ha molti moduli, inclusi quelli di back-end. È una buona opzione?
- Parlando in generale, sarebbe possibile non generare alcun file statico e magari servire in modo dinamico qualsiasi formato vettoriale da un database, attraverso qualcosa come tilelive?
Informazioni aggiuntive:
- I miei dati sono "mutabili", ma ho degli script di routine che funzionano di notte e analizzano i nuovi dati. Pertanto, la mutabilità dei dati visualizzati in live-map non è un requisito: posso aggiornare / ri-analizzare un intero dataset di notte per servirlo la mattina
- Sia la generazione che l'hosting su Mapbox studio non sono un'opzione, dal momento che i miei dati sono fondamentali e devono essere ospitati in specifici settori. Un'opzione self-hosted è obbligatoria, qualsiasi roba basata su cloud non è ok: /
Questa domanda è ridondata in gis.stackexchange