У меня проблема с имитацией прямой линии в плагине Google Earth. Чтобы имитировать прямую линию, я вызываю метод JavaScript в HTML-документе из MATLAB через COM. (MATLAB в качестве COM-клиента и Internet Explorer в качестве COM-сервера)
Код JavaScript приведен ниже:
function UpdateCamera(lat,lon,alt,bearing,pitch,roll) {
var camera = ge.getView().copyAsCamera(ge.ALTITUDE_ABSOLUTE);
// set the camera values
camera.setLatitude(lat);
camera.setLongitude(lon);
camera.setAltitude(alt);
camera.setHeading(bearing);
camera.setTilt(pitch);
camera.setRoll(roll);
// Set the FlyTo speed
ge.getOptions().setFlyToSpeed(ge.SPEED_TELEPORT);
// Update the view in Google Earth
ge.getView().setAbstractView(camera);
}
И для вызова метода JavaScript я использую это в MATLAB:
for i=1:iend
h.Document.parentWindow.execScript(['tickAnimation(' num2str(cood(i,1)) ',' ...
num2str(cood(i,2)) ',' ...
num2str(cood(i,3)) ',' ...
num2str(70) ',' ...
num2str(90) ',' ...
num2str(0) ');'] , 'JavaScript');
pause(0.01)
end
Я получаю широту и долготу по расстоянию, которое является результатом моделирования. Используя формулу здесь http://www.movable-type.co.uk/scripts/latlong-vincenty-direct.html (данная формула имеет точность в пределах 0,5 мм!)
К сожалению, я до сих пор не могу получить прямолинейное движение в Google Earth. Движение вперед состоит из зигзагообразных движений. результат можно увидеть здесь http://www.youtube.com/watch?v=KS77qORjFh8 а>
Движения вверх уже плавные. теперь проблема только в движении вперед.
Ждем ваших отзывов.
С уважением, Ван