В настоящее время я использую Google Maps MarkerClusterer v3 (http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/reference.html) и были очень впечатлены функциональностью до сих пор.Google Maps MarkerClusterer v3 Возвратный кластер маркера
Однако теперь я хочу добавить дополнительную функцию к своей карте. Когда пользователь наводится над списком маркеров, изображение маркера изменяется. Это отлично работает, когда маркеры не кластеризованы, но поскольку я также использую кластер, мне нужно вернуть кластер, к которому принадлежит определенный маркер.
Кто-нибудь знает, возможно ли это? Я проверил документы API, но не смог найти метод для возврата массива кластеров.
По существу, здесь является псевдо-код, что мне нужно сделать:
function changeClusterIcon(the_marker)
{
var clusters = _CLUSTERER.getClusters();
var clusters_length = clusters.length;
var marker_pos = the_marker.getPosition().toString();
for(var i = 0; i < clusters_length; i++)
{
var this_cluster = clusters[i];
var the_markers = this_cluster.markers.length;
for(var j = 0; j < the_markers; j++)
{
var this_marker = this_cluster.markers[i];
if(this_marker.getPosition().toString() == marker_pos)
{
return this_cluster;
}
}
}
return false;
}
Благодарим за помощь. Мне удалось создать вспомогательную функцию в исходной библиотеке MarkerClusterer, которая возвращает массив созданных кластеров. По сути, библиотека ** делает ** хранит кластеры, она просто не предоставляет нативную функцию для доступа к ним. Однако я соглашусь на ваш ответ, поскольку мне удалось обойти эту проблему, изучив код библиотеки Plus. – BenM
Да, «MarkerClusterer» абсолютно держит кластеры; Я сам прошел через этот код. Я пытался передать это с формулировкой «не дает способ получить кластеры», но, я думаю, это было не совсем ясно. Во всяком случае, это помогло вам двигаться вперед, что является самой важной частью. Рад, что он работает на вас - –