Наведені вище відповіді більш елегантні, але я знайшов швидкий і брудний спосіб, який насправді працює справді неймовірно добре. Ви можете побачити його в дії на www.buildinglit.com
Все, що я зробив, було додати випадкове зміщення до широти та довготи до моєї сторінки genxml.php, щоб воно щоразу повертало дещо інші результати із зміщенням кожного разу, коли карта створюється маркерами. Це звучить як злом, але насправді маркери потрібні лише для легкого натискання у випадковому напрямку, щоб вони могли натискати на карті, якщо вони перетинаються. Насправді це працює дуже добре, я б сказав, що краще, ніж метод павука, тому що хто хоче вирішити цю складність і вести їх всюди. Ви просто хочете мати можливість вибрати маркер. Стискання його випадковим чином працює ідеально.
Ось приклад створення вузла ітерації оператора while у моєму php_genxml.php
while ($row = @mysql_fetch_assoc($result)){ $offset = rand(0,1000)/10000000;
$offset2 = rand(0, 1000)/10000000;
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("name", $row['name']);
$newnode->setAttribute("address", $row['address']);
$newnode->setAttribute("lat", $row['lat'] + $offset);
$newnode->setAttribute("lng", $row['lng'] + $offset2);
$newnode->setAttribute("distance", $row['distance']);
$newnode->setAttribute("type", $row['type']);
$newnode->setAttribute("date", $row['date']);
$newnode->setAttribute("service", $row['service']);
$newnode->setAttribute("cost", $row['cost']);
$newnode->setAttribute("company", $company);
Зауважте, що під лат і довгий є зміщення +. з 2-х змінних вище. Мені довелося ділити випадкову кількість на 0,1000 на 10000000, щоб отримати десятковий розмір, який був випадково достатньо малим, щоб ледь перемістити маркери. Не соромтеся поцікавитись цією змінною, щоб отримати більш точну для ваших потреб.