@app-themed-default: #1bbae1;
@app-themed-dark-default: #394263;
@app-themed-night: #888888;
@app-themed-dark-night: #333333;
@app-themed-amethyst: #af64cc;
@app-themed-dark-amethyst: #583a63;
@app-themed-modern: #46b7bf;
@app-themed-dark-modern: #3b3f40;
@app-themed-autumn: #e67e22;
@app-themed-dark-autumn: #4a392b;
@app-themed-flatie: #1ec1b8;
@app-themed-dark-flatie: #32323a;
@app-themed-spring: #27ae60;
@app-themed-dark-spring: #344a3d;
@app-themed-fancy: #d9416c;
@app-themed-dark-fancy: #352b4e;
@app-themed-fire: #e74c3c;
@app-themed-dark-fire: #4a2e2b;
SELECT `юзеры`.*
FROM `юзеры`
INNER JOIN `города`
ON `города`.`id` = `юзеры`.`город_id`
INNER JOIN `области`
ON `области`.`id` = `города`.`область_id`
INNER JOIN `страны`
ON `страны`.`id` = `области`.`страна_id`
WHERE `страны`.`страна` = 'Россия'
$objects = array(array('lon' => 1, 'lat' => 2), ..., ...);
$cluster = array();
$levels = 10;
$firstRectWidth = 0.01; //самый маленький "квадрат" будет 1111 на 1111
for ($i = 0; $i < count($objects); $i++)
{
$obj = $objects[$i];
for ($level = 1; $level <= $levels; $level++)
{
$lon_index = ($obj->lon) / ($firstRectWidth * (2 ^ $level)); // не помню как степень в php
$lat_index = ($obj->lat) / ($firstRectWidth * (2 ^ $level)); // не помню как степень в php
$cluster[$level][$lon_index . "-" . $lat_index][] = $i;
}
}
// использование
$zoom = 1..10;
echo "кластеров ".(count($cluster[$zoom]))."<br >";
foreach ($cluster[$zoom] as $key => $value)
{
echo "область ".$key."<br >";
echo "кол-во элеметнов ". (count($value));
}