Как получить доступ к маркерам gmap после создания карты?


У меня проблема с маркерами карты Google, и я не нахожу способа ее решить.

У меня есть представление страницы карты, созданное с помощью модуля GMAP, где я показываю определенные узлы. У меня также есть блок просмотра, в котором отображаются некоторые из тех же узлов, которые отображаются на карте в неформатированном списке. Что мне нужно, так это связать узлы в списке с их соответствующими маркерами на карте (поэтому при наведении курсора на список измените значок маркера или наоборот).

Я мог бы рассказать узлы с маркерами, так как у меня есть точные координаты узла, которые совпадают с координатами маркера (очевидно). Моя проблема в том, что я не знаю, как получить список существующих маркеров на карте.

Из того, что я прочитал, я должен поместить маркеры в массив, когда они будут сгенерированы, чтобы позже я мог получить доступ к маркерам, используя элементы в массиве, но я не смог найти, где gmap генерирует маркеры. Я попытался создать глобальный массив и нажать на маркеры в gmap_marker.js внутри:

obj.bind('addmarker', function (marker) {
  // ... //
    mymarker.push(marker.marker);
}

Но даже я могу видеть любой результат. Я попытался подсчитать маркеры, которые генерируются с помощью чего-то вроде countmarkers += 1;, но результат также равен 0.

Кто-нибудь имеет представление о том, как я мог бы этого добиться? Буду признателен за любой совет.

Редактировать: Хорошо, я решил эту проблему. Похоже, то, что я сделал, было хорошо , и проблема заключалась в сроках процесса. Я позвонил:

mymarkers.forEach(function(marker) {
        //funciona OK
        alert(marker.getPosition().lat() + ' - ' + marker.getPosition().lng());
    });

Внутри setTimeout(function(){}); с задержкой 10 мс. Путем увеличения задержки до 5000 мс у всех маркеров достаточно времени для создания, и я, наконец, могу получить доступ к массиву маркеров.

Author: Pierre.Vriens, 2016-05-06

1 answers

Вот цитата из Сравнения модулей отображения:

GMAP считается устаревшим модулем.

Поэтому, возможно, вы захотите взглянуть на модуль Представления и карты геолокации IP. Частичная цитата со страницы проекта:

Несмотря на то, что может показаться из названия, IP Geolocation Views & Maps (IPGV&M) - это в первую очередь картографический движок.

Модуль позволяет очень легко создавать картографические решения на основе представлений с использованием карты визуализатор по вашему выбору (Google, Открытые слои или Листовка) с любым модулем хранения местоположения по вашему выбору, например:

enter image description here

Это позволяет объединить модули и наборы функций, которые без IPGV&M вы не смогли бы объединить.

Как красиво анимированная кластеризация маркеров в Google, Bing или Mapbox... любой из различных поставщиков карт.

Но что еще более важно, IPGV&M добавляет некоторые функции, которые вы не найдете так удобно упакованными в других местах.

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

enter image description here

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

 1
Author: Pierre.Vriens, 2020-06-15 09:13:00