我的客户有一个非常大的 KML 文件,它包含大约 6000 多个地标,这些地标必须在地图上显示为 3D 模型。更糟糕的是KML文件不包含<link>
COLLADA文件的标签,这意味着我必须遍历KML文件并附加一个COLLADA文件才能在google earth上显示。现在我已经可以遍历并为每个地标添加一个 3D 模型。我用一个非常小的 KML 文件(包含少于 100 个地标)对其进行了测试,它按预期工作得很好……但是当我使用上面有 6000 多个地标的非常大的 KML 文件时,插件只是崩溃了建议我刷新浏览器,却发现它再次崩溃... :(
对此有何建议?我可以在谷歌地球网络插件上放置的地标数量有限制吗?如何让加载更快?
function render3DPoles(polesKmlLink){
google.earth.fetchKml(ge,polesKmlLink, function(object){
if(object){
var item = object.getFeatures().getChildNodes().item(0);
var folder = item.getFeatures().getChildNodes();
var latitude;
var longitude;
for(var i = 0; i<folder.getLength(); i++){
var placemark = folder.item(i);
latitude = placemark.getGeometry().getLatitude();
longitude = placemark.getGeometry().getLongitude();
var model = ge.createModel('');
var location = ge.createLocation('');
model.setLocation(location);
var link = ge.createLink('');
link.setHref('insert URL of collada file here');
model.setLink(link);
location.setLatitude(latitude);
location.setLongitude(longitude);
model.setLocation(location);
placemark.setGeometry(model);
ge.getFeatures().appendChild(placemark);
}
var la = ge.createLookAt('');
la.set(latitude,longitude, 25, ge.ALTITUDE_RELATIVE_TO_GROUND,180, 60, 100);
ge.getView().setAbstractView(la);
} else {
setTimeout(function() {
alert('Bad or null KML.');
},0);
}
});
}