Fixed stationary headings
parent
5ca77d4343
commit
ad982c0cde
40
script.js
40
script.js
|
@ -5,14 +5,16 @@ var pano, newLoc;
|
||||||
|
|
||||||
// Create panorama
|
// Create panorama
|
||||||
function init(){
|
function init(){
|
||||||
pano = new google.maps.StreetViewPanorama(document.getElementsByTagName('main')[0], {
|
pano = new google.maps.StreetViewPanorama(
|
||||||
panControl: false,
|
document.getElementsByTagName('main')[0], {
|
||||||
zoomControl: false,
|
panControl: false,
|
||||||
addressControl: false,
|
zoomControl: false,
|
||||||
linksControl: false,
|
addressControl: false,
|
||||||
motionTracking: false,
|
linksControl: false,
|
||||||
motionTrackingControl: false
|
motionTracking: false,
|
||||||
});
|
motionTrackingControl: false
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get street view imagery
|
// Get street view imagery
|
||||||
|
@ -38,7 +40,9 @@ function getStreetViewData(loc,rad,cb) {
|
||||||
break;
|
break;
|
||||||
// Error
|
// Error
|
||||||
default:
|
default:
|
||||||
console.error(new Error('❌️ Street view not available: '+status).message);
|
console.error(new Error(
|
||||||
|
'❌️ Street view not available: '+status
|
||||||
|
).message);
|
||||||
} });
|
} });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,12 +58,26 @@ function updateStreetView(loc){
|
||||||
|
|
||||||
// Panorma has loaded
|
// Panorma has loaded
|
||||||
else {
|
else {
|
||||||
// Set panorama
|
|
||||||
|
// Get streetview data
|
||||||
getStreetViewData(loc, 2, function(data){
|
getStreetViewData(loc, 2, function(data){
|
||||||
|
|
||||||
|
// Calculate bearing
|
||||||
|
var brng;
|
||||||
|
|
||||||
|
if (loc.spd>1){
|
||||||
|
brng = loc.dir;
|
||||||
|
}
|
||||||
|
else { //https://stackoverflow.com/a/26609687/3006854
|
||||||
|
brng = Math.atan2( loc.lat-data.location.latLng.lat(), loc.lon-data.location.latLng.lng() );
|
||||||
|
brng = 450-(brng*(180/Math.PI)+360)%360;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set panorama
|
||||||
pano.setPano(data.location.pano);
|
pano.setPano(data.location.pano);
|
||||||
pano.setPov({
|
pano.setPov({
|
||||||
pitch: 0,
|
pitch: 0,
|
||||||
heading: (loc.spd>1)?loc.dir:Math.atan((loc.lon-data.location.latLng.lng())/(loc.lat-data.location.latLng.lat()))*(180/Math.PI)
|
heading: brng
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue