Esplora il mondo di GIS
e cerco di elaborare un'architettura di un servizio GIS
con molti oggetti su una mappa. Attualmente sto caricando tutti gli elementi nell'area della mappa visibile. Per mantenere pulita una mappa, utilizzo il clustering degli oggetti.
Una delle mie preoccupazioni in merito allo sviluppo di questo servizio è un ottimizzazione del traffico e riduzione del numero di richieste a il server quando un utente trascina la mappa. Come opzione possibile, vedo il seguente disegno:
Passi:
- Al caricamento iniziale, un utente riceve una quantità significativa di oggetti all'interno dell'area visibile (ad es. big push di dati).
- A qualsiasi trascinamento della mappa, che è vicino all'area iniziale (passaggio 1), un utente otterrà solo un piccolo numero di oggetti selezionati in base a una certa metrica interna.
- Un utente otterrà un altro grande impulso di dati se l'area della mappa visibile è stata drasticamente cambiata, ad es. da New York a Los Angeles.
Sarei felice di ricevere un feedback sull'architettura proposta, i suoi inconvenienti e i possibili colli di bottiglia. O anche suggerimenti alternativi per casi simili.
Il mio stack tecnologico: Node.js
, MongoDB
, Leaflet.js
.
P.S. Fammi sapere se questa domanda è più adatta per un altro sito della rete StackExchange.