Перейти на расширенные маркеры

С 21 февраля 2024 г. (версия 3.56) google.maps.Marker устарел. Мы рекомендуем вам перейти на новый класс google.maps.marker.AdvancedMarkerElement . Расширенные маркеры существенно усовершенствованы по сравнению с устаревшим классом google.maps.Marker .

Подробнее об этом прекращении поддержки…

Чтобы обновить устаревший маркер до расширенного, выполните следующие действия:

  1. Добавьте код для импорта библиотеки маркеров. Обратите внимание, что предыдущая версия маркеров ( google.maps.Marker ) не имеет этого требования.
  2. Измените google.maps.Marker на google.maps.marker.AdvancedMarkerElement
  3. Добавьте идентификатор карты в код инициализации карты. Например, 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>

Узнайте больше о загрузке Maps JavaScript API.

Примеры

В следующих примерах кода показан код для добавления устаревшего маркера, а затем код того же примера с использованием расширенных маркеров:

До миграции

// 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',
});

После миграции

  // 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,
    mapId: "DEMO_MAP_ID", // Map ID is required for advanced markers.
  });

    // The advanced marker, positioned at Uluru
    const marker = new google.maps.marker.AdvancedMarkerElement({
        map,
        position: position,
        title: 'Uluru',
    });

Изучите расширенные функции маркеров

Расширенные маркеры можно настраивать способами, которые раньше были невозможны. Теперь вы можете настроить размер (масштаб) маркеров, а также изменить цвета фона, рамки и глифа. С пользовательскими графическими изображениями стало проще работать, и теперь можно создавать собственные маркеры с помощью HTML и CSS. Узнайте больше обо всем, что вы можете делать с помощью расширенных маркеров: