28 enero 2009

Fusión de marcadores, o agrupación de sitios de buceo

Estuve buscando la manera de mostrar un gran numero de puntos de buceo en un mapa, y la única solución que he encontrado es la de agrupar o fusión puntos por cercanía.
Hice varías pruebas y el resultado dependerá del nivel de detalle o zoom que se visualice en ese momento.



De esta manera la cantidad de puntos que tiene que gestionar la web es infimamente inferior al total de puntos, ganando velocidad y practicidad.

Técnicamente utilizo jquery para programar el javascript y lo que hago es generar los puntos en un script en php, genero un array con los puntos. Los voy agrupando dependiendo de la cercanía de cada punto con respecto al resto y la distancia media del mas cercano se convertirá en un nuevo punto de tipo detalle ganando un 50%.
La iteración n^2 me dará los puntos finales. Estos puntos los guardo en un array que luego convierto a JSON y lo devuelvo por una petición AJAX al cliente.

Además comprimo el resultado por gzip y gano alrededor de un 60% de ancho de banda.

El KML de momento esta en mantenimiento ya que quiero implementar esta funcionalidad.

No hay comentarios: