我有大量使用区域化 kml 文件加载的地标。(生成了大约 1000 个 kml 文件)。例如,我有一个按钮,当点击相机飞到我要访问的地标位置时。所以我认为包含这个地标的 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 导入的对象(当区域变得活跃时)。等待您的答复。谢谢。