как получить все метки с карты гугл?
<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>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как сделать что бы при клике изображение всегда появлялось под мышкой в заданном блоке?
Я понимаю что ошибка происходит из за асинхронных функций, но как избежать ошибок?
Планируется переехать на vue js рендеринг и есть опасения, что SEO страницы упадётВозможно ли сделать так, чтобы в index