С 21 февраля 2024 г. (версия 3.56) класс google.maps.Marker устарел. Мы рекомендуем вам перейти на новый класс google.maps.marker.AdvancedMarkerElement . Расширенные маркеры обеспечивают существенные улучшения по сравнению с устаревшим классом google.maps.Marker . Подробнее об этом устарело.
Чтобы обновить устаревший маркер до усовершенствованного, выполните следующие действия:
- Добавьте код для импорта библиотеки маркеров (см. шаги ниже).
- Измените
google.maps.Markerнаgoogle.maps.marker.AdvancedMarkerElement; если в вашем операторе импорта объявленAdvancedMarker, вы можете опустить квалифицированный путь. - Добавьте идентификатор карты в код инициализации карты. Например,
mapId: 'DEMO_MAP_ID'для тестирования, если у вас ещё нет идентификатора карты.
Добавить библиотеку расширенных маркеров
Метод загрузки библиотек зависит от того, как ваша веб-страница загружает Maps JavaScript API.
Если ваша веб-страница использует импорт динамической библиотеки , добавьте библиотеку маркеров и импортируйте
AdvancedMarkerElement(и, при необходимостиPinElement) во время выполнения, как показано здесь.const { AdvancedMarkerElement, PinElement } = await google.maps.importLibrary("marker");
Если на вашей веб-странице используется устаревший тег загрузки прямого скрипта , добавьте
libraries=markerк скрипту загрузки, как показано в следующем фрагменте.<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&v=weekly&libraries=marker" defer ></script>
Узнайте больше о загрузке API JavaScript Карт
Примеры
В следующих примерах кода показан код для добавления устаревшего маркера, а затем код для того же примера с использованием расширенных маркеров:
До миграции
// The location of Uluru
const position = { lat: -25.344, lng: 131.031 };
const map = new google.maps.Map(document.getElementById("map"), {
zoom: 4,
center: position,
});
// The marker, positioned at Uluru
const marker = new google.maps.Marker({
map: map,
position: position,
title: 'Uluru',
});
После миграции
// Import the needed libraries.
// Not required if the legacy direct script loading tag is in use.
const { Map } = await.google.maps.importLibrary("maps");
const { AdvancedMarkerElement } = await google.maps.importLibrary("marker");
// The location of Uluru
const position = { lat: -25.344, lng: 131.031 };
const map = new Map(document.getElementById("map"), {
zoom: 4,
center: position,
mapId: "DEMO_MAP_ID", // Map ID is required for advanced markers.
});
// The advanced marker, positioned at Uluru
const marker = new AdvancedMarkerElement({
map,
position: position,
title: 'Uluru/Ayers Rock',
});
Изучите расширенные функции маркера
Расширенные маркеры теперь можно настраивать способами, которые раньше были недоступны. Теперь вы можете настраивать размер (масштаб) маркеров, а также менять цвета фона, рамки и глифа. Работать с пользовательскими графическими изображениями стало проще, и теперь можно создавать собственные маркеры с помощью HTML и CSS. Узнайте больше о возможностях расширенных маркеров:
- Добавить маркер на карту .
- Базовая настройка маркера
- Создавайте маркеры с графикой
- Создавайте маркеры с помощью HTML и CSS
- Контролируйте поведение при столкновении, высоту и видимость
- Сделайте маркеры кликабельными и доступными