我在 Google 地球插件中模仿直线时遇到问题。为了模仿直线,我通过 COM 从 MATLAB 调用 HTML 文档中的 JavaScript 方法。(MATLAB 作为 COM-Client 和 Internet Explorer 作为 COM-Server)
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.5mm以内是准确的!)
不幸的是,我仍然无法在 Google 地球中直线移动。向前运动包括之字形运动。你可以在这里看到结果http://www.youtube.com/watch?v=KS77qORjFh8
向上的运动已经很顺畅了。现在的问题只是向前运动。
期待您的投入。
问候,万