21 lutego 2024 r. (wersja 3.56) wycofaliśmy znacznik google.maps.Marker. Zachęcamy do przejścia na nową google.maps.marker.AdvancedMarkerElement
klasę. Zaawansowane markery zapewniają znaczne ulepszenia w porównaniu z dotychczasową klasągoogle.maps.Marker.
Więcej informacji o tym wycofaniu
Aby zaktualizować starszy znacznik i przekształcić go w zaawansowany, wykonaj te czynności:
- Dodaj kod, aby zaimportować bibliotekę znaczników (wykonaj czynności podane poniżej).
- Zmień
google.maps.Markernagoogle.maps.marker.AdvancedMarkerElement; jeśli instrukcja importu deklarujeAdvancedMarker, możesz pominąć kwalifikowaną ścieżkę. - Dodaj identyfikator mapy do kodu inicjującego mapę. Na przykład
mapId: 'DEMO_MAP_ID'na potrzeby testowania, jeśli nie masz jeszcze identyfikatora mapy.
Dodawanie biblioteki zaawansowanych znaczników
Metoda wczytywania bibliotek zależy od tego, jak strona internetowa wczytuje interfejs Maps JavaScript API.
Jeśli strona internetowa korzysta z dynamicznego importowania biblioteki, dodaj bibliotekę znaczników i zaimportuj
AdvancedMarkerElement(i opcjonalniePinElement) w czasie działania, jak pokazano tutaj.const { AdvancedMarkerElement, PinElement } = await google.maps.importLibrary("marker");
Jeśli Twoja strona korzysta z starszego tagu bezpośredniego wczytywania skryptu, dodaj do skryptu wczytywania parametr
libraries=marker, jak pokazano w tym fragmencie kodu.<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&v=weekly&libraries=marker" defer ></script>
Więcej informacji o wczytywaniu interfejsu Maps JavaScript API
Przykłady
Poniższe przykłady kodu pokazują, jak dodać starszy znacznik, a następnie jak to samo zrobić za pomocą zaawansowanych znaczników:
Przed migracją
// 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',
});
Po migracji
// 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',
});
Poznaj funkcje zaawansowanych znaczników
Znaczniki zaawansowane można dostosowywać w sposób, który wcześniej nie był możliwy. Możesz teraz dostosowywać rozmiar (skalę) znaczników oraz zmieniać kolory tła, obramowania i glifu. Praca z niestandardowymi obrazami graficznymi jest prostsza, a niestandardowe markery można teraz tworzyć za pomocą kodu HTML i CSS. Dowiedz się więcej o wszystkich możliwościach zaawansowanych znaczników:
- Dodaj znacznik do mapy.
- Podstawowe dostosowywanie znacznika
- Tworzenie znaczników z grafiką
- Tworzenie markerów za pomocą HTML i CSS
- Kontrolowanie zachowania w przypadku kolizji, wysokości i widoczności
- Umożliwianie klikania i dostępność znaczników