Перемещение 3d-модели в Google Earth? - PullRequest
1 голос
/ 29 июля 2010

Я использую API веб-плагина Google Планета Земля и у меня есть 3d модель вертолета. Я могу создать 3d модель, используя следующий код:

var placemark = ge.createPlacemark ('');

placemark.setName ('model');

// Метка / Модель (геометрия)

var model = ge.createModel ('хели ');placemark.setGeometry (model);

// Метка / Модель / Ссылка

var link = ge.createLink ('');

link.setHref ('http://my.url/heli.dae');

model.setLink (ссылка);

// Метка / Модель / Местоположение

var loc = ge.createLocation ('');

loc.setLatLngAlt (temp1, temp2, alt)

model.setLocation (loc);

model.setAltitudeMode (ge.ALTITUDE_RELATIVE_TO_GROUND);

// добавить метку моделина Землю

ge.getFeatures (). appendChild (placemark);

Итак, я создаю новую модель каждый раз, когда приходят новые координаты длинной широты, есть ли способпросто переместите 3d-модели в эти координаты вместо создания новой, после примерно 50 визуализаций она перестает отвечать! Любая помощь будет принята с благодарностью

Я предполагаю, что вместо createPlacemark мне нужно получить getPlacemark, но здесь нет упоминаниятакой функции в справочнике.

Ответы [ 2 ]

3 голосов
/ 05 сентября 2010

Вместо того, чтобы воссоздавать метку каждый раз - просто обновите ее координаты. Вы можете легко использовать функцию, чтобы сделать это. Затем вы можете просто вызывать функцию moveModel с желаемыми координатами каждый раз, когда вы хотите обновить положение моделей.

var placemark = ge.createPlacemark('');
var model = ge.createModel('heli'); 
var link = ge.createLink('');

placemark.setName('model');
placemark.setGeometry(model);
link.setHref('http://my.url/heli.dae');
model.setLink(link);

moveModel(temp1, temp2, alt); // your location...

ge.getFeatures().appendChild(placemark);

function moveModel(temp1, temp2, alt) {
  var loc = ge.createLocation('');
  loc.setLatLngAlt(temp1,temp2,alt)
  model.setLocation(loc);
  model.setAltitudeMode(ge.ALTITUDE_RELATIVE_TO_GROUND);
}
0 голосов
/ 20 апреля 2017

Вы видите свою модель на боковой панели (она называется «Без названия», пока вы не переименуете ее) - щелкните правой кнопкой мыши по ней - copy !Затем в том же месте в боковой панели просто вставить .Теперь вы видите другую модель «Без названия» - переименуйте ее .

Теперь перейдите в любое место на Земле и отцентрируйте свой взгляд там, где вы хотите, чтобы ваша модель была (пока, сделайте это очень близкок вашей модели).Вверх в меню GE «Редактировать» - нажмите «Место просмотра копии»

Теперь, щелкните правой кнопкой мыши на скопированной модели на боковой панели - свойства .Теперь вставка последнее скопированное местоположение просмотра из буфера обмена в строке долготы / широты.Теперь у вас есть две одинаковые модели в разных местах.Вы можете скрыть любую модель, если вы снимите галочку , и наоборот.

Теперь, как я вижу, GE не работает правильно (по крайней мере, моя не работает), потому что каждый раз вы удваиваете- выберите модель, которая должна вас туда доставить, но это не так, Решение - просто запишите секунду фильма с того места (где находится ваша модель) и сохраните его - таким образом будет сохранен тур (ваше местоположение)и каждый раз, когда вы дважды щелкаете по сохраненному туру, вы попадете туда.

...