Ottenere lat / lng / zoom / imbardata / passo da Google Street View
-
06-09-2019 - |
Domanda
Ho una mappa e Street View di Google in base a condizione lat / coordinate di GNL, zoom, imbardata e beccheggio. Ho bisogno di invocare un javascript per aggiornare un campo nascosto per ciascuno di questi valori ogni volta che uno dei dettagli cambiano da loro predefinito o quando un pulsante viene premuto.
Così ogni volta che la guarda la mappa / street è ingrandita, pan pot, inclinato ecc emette i nuovi dettagli.
Come chiamare le funzioni getPOV (), yawchanged (imbardata: Number), pitchchanged (passo: Number), e zoomchanged (zoom: Number) ogni volta che la Street View è cambiato (simili a MoveEnd per Maps)
Soluzione
Non sono sicuro del modo migliore per comprimere questo, ma questo funziona per ottenere i dettagli modificati:
GEvent.addListener(myPano, 'initialized', function(pano) {
alert("newlng: " + pano.latlng.lng() + ", newlat: " + pano.latlng.lat());
});
GEvent.addListener(myPano, 'yawchanged', function(newyaw){
alert("yawchanged: " + newyaw);
});
GEvent.addListener(myPano, 'pitchchanged', function(newpitch) {
alert("pitchchanged: " + newpitch);
});
GEvent.addListener(myPano, 'zoomchanged', function(newzoom) {
alert("zoomchanged: " + newzoom);
});
Altri suggerimenti
Io in genere ho trovato che "MoveEnd" è l'evento migliore da usare come un gancio per ottenere lo stato della mappa quando un utente cambia. Ho bisogno di guardare su come ottenere il lat / lng, zoom, imbardata, e passo dalla mappa isntanct quando ho più tempo questo pomeriggio
// map is the instance of your GMap2
GEvent.addListener(map, 'moveend', function() {
var center = map.getCenter();
var zoom = map.getZoom();
alert([center.lat(), center.lng(), zoom].join(','));
});
Per google maps api v3 ... Supponendo di avere una mappa Streetview già caricato denominato "panorama"
google.maps.event.addListener(panorama, "pov_changed", function() {
var panoInfo = panorama.getPov();
var thePitch = panoInfo['pitch'];
var isHeading = panoInfo['heading'];
var theZoom = panoInfo['zoom'];
});