Introduzione
Un indicatore identifica una posizione su una mappa. Per impostazione predefinita, un indicatore utilizza un'
immagine standard. Gli indicatori possono visualizzare immagini personalizzate, nel qual caso vengono
in genere chiamati "icone." Indicatori e icone sono oggetti di tipo
Marker. Puoi impostare un'icona personalizzata nel costruttore dell'indicatore o chiamando
setIcon() sull'indicatore. Scopri di più su
come personalizzare l'immagine dell'indicatore.
In generale, gli indicatori sono un tipo di overlay. Per informazioni su altri tipi di overlay, consulta Disegno sulla mappa.
Gli indicatori sono progettati per essere interattivi. Ad esempio, per impostazione predefinita ricevono
eventi 'click', quindi puoi aggiungere un listener di eventi per
visualizzare una
finestra informativa
che mostra informazioni personalizzate. Puoi consentire agli utenti di spostare un indicatore sulla
mappa impostando la proprietà draggable dell'indicatore su
true. Per ulteriori informazioni sugli indicatori trascinabili, vedi
di seguito.
Aggiungi un indicatore
Il
google.maps.Marker
costruttore accetta un singolo Marker options oggetto
letterale che specifica le proprietà iniziali dell'indicatore.
I seguenti campi sono particolarmente importanti e vengono impostati di frequente durante la costruzione di un indicatore:
-
position(obbligatorio) specifica unLatLngche identifica la posizione iniziale dell'indicatore. Un modo per recuperare unLatLngè utilizzare il servizio Geocoding. -
map(facoltativo) specifica laMapsu cui posizionare l'indicatore. Se non specifichi la mappa durante la costruzione dell' indicatore, l'indicatore viene creato ma non è collegato (o visualizzato) alla mappa. Puoi aggiungere l'indicatore in un secondo momento chiamando il metodosetMap()dell'indicatore.
L'esempio seguente aggiunge un indicatore semplice a una mappa di Uluru, al centro dell'Australia:
TypeScript
function initMap(): void { const myLatLng = { lat: -25.363, lng: 131.044 }; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 4, center: myLatLng, } ); new google.maps.Marker({ position: myLatLng, map, title: "Hello World!", }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
function initMap() { const myLatLng = { lat: -25.363, lng: 131.044 }; const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: myLatLng, }); new google.maps.Marker({ position: myLatLng, map, title: "Hello World!", }); } window.initMap = initMap;
Nell'esempio precedente, l'indicatore viene posizionato sulla mappa durante la costruzione dell'indicatore utilizzando la proprietà map nelle opzioni dell'indicatore.
In alternativa, puoi aggiungere l'indicatore direttamente alla mappa utilizzando il
metodo setMap() dell'indicatore, come mostrato nell'esempio seguente:
var myLatlng = new google.maps.LatLng(-25.363882,131.044922); var mapOptions = { zoom: 4, center: myLatlng } var map = new google.maps.Map(document.getElementById("map"), mapOptions); var marker = new google.maps.Marker({ position: myLatlng, title:"Hello World!" }); // To add the marker to the map, call setMap(); marker.setMap(map);
Il title dell'indicatore verrà visualizzato come descrizione comando.
Se non vuoi passare alcuna Marker options nel
costruttore dell'indicatore, passa invece un oggetto vuoto {} nell'ultimo argomento del costruttore.
Rimuovi un indicatore
Per rimuovere un indicatore dalla mappa, chiama il setMap() metodo
passando null come argomento.
marker.setMap(null);
Tieni presente che il metodo precedente non elimina l'indicatore. Rimuove l'
indicatore dalla mappa. Se invece vuoi eliminare l'indicatore, devi
rimuoverlo dalla mappa e poi impostare l'indicatore stesso su
null.
Se vuoi gestire un insieme di indicatori, devi creare un array per contenerli
gli indicatori. Utilizzando questo array, puoi chiamare setMap() su
ogni indicatore nell'array a turno quando devi rimuovere gli indicatori. Puoi eliminare gli indicatori rimuovendoli dalla mappa e poi impostando la
`length`length dell'array su `0`0, che rimuove tutti i
riferimenti agli indicatori.
Personalizza l'immagine di un indicatore
Puoi personalizzare l'aspetto visivo degli indicatori specificando un file immagine o un' icona basata su vettori da visualizzare al posto dell'icona a puntina predefinita di Google Maps. Puoi aggiungere testo con un etichetta dell'indicatore, utilizzare icone complesse per definire le regioni su cui è possibile fare clic, e impostare l'ordine di sovrapposizione degli indicatori.
Indicatori con icone immagine
Nel caso più semplice, un'icona può specificare un'immagine da utilizzare al posto dell'
icona a puntina predefinita di Google Maps. Per specificare un'icona di questo tipo, imposta la
proprietà icon dell'indicatore sull'URL di un'immagine. L'API Maps JavaScript ridimensionerà automaticamente l'icona.
TypeScript
// This example adds a marker to indicate the position of Bondi Beach in Sydney, // Australia. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 4, center: { lat: -33, lng: 151 }, } ); const image = "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png"; const beachMarker = new google.maps.Marker({ position: { lat: -33.89, lng: 151.274 }, map, icon: image, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example adds a marker to indicate the position of Bondi Beach in Sydney, // Australia. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: { lat: -33, lng: 151 }, }); const image = "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png"; const beachMarker = new google.maps.Marker({ position: { lat: -33.89, lng: 151.274 }, map, icon: image, }); } window.initMap = initMap;
Indicatori con icone basate su vettori
Puoi utilizzare percorsi vettoriali SVG personalizzati per definire l'aspetto visivo degli
indicatori. Per farlo, passa un oggetto letterale Symbol con il percorso desiderato alla proprietà icon dell'indicatore. Puoi definire un
percorso personalizzato utilizzando
la notazione del percorso SVG o utilizzare uno dei percorsi predefiniti in
google.maps.SymbolPath. La proprietà anchor è obbligatoria per il corretto rendering dell'indicatore quando il livello di zoom cambia. Scopri di più sull'
utilizzo dei simboli per creare icone basate su vettori
per indicatori (e polilinee).
TypeScript
// This example uses SVG path notation to add a vector-based symbol // as the icon for a marker. The resulting icon is a marker-shaped // symbol with a blue fill and no border. function initMap(): void { const center = new google.maps.LatLng(-33.712451, 150.311823); const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 9, center: center, } ); const svgMarker = { path: "M-1.547 12l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM0 0q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z", fillColor: "blue", fillOpacity: 0.6, strokeWeight: 0, rotation: 0, scale: 2, anchor: new google.maps.Point(0, 20), }; new google.maps.Marker({ position: map.getCenter(), icon: svgMarker, map: map, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example uses SVG path notation to add a vector-based symbol // as the icon for a marker. The resulting icon is a marker-shaped // symbol with a blue fill and no border. function initMap() { const center = new google.maps.LatLng(-33.712451, 150.311823); const map = new google.maps.Map(document.getElementById("map"), { zoom: 9, center: center, }); const svgMarker = { path: "M-1.547 12l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM0 0q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z", fillColor: "blue", fillOpacity: 0.6, strokeWeight: 0, rotation: 0, scale: 2, anchor: new google.maps.Point(0, 20), }; new google.maps.Marker({ position: map.getCenter(), icon: svgMarker, map: map, }); } window.initMap = initMap;
Etichette degli indicatori
Un'etichetta dell'indicatore è una lettera o un numero che appare all'interno di un indicatore. L'immagine dell'indicatore in questa sezione mostra un'etichetta dell'indicatore con la lettera "B". Puoi specificare un'etichetta dell'indicatore come stringa o come
MarkerLabel
oggetto che include una stringa e altre proprietà dell'etichetta.
Quando crei un indicatore, puoi specificare una label proprietà in
the
MarkerOptions
object. In alternativa, puoi chiamare setLabel() sull'oggetto
Marker
per impostare l'etichetta su un indicatore esistente.
L'esempio seguente mostra gli indicatori etichettati quando l'utente fa clic sulla mappa:
TypeScript
// In the following example, markers appear when the user clicks on the map. // Each marker is labeled with a single alphabetical character. const labels = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; let labelIndex = 0; function initMap(): void { const bangalore = { lat: 12.97, lng: 77.59 }; const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 12, center: bangalore, } ); // This event listener calls addMarker() when the map is clicked. google.maps.event.addListener(map, "click", (event) => { addMarker(event.latLng, map); }); // Add a marker at the center of the map. addMarker(bangalore, map); } // Adds a marker to the map. function addMarker(location: google.maps.LatLngLiteral, map: google.maps.Map) { // Add the marker at the clicked location, and add the next-available label // from the array of alphabetical characters. new google.maps.Marker({ position: location, label: labels[labelIndex++ % labels.length], map: map, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// In the following example, markers appear when the user clicks on the map. // Each marker is labeled with a single alphabetical character. const labels = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; let labelIndex = 0; function initMap() { const bangalore = { lat: 12.97, lng: 77.59 }; const map = new google.maps.Map(document.getElementById("map"), { zoom: 12, center: bangalore, }); // This event listener calls addMarker() when the map is clicked. google.maps.event.addListener(map, "click", (event) => { addMarker(event.latLng, map); }); // Add a marker at the center of the map. addMarker(bangalore, map); } // Adds a marker to the map. function addMarker(location, map) { // Add the marker at the clicked location, and add the next-available label // from the array of alphabetical characters. new google.maps.Marker({ position: location, label: labels[labelIndex++ % labels.length], map: map, }); } window.initMap = initMap;
Icone complesse
Puoi specificare forme complesse per indicare le regioni su cui è possibile fare clic e
specificare come devono apparire le icone rispetto ad altri overlay (il loro
"ordine di sovrapposizione"). Le icone specificate in questo modo devono impostare le proprietà
icon
su un oggetto di tipo
Icon.
Icon
oggetti definiscono un'immagine. Definiscono anche il size dell'icona, l'origin dell'icona (se l'immagine che vuoi fa parte di un'immagine più grande in uno sprite, ad esempio) e l'anchor in cui deve trovarsi l'hotspot dell'icona (che si basa sull'origine).
Se utilizzi un'etichetta con un indicatore personalizzato, puoi posizionare l'etichetta con lalabelOrigin proprietà nell'Icon oggetto.
TypeScript
// The following example creates complex markers to indicate beaches near // Sydney, NSW, Australia. Note that the anchor is set to (0,32) to correspond // to the base of the flagpole. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 10, center: { lat: -33.9, lng: 151.2 }, } ); setMarkers(map); } // Data for the markers consisting of a name, a LatLng and a zIndex for the // order in which these markers should display on top of each other. const beaches: [string, number, number, number][] = [ ["Bondi Beach", -33.890542, 151.274856, 4], ["Coogee Beach", -33.923036, 151.259052, 5], ["Cronulla Beach", -34.028249, 151.157507, 3], ["Manly Beach", -33.80010128657071, 151.28747820854187, 2], ["Maroubra Beach", -33.950198, 151.259302, 1], ]; function setMarkers(map: google.maps.Map) { // Adds markers to the map. // Marker sizes are expressed as a Size of X,Y where the origin of the image // (0,0) is located in the top left of the image. // Origins, anchor positions and coordinates of the marker increase in the X // direction to the right and in the Y direction down. const image = { url: "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png", // This marker is 20 pixels wide by 32 pixels high. size: new google.maps.Size(20, 32), // The origin for this image is (0, 0). origin: new google.maps.Point(0, 0), // The anchor for this image is the base of the flagpole at (0, 32). anchor: new google.maps.Point(0, 32), }; // Shapes define the clickable region of the icon. The type defines an HTML // <area> element 'poly' which traces out a polygon as a series of X,Y points. // The final coordinate closes the poly by connecting to the first coordinate. const shape = { coords: [1, 1, 1, 20, 18, 20, 18, 1], type: "poly", }; for (let i = 0; i < beaches.length; i++) { const beach = beaches[i]; new google.maps.Marker({ position: { lat: beach[1], lng: beach[2] }, map, icon: image, shape: shape, title: beach[0], zIndex: beach[3], }); } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// The following example creates complex markers to indicate beaches near // Sydney, NSW, Australia. Note that the anchor is set to (0,32) to correspond // to the base of the flagpole. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 10, center: { lat: -33.9, lng: 151.2 }, }); setMarkers(map); } // Data for the markers consisting of a name, a LatLng and a zIndex for the // order in which these markers should display on top of each other. const beaches = [ ["Bondi Beach", -33.890542, 151.274856, 4], ["Coogee Beach", -33.923036, 151.259052, 5], ["Cronulla Beach", -34.028249, 151.157507, 3], ["Manly Beach", -33.80010128657071, 151.28747820854187, 2], ["Maroubra Beach", -33.950198, 151.259302, 1], ]; function setMarkers(map) { // Adds markers to the map. // Marker sizes are expressed as a Size of X,Y where the origin of the image // (0,0) is located in the top left of the image. // Origins, anchor positions and coordinates of the marker increase in the X // direction to the right and in the Y direction down. const image = { url: "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png", // This marker is 20 pixels wide by 32 pixels high. size: new google.maps.Size(20, 32), // The origin for this image is (0, 0). origin: new google.maps.Point(0, 0), // The anchor for this image is the base of the flagpole at (0, 32). anchor: new google.maps.Point(0, 32), }; // Shapes define the clickable region of the icon. The type defines an HTML // <area> element 'poly' which traces out a polygon as a series of X,Y points. // The final coordinate closes the poly by connecting to the first coordinate. const shape = { coords: [1, 1, 1, 20, 18, 20, 18, 1], type: "poly", }; for (let i = 0; i < beaches.length; i++) { const beach = beaches[i]; new google.maps.Marker({ position: { lat: beach[1], lng: beach[2] }, map, icon: image, shape: shape, title: beach[0], zIndex: beach[3], }); } } window.initMap = initMap;
Conversione di oggetti MarkerImage in tipo Icon
Fino alla versione 3.10 dell'API Maps JavaScript, le icone complesse
erano definite come MarkerImage oggetti. L'oggetto letterale
Icon è stato aggiunto nella versione 3.10 e sostituisce
MarkerImage dalla versione 3.11 in poi.
Gli oggetti letterali Icon supportano gli stessi parametri di MarkerImage, consentendoti di convertire facilmente un MarkerImage in un Icon rimuovendo il costruttore, racchiudendo i parametri precedenti in {}'s e aggiungendo i nomi di ogni parametro. Ad esempio:
var image = new google.maps.MarkerImage( place.icon, new google.maps.Size(71, 71), new google.maps.Point(0, 0), new google.maps.Point(17, 34), new google.maps.Size(25, 25));
diventa
var image = { url: place.icon, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25) };
Ottimizza gli indicatori
L'ottimizzazione migliora il rendimento eseguendo il rendering di molti indicatori come un singolo elemento statico. Questa funzionalità è utile nei casi in cui è necessario un numero elevato di indicatori. Per impostazione predefinita, l'API Maps JavaScript decide se un indicatore verrà ottimizzato. Quando è presente un numero elevato di indicatori, l'API Maps JavaScript tenta di eseguire il rendering degli indicatori con l'ottimizzazione. Non tutti gli indicatori possono essere ottimizzati; in alcune situazioni, l'API Maps JavaScript potrebbe dover eseguire il rendering degli indicatori senza ottimizzazione. Disattiva il rendering ottimizzato per GIF animate GIF o PNG oppure quando ogni indicatore deve essere sottoposto a rendering come elemento DOM separato. L'esempio seguente mostra la creazione di un indicatore ottimizzato:
var marker = new google.maps.Marker({ position: myLatlng, title:"Hello World!", optimized: true });
Rendi accessibile un indicatore
Puoi rendere accessibile un indicatore aggiungendo un evento listener di clic e
impostando optimized su false. Il listener di clic
fa sì che l'indicatore abbia una semantica di pulsante, a cui è possibile accedere utilizzando
la navigazione da tastiera, gli screen reader e così via. Utilizza l'
title opzione per presentare testo accessibile per un indicatore.
Nell'esempio seguente, il primo indicatore riceve lo stato attivo quando viene premuto il tasto Tab; puoi quindi utilizzare i tasti freccia per spostarti tra gli indicatori. Premi di nuovo il tasto Tab per continuare a spostarti tra gli altri controlli della mappa. Se un indicatore ha una finestra informativa, puoi aprirla facendo clic sull'indicatore o premendo il tasto Invio o la barra spaziatrice quando l'indicatore è selezionato. Quando la finestra informativa si chiude, lo stato attivo torna all'indicatore associato.
TypeScript
// The following example creates five accessible and // focusable markers. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 12, center: { lat: 34.84555, lng: -111.8035 }, } ); // Set LatLng and title text for the markers. The first marker (Boynton Pass) // receives the initial focus when tab is pressed. Use arrow keys to // move between markers; press tab again to cycle through the map controls. const tourStops: [google.maps.LatLngLiteral, string][] = [ [{ lat: 34.8791806, lng: -111.8265049 }, "Boynton Pass"], [{ lat: 34.8559195, lng: -111.7988186 }, "Airport Mesa"], [{ lat: 34.832149, lng: -111.7695277 }, "Chapel of the Holy Cross"], [{ lat: 34.823736, lng: -111.8001857 }, "Red Rock Crossing"], [{ lat: 34.800326, lng: -111.7665047 }, "Bell Rock"], ]; // Create an info window to share between markers. const infoWindow = new google.maps.InfoWindow(); // Create the markers. tourStops.forEach(([position, title], i) => { const marker = new google.maps.Marker({ position, map, title: `${i + 1}. ${title}`, label: `${i + 1}`, optimized: false, }); // Add a click listener for each marker, and set up the info window. marker.addListener("click", () => { infoWindow.close(); infoWindow.setContent(marker.getTitle()); infoWindow.open(marker.getMap(), marker); }); }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// The following example creates five accessible and // focusable markers. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 12, center: { lat: 34.84555, lng: -111.8035 }, }); // Set LatLng and title text for the markers. The first marker (Boynton Pass) // receives the initial focus when tab is pressed. Use arrow keys to // move between markers; press tab again to cycle through the map controls. const tourStops = [ [{ lat: 34.8791806, lng: -111.8265049 }, "Boynton Pass"], [{ lat: 34.8559195, lng: -111.7988186 }, "Airport Mesa"], [{ lat: 34.832149, lng: -111.7695277 }, "Chapel of the Holy Cross"], [{ lat: 34.823736, lng: -111.8001857 }, "Red Rock Crossing"], [{ lat: 34.800326, lng: -111.7665047 }, "Bell Rock"], ]; // Create an info window to share between markers. const infoWindow = new google.maps.InfoWindow(); // Create the markers. tourStops.forEach(([position, title], i) => { const marker = new google.maps.Marker({ position, map, title: `${i + 1}. ${title}`, label: `${i + 1}`, optimized: false, }); // Add a click listener for each marker, and set up the info window. marker.addListener("click", () => { infoWindow.close(); infoWindow.setContent(marker.getTitle()); infoWindow.open(marker.getMap(), marker); }); }); } window.initMap = initMap;
Anima un indicatore
Puoi animare gli indicatori in modo che mostrino un movimento dinamico in una serie
di circostanze diverse. Per specificare la modalità di animazione di un indicatore, utilizza
la proprietà animation dell'indicatore, di tipo
google.maps.Animation. Sono supportati i seguenti
Animation valori:
-
DROPindica che l'indicatore deve scendere dalla parte superiore della mappa alla sua posizione finale quando viene posizionato per la prima volta sulla mappa. L'animazione cesserà quando l'indicatore si fermerà eanimationtornerà anull. Questo tipo di animazione viene in genere specificato durante la creazione diMarker. -
BOUNCEindica che l'indicatore deve rimbalzare sul posto. Un indicatore che rimbalza continuerà a rimbalzare finché la sua proprietàanimationnon viene impostata esplicitamente sunull.
Puoi avviare un'animazione su un indicatore esistente chiamando
setAnimation() sull'oggetto Marker.
TypeScript
// The following example creates a marker in Stockholm, Sweden using a DROP // animation. Clicking on the marker will toggle the animation between a BOUNCE // animation and no animation. let marker: google.maps.Marker; function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 13, center: { lat: 59.325, lng: 18.07 }, } ); marker = new google.maps.Marker({ map, draggable: true, animation: google.maps.Animation.DROP, position: { lat: 59.327, lng: 18.067 }, }); marker.addListener("click", toggleBounce); } function toggleBounce() { if (marker.getAnimation() !== null) { marker.setAnimation(null); } else { marker.setAnimation(google.maps.Animation.BOUNCE); } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// The following example creates a marker in Stockholm, Sweden using a DROP // animation. Clicking on the marker will toggle the animation between a BOUNCE // animation and no animation. let marker; function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 13, center: { lat: 59.325, lng: 18.07 }, }); marker = new google.maps.Marker({ map, draggable: true, animation: google.maps.Animation.DROP, position: { lat: 59.327, lng: 18.067 }, }); marker.addListener("click", toggleBounce); } function toggleBounce() { if (marker.getAnimation() !== null) { marker.setAnimation(null); } else { marker.setAnimation(google.maps.Animation.BOUNCE); } } window.initMap = initMap;
Se hai molti indicatori, potresti non volerli rilasciare tutti
contemporaneamente sulla mappa. Puoi utilizzare setTimeout() per spaziare le
animazioni degli indicatori utilizzando un pattern simile a quello mostrato di seguito:
function drop() { for (var i =0; i < markerArray.length; i++) { setTimeout(function() { addMarkerMethod(); }, i * 200); } }
Rendi trascinabile un indicatore
Per consentire agli utenti di trascinare un indicatore in una posizione diversa sulla mappa, imposta
draggable su true nelle opzioni dell'indicatore.
var myLatlng = new google.maps.LatLng(-25.363882,131.044922); var mapOptions = { zoom: 4, center: myLatlng } var map = new google.maps.Map(document.getElementById("map"), mapOptions); // Place a draggable marker on the map var marker = new google.maps.Marker({ position: myLatlng, map: map, draggable:true, title:"Drag me!" });
Ulteriore personalizzazione degli indicatori
Per ulteriori estensioni della classe Marker, il clustering e la gestione degli indicatori e la personalizzazione degli overlay, consulta le librerie open source.