diff --git a/images/earth.html b/images/earth.html
index 0ab8487b0b60ec992fe5a268de81e9729ca6fb3d..b345e27c4ae74cd8b27ec7192fad44c407697d91 100644
--- a/images/earth.html
+++ b/images/earth.html
@@ -18,6 +18,7 @@ var followEnabled = false;
var lastLat = 0;
var lastLon = 0;
+var lastAlt = 0;
var currLat = 47.3769;
var currLon = 8.549444;
var currAlt = 470;
@@ -210,8 +211,11 @@ function setAircraftPositionAttitude(id, lat, lon, alt, roll, pitch, yaw)
{
if (id == currAircraft)
{
- lastLat = currLat;
- lastLon = lastLon;
+ if (lastLat == 0)
+ {
+ lastLat = currLat;
+ lastLon = lastLon;
+ }
currLat = lat;
currLon = lon;
currAlt = alt;
@@ -262,12 +266,17 @@ function setCurrentAircraft(id)
function updateFollowAircraft()
{
currView = ge.getView().copyAsLookAt(ge.ALTITUDE_ABSOLUTE);
- currView.setLatitude(currLat);
- currView.setLongitude(currLon);
- currView.setAltitude(currAlt);
+ // Interpolate
+ currView.setLatitude(lastLat*0.7+currLat*0.3);
+ currView.setLongitude(lastLon*0.7+currLon*0.3);
+ currView.setAltitude(lastAlt*0.7+currAlt*0.3);
+ // Set new states
+ lastLat = lastLat*0.7+currLat*0.3;
+ lastLon = lastLon*0.7+currLon*0.3;
+ lastAlt = lastAlt*0.7+currAlt*0.3;
currView.setRange(currViewRange);
currView.setTilt(currFollowTilt);
- currFollowHeading = 0.9*currFollowHeading+0.1*((Math.atan2(lastLat-currLat, lastLon-currLon)/M_PI)+1.0)*360.0;
+ currFollowHeading = 0;// 0.9*currFollowHeading+0.1*((Math.atan2(lastLat-currLat, lastLon-currLon)/M_PI)+1.0)*360.0;
currView.setHeading(currFollowHeading-0.0);
ge.getView().setAbstractView(currView);
}