21 lutego 2024 r. (wersja 3.56) wycofaliśmy znacznik google.maps.Marker. Zachęcamy do przejścia na nową klasę google.maps.marker.AdvancedMarkerElement. Znaczniki zaawansowane zapewniają znaczne ulepszenia w porównaniu z dotychczasową klasą google.maps.Marker.
Więcej informacji o wycofywaniu znaczników
Aby zaktualizować dotychczasowy znacznik do znacznika zaawansowanego, wykonaj te czynności:
- Dodaj kod, aby zaimportować bibliotekę znaczników (patrz kroki 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 znaczników zaawansowanych
Metoda wczytywania bibliotek zależy od tego, jak strona wczytuje Maps JavaScript API.
Jeśli strona korzysta z dynamicznego importu biblioteki, dodaj bibliotekę znaczników i zaimportuj
AdvancedMarkerElement(opcjonalniePinElement) w czasie działania, jak pokazano tutaj.const { AdvancedMarkerElement, PinElement } = await google.maps.importLibrary("marker");
Jeśli strona korzysta z dotychczasowego tagu wczytywania skryptu bezpośredniego, dodaj
libraries=markerdo skryptu wczytywania, 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 Maps JavaScript API
Przykłady
Poniższe przykłady kodu pokazują kod dodawania dotychczasowego znacznika, a następnie kod tego samego przykładu z użyciem znaczników zaawansowanych:
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.
await google.maps.importLibrary('maps') as google.maps.MapsLibrary;
await google.maps.importLibrary('marker') as google.maps.MarkerLibrary;
// 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/Ayers Rock',
});
Odkrywanie funkcji znaczników zaawansowanych
Znaczniki zaawansowane można dostosowywać w sposób, który wcześniej nie był możliwy. Teraz możesz dostosować rozmiar (skalę) znaczników oraz zmienić kolory tła, obramowania i glifu. Praca z niestandardowymi obrazami graficznymi jest prostsza, a teraz można tworzyć niestandardowe znaczniki za pomocą kodu HTML i CSS. Więcej informacji o wszystkich możliwościach znaczników zaawansowanych:
- Dodawanie znacznika do mapy.
- Podstawowe dostosowywanie znaczników
- Tworzenie znaczników z grafikami
- Tworzenie znaczników za pomocą kodu HTML i CSS
- Kontrolowanie zachowania przy kolizji znaczników, wysokości i widoczności
- Umożliwianie klikania i dostępności znaczników