Ho combinato la risposta di @ samshull sopra (debitamente upvoted!) Con informazioni da here per far apparire il InfoWindow dove si trova il cursore dell'utente utilizza oltre la linea:
// Open the InfoWindow on mouseover:
google.maps.event.addListener(line, 'mouseover', function(e) {
infoWindow.setPosition(e.latLng);
infoWindow.setContent("You are at " + e.latLng);
infoWindow.open(map);
});
// Close the InfoWindow on mouseout:
google.maps.event.addListener(line, 'mouseout', function() {
infoWindow.close();
});
Qui, line
è il vostro PolyLine oggetto; map
è l'oggetto Map; e infoWindow
è l'oggetto InfoWindow, che ho appena creato con:
var infoWindow = new google.maps.InfoWindow();
anche io seguo this advice riutilizzando lo stesso oggetto InfoWindow per tutti i miei polilinee piuttosto che crearne uno nuovo per ogni linea:
Best practice: per la migliore esperienza utente, solo una finestra informativa deve essere aperta sulla mappa in qualsiasi momento. Più finestre info fanno la mappa appare ingombra. Se hai solo bisogno di una finestra informativa alla volta, puoi creare un solo oggetto InfoWindow e aprirlo in diverse posizioni o indicatori su eventi di mappe, come i clic dell'utente. Se si utilizza per più di una finestra informativa, è possibile visualizzare più oggetti InfoWindow allo stesso tempo.
Si noti che infoWindow.setContent()
prende una stringa. Quindi chiamare toString()
su una variabile numerica se si desidera visualizzare un numero in InfoWindow.
ho vista tutto questo come una soluzione imperfetta finché Google Maps Speriamo che un giorno aggiungere un alloggio title
a PolylineOptions, proprio come hanno già fatto per MarkerOptions.
Sto già utilizzando una finestra in basso per i dettagli completi, quindi questo non funzionerebbe. – ScottE
Ma come posizionare la finestra informativa sulla polilinea? – Naman
@Naman: vedere https://developers.google.com/maps/documentation/javascript/events?csw=1#EventArguments su come acquisire la posizione del cursore e la mia risposta sotto per i dettagli. – snark