Domanda

Grazie a questo rispondono sono riuscito a trovare una soluzione temporanea per il mio problema.

Tuttavia, con un elenco di 6000 punti che cresce ogni giorno sta diventando sempre più lentamente.

Non riesco a utilizzare un servizio di terze parti * quindi ho bisogno di venire con la mia soluzione.

Ecco le mie esigenze:

  1. Clustering delle coordinate bisogno di lavorare con qualsiasi livello di zoom della mappa.

  2. Tutti i cluster devono essere memorizzate nella cache

  3. L'ideale non ci sarà la necessità di grappolo (calcolare le distanze) su tutti punti se si aggiunge un nuovo punto.

Finora ho implementato quadtree che restituisce i quattro confini della mia mappa e restituisce qualunque coordinate sono all'interno della sezione visibile della mappa.

Quello che mi serve e so che questo non è facile è quello di avere grappoli di punti restituiti dal DB (postgres).

È stato utile?

Soluzione

Attualmente sto facendo dinamica clustering di server-side di circa 2.000 marcatori, ma funziona piuttosto veloce fino a 20.000. Si può vedere la discussione del mio algoritmo qui:

Mappa Clustering Algoritmo

Ogni volta che l'utente sposta la mappa mando una richiesta con il livello di zoom e i confini della vista del server, che raggruppa i marcatori visibili e lo invia al client.

Non memorizzare nella cache i cluster perché i marcatori possono essere filtrati in modo dinamico e ricercato - ma se fossero pre-raggruppati sarebbe super veloce

!

Altri suggerimenti

Non vedo il motivo per cui si deve "cluster" on the fly. Riassumere ad ogni livello di zoom a una risoluzione sei felice con.

Avere una semplice struttura di X, Y, # dei collegamenti. Quando qualcuno aggiunge un collegamento, si inseriscono i luoghi reali (livello di zoom massimo, o altro), quindi avviare zampillante da lì.

Alla fine avrete 10 (se si dispone di 10 livelli di zoom) serie di coordinate distinti, uno per ogni livello di zoom diverso.

Il calcolo è banale, e hai solo di farlo una volta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top