google maps - Hierarchical Clustering in JavaScript -
i have markers on google maps , identify clusters point-to-point distance between them. however, having bit of difficulty:
first loop through markers , create array is:
for (var = 0; < markers.length - 1; i++) { (var j = + 1; j < markers.length; j++) { var distance_between = google.maps.geometry.spherical.computedistancebetween(point_i, point_j) var valuetopush = {} valuetopush.frommarker = name_i valuetopush.tomarker = name_j valuetopush.distance = distance_between cluster_array.push(valuetopush) } } what run hierarchical clustering algorithm this:
var cluster = .cluster(cluster_array, max, threshold) where if specify 500 threshold list this
cluster 0: marker a, marker y, marker c
cluster 1: marker b
cluster 2: marker d, marker e
etc.
where each cluster shows me markers within 500 metres of each other.
thanks much
if helps ended doing:
function the_clusterer(cluster_array, num_radius) { console.log('clustering distance array') (var = 0; < cluster_array.length - 1; i++) { if (typeof(cluster_array[i]) != 'undefined') { var size_outer = 0, key_outer; (key_outer in cluster_array[i]) { if (cluster_array[i].hasownproperty(key_outer)); size_outer++; } (var j = 0; j < size_outer; j++) { (var k = + 1; k < cluster_array.length; k++) { if (typeof(cluster_array[i]) != 'undefined') { var size_inner = 0, key_inner; (key_inner in cluster_array[k]) { if (cluster_array[k].hasownproperty(key_inner)); size_inner++; } var found_outer = 0 (var l = 0; l < size_inner; l++) { if (found_outer === 1) { break; } if (cluster_array[k][l] == cluster_array[i][j]) { found_outer++ } } if (found_outer > 0) { (var l = 0; l < size_inner; l++) { var found_inner = 0 (var m = 0; m < size_outer; m++) { if (cluster_array[i][m] == cluster_array[k][l]) { found_inner++ } } if (found_inner == 0) { cluster_array[i][size_outer] = cluster_array[k][l] size_outer++ } } delete cluster_array[k]; } } } } } } txtoutput.value += "start clusters: " + num_radius + "m.\n" var k = 0 (var = 0; < cluster_array.length - 1; i++) { var size_outer = 0, key_outer; (key_outer in cluster_array[i]) { if (cluster_array[i].hasownproperty(key_outer)); size_outer++; } if (size_outer > 0) { k++ var temp_line = "cluster " + k + ":" (var j = 0; j < size_outer; j++) { temp_line = temp_line + " marker " + cluster_array[i][j] } txtoutput.value += temp_line + ".\n" } } }
Comments
Post a Comment