как получить все метки с карты гугл?

147
14 января 2020, 21:50

как получить все метки с карты гугл?

  <script>
    var map;
    var infoWindow;
    // ================markers//
    // var image = "images/map-png.png";
    var image = {
      url: 'images/map-png.png',
      scaledSize: new google.maps.Size(36, 36),
    };
    // массив маркеров
    var markersData = [
<?foreach($arResult["ITEMS"] as $key=>$arItem):?>
      {
        lat: <?=$arItem['DISPLAY_PROPERTIES']['LAT']['VALUE']?>,     // Широта
        lng: <?=$arItem['DISPLAY_PROPERTIES']['LNG']['VALUE']?>,    // Долгота
        name: "<?=$arItem['NAME']?>", // Произвольное название, которое будем выводить в информационном окне
        address: "<?=$arItem['DISPLAY_PROPERTIES']['ADDRESS']['VALUE']?>",
        title: "Текст всплывающей подсказки-1", // (Необязательно) Текст выводимый в момент наведения на маркер,
        // icon: image,   // Адрес, который также будем выводить в информационном окне
        picture: '<img src="<?=$arItem[PREVIEW_PICTURE][SRC]?>" alt="">'
      },
<?endforeach?>
    ];
    // ================
    // Объявляем переменные map и infoWindow за пределами функции initMap,
    // тем самым делая их глобальными и теперь мы их можем использовать внутри любой функции, а не только внутри initMap, как это было раньше.
    function initMap() {
// center 55.748903, 37.618833
      var centerLatLng = new google.maps.LatLng(55.748903, 37.618833);
      var mapOptions = {
        center: centerLatLng,
        zoom: 9,

      map = new google.maps.Map(document.getElementById("map"), mapOptions);
      // Создаем объект информационного окна и помещаем его в переменную infoWindow
      // Так как у каждого информационного окна свое содержимое, то создаем пустой объект, без передачи ему параметра content
      infoWindow = new google.maps.InfoWindow();
      // Отслеживаем клик в любом месте карты
      google.maps.event.addListener(map, "click", function () {
        // infoWindow.close - закрываем информационное окно.
        infoWindow.close();
      });
      // Перебираем в цикле все координата хранящиеся в markersData
      for (var i = 0; i < markersData.length; i++) {
        var latLng = new google.maps.LatLng(markersData[i].lat, markersData[i].lng);
        var name = markersData[i].name;
        var address = markersData[i].address;
        var picture = markersData[i].picture;
        // Добавляем маркер с информационным окном
        addMarker(latLng, name, address, picture);
      }
    }
    google.maps.event.addDomListener(window, "load", initMap);
 // вешаем на событие onclick для каждой кнопки функцию 
 var marker = new google.maps.Marker({});
 google.maps.event.addDomListener(document.getElementById('address-item-0'), 'click', function(e) {

     google.maps.event.trigger(markersData[1], 'click');

    });  

    // Функция добавления маркера с информационным окном
    function addMarker(latLng, name, address, picture) {
      var marker = new google.maps.Marker({
        position: latLng,
        map: map,
        title: name,
        icon: image,

      });
      // Отслеживаем клик по нашему маркеру
      google.maps.event.addListener(marker, "click", function () {
        // contentString - это переменная в которой хранится содержимое информационного окна.
        var contentString = '<div class="infowindow">' +
          '<div class="img-box">' + picture +
          '</div><div><h3>' + name + '</h3>' +
          '<p>' + address + '</p></div>'
        '</div>';
        // Меняем содержимое информационного окна
        infoWindow.setContent(contentString);
        // Показываем информационное окно
        infoWindow.open(map, marker);
      });
    }
  </script>
READ ALSO
Как сделать что бы изображение всегда появлялось под мышкой?

Как сделать что бы изображение всегда появлялось под мышкой?

Как сделать что бы при клике изображение всегда появлялось под мышкой в заданном блоке?

145
С чем связана ошибка promice?

С чем связана ошибка promice?

Я понимаю что ошибка происходит из за асинхронных функций, но как избежать ошибок?

106
Пререндеринг первого экрана

Пререндеринг первого экрана

Планируется переехать на vue js рендеринг и есть опасения, что SEO страницы упадётВозможно ли сделать так, чтобы в index

140