Las respuestas anteriores son más elegantes, pero encontré una forma rápida y sucia que realmente funciona realmente increíblemente bien. Puede verlo en acción en www.buildinglit.com
Todo lo que hice fue agregar un desplazamiento aleatorio a la latitud y longitud a mi página genxml.php para que devuelva resultados ligeramente diferentes cada vez con desplazamiento cada vez que se crea el mapa con marcadores. Esto suena como un truco, pero en realidad solo necesita que los marcadores se muevan un ligero empujón en una dirección aleatoria para que se pueda hacer clic en el mapa si se superponen. De hecho, funciona muy bien, yo diría que mejor que el método araña porque ¿quién quiere lidiar con esa complejidad y hacer que salten por todas partes? Solo desea poder seleccionar el marcador. Empujarlo al azar funciona perfecto.
Aquí hay un ejemplo de la creación del nodo de iteración de la declaración while en mi 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);
Observe que debajo de lat y long está el desplazamiento +. de las 2 variables anteriores. Tuve que dividir al azar por 0,1000 por 10000000 para obtener un decimal que fuera lo suficientemente pequeño al azar como para mover apenas los marcadores. Siéntase libre de jugar con esa variable para obtener una que sea más precisa para sus necesidades.