Да, отправка события «запуск» возможна через COM, но вам не нужно этого делать. Если вы размещаете HTML-документ в Matlab, просто используйте execScript () для вызова необходимых вам методов ... например,
% Open Plugin
h = actxcontrol('Shell.Explorer', [0 0 800 600]);
invoke(h,'Navigate2','host.html');
// trigger the behavior, rather than dispatching an event...
// arguments are: latitude, longitude, altitude, altitudeMode, heading, tilt, roll
h.Document.parentWindow.execScript(['UpdateCamera(34, 23, 10, 0, 90, 0, 0)'], 'JavaScript');
UpdateCamera будет видимым COM-методом в host.html - что-то вроде ...
var UpdateCamera = function() {
var a = arguments; // the values from matlab
var c = ge.getView().copyAsCamera(ge.ALTITUDE_ABSOLUTE);
var oldspeed = ge.getOptions().getFlyToSpeed();
ge.getOptions().setFlyToSpeed(ge.SPEED_TELEPORT);
// KmlCamera.set
// see http://code.google.com/apis/earth/documentation/reference/interface_kml_camera.html#a716205eab6f634b558fcde6be9c58b50
c.set(a[0], a[1], a[2], a[3], a[4], a[5], a[6]);
ge.getView().setAbstractView(c);
ge.getOptions().setFlyToSpeed(oldspeed);
}
Что касается комментария "движение зигзага" - проблема заключается в стремлении к скорости анимации в плагине Google Планета Земля. Чтобы решить эту проблему, просто добавьте следующие строки в ваш хост html.
function initCB(instance) {
ge = instance;
// Set the FlyTo speed
ge.getOptions().setFlyToSpeed(ge.SPEED_TELEPORT);
...
}
Кроме того, чтобы еще больше сгладить анимацию, было бы оптимальным запустить анимацию через событие frameend API. См .: http://earth -api-samples.googlecode.com / svn / trunk / examples / event-frameend.html