Ich baue eine Anwendung, die lat / long-Werte aus einer Datenbank zieht und sie auf einer Google Map darstellt. Es könnte Tausende von Datenpunkten geben, also "Cluster" Punkte nahe beieinander, so dass der Benutzer nicht mit Symbolen überfordert ist. Im Moment führe ich dieses Clustering in der Anwendung mit einem einfachen Algorithmus wie diesem aus:
Ich gebe jetzt bekannt, dass dies ineffizient ist und der Grund dafür ist, dass ich mich mit GIS-Systemen beschäftigt habe. Ich habe PostGIS eingerichtet und habe meine Lat & amp; Longs, die in einem POINT-Geometrieobjekt gespeichert sind.
Kann mich jemand auf eine einfache Implementierung dieses Clustering-Algorithmus in PostGIS anleiten oder auf Ressourcen hinweisen?
Ich habe eine Kombination aus snaptogrid und avg . Mir ist klar, dass es Algorithmen gibt (d. H. Kmeans wie Denis vorgeschlagen), die mir bessere Cluster geben werden, aber für das, was ich tue, ist das schnell und genau genug.
Wenn es genug ist, in Ihrem Browser ein paar Dinge zu gruppieren, könnten Sie die Clustering-Fähigkeiten von OpenLayer einfach nutzen. Es gibt 3 Beispiele, die Clustering zeigen.
Ich habe es vorher mit einer PostGIS-Datenbank verwendet, und solange Sie keine lächerlichen Datenmengen haben, funktioniert es ziemlich reibungslos.
Tags und Links php postgresql geolocation gis postgis