[GIS] Grouping map points into fixed cluster sizes

algorithmclusteringgeoprocessinggoogle-maps-api

I have a dataset of 655 lat/long pairs which I'd like to split into about 100 groups. A group should have 5-10 pairs which are geographically close to each other. Dense groups should have more points, sparse groups should have less. For example urban groupings should be larger, rural ones smaller.

Is there an established algorithm for doing this kind of grouping, or am I going to have to design one from scratch?

I'm using google maps v3 api to display this data, but as it's a fixed dataset I'm prepared to do some offline number crunching.

Best Answer

you can check out k-means clustering algorithm here.

In data mining, k-means clustering is a method of cluster analysis which aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean. This results into a partitioning of the data space into Voronoi cells.

kmeans-postgresql implementation here.. and i newly meet this topic Spatial clustering with PostGIS , you can check out here from @Mike Toews with ST_MinimumBoundingCircle function..

mikey


kmeans

Related Question