我正在使用Google Earth网络插件API,我有一架直升机的3D模型,我可以使用以下代码创建一个3D模型:
var placemark = ge.createPlacemark( '');
placemark.setName( '模型');
//地标/模型(几何)
无功 model = ge.createModel('heli'); placemark.setGeometry(模型);
//地标/模型/链接
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(标);
因此,每次新的lat长坐标进入时我都在创建一个新模型,有没有办法简单地将3d模型移动到这些坐标而不是创建一个新模型,在大约50次渲染之后,它变得没有响应!任何帮助将不胜感激
我认为我需要使用getPlacemark而不是createPlacemark,但是在引用中没有提到这样的函数。
答案 0 :(得分:3)
不是每次都重新创建地标 - 只需更新其坐标即可。您可以轻松使用函数来执行此操作。然后,每次要更新模型位置时,只需调用带有所需坐标的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);
}
答案 1 :(得分:0)
您可以在侧栏中看到您的模型(其名为"无标题"直到您重命名) - 右键单击它 - 复制!然后在侧栏的同一个地方只需粘贴。现在你看到另一个" Untitled" model - 重命名。
现在去地球上的任何地方,将你的视图放在你想要模型的中心(现在,这样做非常接近你的模型)。在GE菜单中"编辑" - 按"复制查看位置"
现在,在侧栏中右键单击复制的模型 - 属性。现在,粘贴最后复制的视图位置从经度/纬度栏中的剪贴板。 现在,您在不同的位置有两个相同的型号。如果您取消选中,则可以隐藏任何模型,反之亦然。
现在,正如我所看到的,GE无法正常运行(至少我没有运作),因为每次双击模型时它都会带你到那里,但它没有,解决方案 - 只需从该位置录制一部电影(模型所在的位置)并保存 - 这样就可以保存游览(您的位置),每次双击保存的游览时,它都会带您到那里。