Я хотел бы знать, какой самый быстрый алгоритм кластеризации маркеров в PHP?
Единственное, что мне нужно от функции cluster, - это вывод с кластером obj, который имеет свойства: lat, lng и size.
и затем маркеры, которые не были кластеризованы, конечно, но я не могу найти php-код для этого, и должно быть какое-то?
Я ищувыделенный код, который даст такой результат?(Или, возможно, лучше работать).http://maps.forum.nu/server_side_clusterer/
До сих пор я пытался с:
function ClusterMarkers($markers,$ZOOM)
{
$this->load->library('firephp');
$singleMarkers = array();
$clusterMarkers = array();
// Minimum distance between markers to be included in a cluster, at diff. zoom levels
$DISTANCE = (10000000 >> $ZOOM);
// Loop until all markers have been compared.
while (count($markers)) {
$marker = array_pop($markers);
$cluster = array();
// Compare against all markers which are left.
foreach ($markers as $key => $target) {
$pixels = abs($marker['lat']-$target['lat']) + abs($marker['lng']-$target['lng']);
$this->firephp->log('pix :'.$pixels);
if ($pixels < $DISTANCE) {
unset($markers[$key]);
$cluster[] = $target;
}
}
// If a marker has been added to cluster, add also the one we were comparing to.
if (count($cluster) > 0) {
$cluster[] = $marker;
$clusterMarkers[] = $cluster;
} else {
$singleMarkers[] = $marker;
}
}
return array('singlemarkers' => $singleMarkers, 'clustermarkers' => $clusterMarkers);
}
Мои данные затем jsonized, но массив clustermarkers содержит все маркерные данные, и я 'Мне интересно, как я мог бы эффективно установить значения lat, lng и размер без необходимости пересчитывать ресурсы, требующие каждый раз, когда добавляется новый маркер.