У меня огромный набор меток, загруженных с использованием региональных файлов kml. (около 1000 кмл файлов).
Например, у меня есть кнопка, при нажатии на которую камера летит в местоположение метки, к которой я хочу получить доступ. Поэтому я думаю, что файл kml, который включает эту метку, загружается после этого процесса. Допустим, это 5.kml, и я попытался получить объект метки, используя метод getElementByUrl. Но это не сработало. Я также могу использовать метод ge.getElementsByType ("KmlPlacemark"), но мне нужен цикл, чтобы получить нужный объект метки. Это работает, но я не мог найти способ заставить это работать быстро. Ниже мой код
google.earth.addEventListener(ge.getView(), 'viewchangeend', function() {
// after button click and camera centered on the placemark with id 1767
var p = ge.getElementByUrl('http://localhost/Test/5.kml#1767');
alert(p.getId()); // this does not work because p is null
var placemarks = ge.getElementsByType('KmlPlacemark');
for (var i = 0; i < placemarks.getLength(); ++i) {
var placemark = placemarks.item(i);
if(placemark.getId() == 1767)
{
alert(placemark.getId()); // this works
return;
}
}
});
function button_click()
{
var camera = ge.getView().copyAsCamera(ge.ALTITUDE_RELATIVE_TO_GROUND);
camera.setLatitude(30);
camera.setLongitude(50);
camera.setAltitude(2000);
ge.getView().setAbstractView(camera);
}
Хотелось бы, чтобы я нашел способ доступа к объекту, импортированному из KML (когда регион становится активным). Жду ваших ответов. Спасибо.