Pregunta

Gracias a este responden me las arreglé para llegar a una solución temporal a mi problema.

Sin embargo, con una lista de los 6000 puntos que crece día a día se está volviendo más y más lento.

No puedo usar un servicio de terceros * por lo tanto necesito para llegar a mi propia solución.

Aquí están mis requisitos:

  1. La agrupación de las coordenadas necesita para trabajar con cualquier nivel de zoom de la mapa.

  2. Todos los grupos tienen que ser almacenado en caché

  3. Lo ideal sería que no habrá necesidad de cluster (calcular distancias) en todo puntos si se añade un nuevo punto.

Hasta ahora he implementado árbol cuádruple que devuelve los cuatro límites de mi mapa y vuelve lo coordenadas están dentro de la sección visible del mapa.

Lo que necesito y sé que esto no es fácil es tener grupos de los puntos devueltos de la BD (postgres).

¿Fue útil?

Solución

Actualmente estoy haciendo dinámica agrupación de servidor de alrededor de 2.000 marcadores, pero funciona bastante rápido hasta 20.000. Puede ver la discusión de mi algoritmo aquí:

Mapa algoritmo de clústeres de

Cada vez que el usuario mueve el mapa que enviar una solicitud con el nivel de zoom y los límites de la vista al servidor, que agrupa los marcadores visibles y lo envía de vuelta al cliente.

No almacenar en caché los grupos porque los marcadores pueden ser dinámicamente se filtran y se buscaron - pero si se pre-agrupados sería súper rápido

!

Otros consejos

No veo por qué tiene que "cluster" sobre la marcha. Resumir en cada nivel de zoom a una resolución que estés satisfecho con.

Tener una estructura simple de X, Y, # de enlaces. Cuando alguien añade un enlace, insertar las localizaciones reales (nivel de zoom máximo, o lo que sea), a continuación, iniciar el burbujeo a partir de ahí.

Con el tiempo usted tiene 10 (si tiene 10 niveles de zoom) conjuntos de coordenadas distintas, una para cada nivel de zoom diferente.

El cálculo es trivial, y sólo tiene que hacerlo una vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top