Al momento sto utilizzando l'API di Google Maps v.3 per disegnare indicatori sulla mappa. Ho circa 500 marker in totale.Caricamento marcatori 100-200K su google map
Per scopi di visualizzazione utilizzo marker marker e marcatori di gruppo utilizzando questo strumento sul lato client nel browser.
Tuttavia, ho intenzione di espandere il numero di posizioni e presumere che possa crescere fino a 100 K o anche 200 K rapidamente.
Ho eseguito alcuni test di stress e mi sono reso conto che la soluzione corrente uccide fondamentalmente il browser e circa 10-20K di indicatori.
Quindi la mia domanda qual è l'approccio migliore per disegnare tanti indicatori (non necessario google maps)?
Ho letto i messaggi con domande simili, ad es .:
Showing many markers in Google Maps
Best solution for too many pins on google maps
Fondamentalmente le persone suggeriscono di utilizzare alcune clusterer per scopi di visualizzazione, che ho già uso.
Oppure utilizzare le tabelle di fusione per il recupero dei dati, che non è un'opzione, poiché i dati devono rimanere sul mio server. Suppongo anche che la funzionalità di visualizzazione sia limitata con le tabelle di fusione.
Sto pensando di attuare il seguente scenario:
in ogni pagina di zoom/carico - inviare richiesta AJAX con confini della vista del display, aggiungere circa il 30% su tutti i lati e recuperare i marcatori, che cadere in questa area geografica solo. 30% viene aggiunto nel caso in cui l'utente zooma fuori, in modo che possa visualizzare altri marker rapidamente e quindi recuperare ulteriormente in background il resto intorno (territorio più ampio)
Quando il numero di marcatori è superiore a 50 - quindi I piano per applicare il clustering per scopi di visualizzazione. Ma dato che il markerCluster in javascript è piuttosto lento, ovvero non markerCluster ma google stesso, poiché applica ancora le posizioni di tutti i marker, ho intenzione di fare il clustering sul lato server dividendo i limiti della mappa visualizzata nella griglia 15 * 15 e rilasciare marcatori in celle particolari e quindi fondamentalmente inviare ai cluster client con un numero di marker all'interno (ad esempio, come per heatmap). E poi per visualizzare i cluster come marker.
Potrebbe per favore dare qualche idea a chi ha fatto simili. Ha senso in generale. O è un approccio stupido dato che le richieste Ajax saranno inviate al server su ogni zoom e spostamento di ogni mappa e fondamentalmente sovraccaricano il server con richieste ridondanti?
Quello che voglio ottenere è una bella esperienza utente su grandi set di dati di marcatori (da caricare in meno di 2 secondi).
Invece portare il marker attraverso una chiamata ajax in lotti e disegnarli in un batch – sunil
@sunil puoi elaborare? Quindi carica i lotti per determinate regioni e disegna loro una regione per regione - sarà un disastro totale per l'utente che penso. – Volder
Un altro modo per pensare al tuo schema è che hai tessere vettoriali multi-livello sul server - proprio come le tessere mappa ma queste "tessere" sono posizioni di posizioni di marker/cluster all'interno di un'area. Il front-end richiede tali "tessere" in base al livello e all'estensione dello zoom. Il client può memorizzare nella cache tali "tessere" e quindi potrebbe non esserci la necessità di ricaricare con ogni zoom e pan. – headuck