Gdy funkcja przeciągania jest włączona, użytkownicy mogą przeciągać znaczniki na mapie za pomocą myszy lub klawiszy strzałek. Aby można było przeciągać znacznik, ustaw właściwość AdvancedMarkerElement.gmpDraggable na true.
Przykładowa mapa poniżej zawiera przeciągalny znacznik, który wyświetla zaktualizowaną pozycję po zakończeniu przeciągania (wywoływane jest zdarzenie gmp-dragend):
Aby przeciągnąć marker za pomocą klawiatury:
- Naciskaj klawisz Tab, aż zaznaczone zostaną znaczniki.
- Użyj klawiszy strzałek, aby przejść do wybranego znacznika.
- Aby aktywować przeciąganie, naciśnij Option + Spacja lub Option + Enter (Mac), Alt + Spacja lub Alt + Enter (Windows).
- Aby przesunąć znacznik, użyj klawiszy strzałek.
- Aby umieścić znacznik w nowym miejscu, naciśnij spację lub Enter. Spowoduje to również wyłączenie przeciągania.
- Aby wyłączyć przeciąganie i przywrócić znacznik do poprzedniej pozycji, naciśnij Esc.
Wyświetlanie kodu
TypeScript
const mapElement = document.querySelector('gmp-map')!; async function init() { // Request needed libraries. const [{ InfoWindow }, { AdvancedMarkerElement }] = await Promise.all([ google.maps.importLibrary('maps'), google.maps.importLibrary('marker'), ]); const infoWindow = new InfoWindow(); const draggableMarker = new AdvancedMarkerElement({ position: { lat: 37.39094933041195, lng: -122.02503913145092 }, gmpDraggable: true, title: 'This marker is draggable.', }); mapElement.append(draggableMarker); draggableMarker.addEventListener('gmp-dragend', () => { const position = draggableMarker.position as google.maps.LatLngAltitude; infoWindow.close(); infoWindow.setContent( `Pin dropped at: ${String(position.lat)}, ${String(position.lng)}` ); infoWindow.open(draggableMarker.map, draggableMarker); }); } void init();
JavaScript
const mapElement = document.querySelector('gmp-map'); async function init() { // Request needed libraries. const [{ InfoWindow }, { AdvancedMarkerElement }] = await Promise.all([ google.maps.importLibrary('maps'), google.maps.importLibrary('marker'), ]); const infoWindow = new InfoWindow(); const draggableMarker = new AdvancedMarkerElement({ position: { lat: 37.39094933041195, lng: -122.02503913145092 }, gmpDraggable: true, title: 'This marker is draggable.', }); mapElement.append(draggableMarker); draggableMarker.addEventListener('gmp-dragend', () => { const position = draggableMarker.position; infoWindow.close(); infoWindow.setContent( `Pin dropped at: ${String(position.lat)}, ${String(position.lng)}` ); infoWindow.open(draggableMarker.map, draggableMarker); }); } void init();
Ustawianie tekstu opisu
Aby ustawić tekst opisowy znacznika, który może być odczytywany przez czytniki ekranu, użyj atrybutu AdvancedMarkerElement.title, jak pokazano poniżej:
const markerView = new google.maps.marker.AdvancedMarkerElement({
map,
position: { lat: 37.4239163, lng: -122.0947209 },
title: "Some descriptive text.",
});
Gdy atrybut title jest ustawiony, tekst jest widoczny dla czytników ekranu i pojawia się, gdy kursor myszy znajduje się nad znacznikiem.