У моего клиента очень большой файл KML, он содержит около 6000+ меток, и эти метки должны отображаться на карте в виде 3D-моделей. Еще хуже то, что файл KML не содержит тега <link>
для файла COLLADA, а это означает, что мне нужно просмотреть файл KML и прикрепить файл COLLADA, прежде чем его можно будет отобразить в Google Earth. Теперь я уже могу обходить и добавлять 3D-модель для каждой метки. Я протестировал его с очень маленьким файлом KML (который содержит менее 100 меток), и он отлично работал, как и ожидалось ... но когда я использовал очень большой файл KML, в котором было около 6000+ меток, плагин просто вылетает и Мне советуют обновить браузер, но он снова вылетает... :(
Любые советы по этому поводу? Есть ли ограничение на количество меток, которые я могу разместить в веб-плагине Google Планета Земля? Как ускорить загрузку?
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);
}
});
}