Как найти определенный маркер на Google Map? - PullRequest
1 голос
/ 03 июля 2011

У меня есть таблица с результатами поиска и массив маркеров для результатов.У каждого элемента есть идентификатор, и если пользователь нажимает на маркер, страница прокручивается до результата поиска (я просто меняю window.location.hash).

Возможно ли сделать это наоборот?Пользователи нажимают на результат поиска, и появляется информационное окно для маркера.

1 Ответ

3 голосов
/ 03 июля 2011

Я предполагаю, что вы имеете в виду, что на карте прокручивается маркер, связанный с результатом поиска?

Пока в результате поиска есть событие click, которое содержит уникальный идентификатор для маркера, который вы хотите отобразить, конечно, это будет работать.Сайт, которым я в данный момент управляю, имеет боковую панель результатов поиска, где при нажатии на результат он прокручивает маркер на экране и отображает информационное окно.Код, вызываемый обработчиком щелчка, выглядит примерно так (без обработки ошибок и других неинтересных частей для вашего вопроса):

function MarkerZoomTo(markerIdentifier) {
    pt = gMarkers[markerIdentifier].getPosition();
    newpt = new google.maps.LatLng(pt.lat() + .02, pt.lng());
    map.panTo(newpt);

    if (infoWindow) {
    infoWindow.close();
    }

    infoWindow.setContent(gMarkers[markerIdentifier].get('iwcontent'));
    infoWindow.setPosition(gMarkers[markerIdentifier].getPosition());

    infoWindow.open(map, gMarkers[markerIdentifier]);
}

Я передаю уникальный идентификатор маркера функции, получаю из него определенный маркермой маркерный массив, получить его положение lat / lng, создать объект LatLng и выполнить панорамирование в это местоположение.

Остальное просто одевается, чтобы получить содержимое для информационного окна и установить его положение, которое вы можете сделать любым способом.вы считаете нужным.

И, наконец, просто откройте информационное окно для маркера.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...