はい、セットアップに応じて、これを行う方法がいくつかあります。
一般的な方法の 1 つは、各目印に一意の ID を付与し、その ID を使用して目印を確認することです。
たとえば、次の kml 目印があり、URL から API にロードしたとします。http://localhost/foo.kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark id="myPlacemark">
<name>Myplacemark</name>
<Point>
<coordinates>-122.0822035425683,37.42228990140251,0</coordinates>
</Point>
</Placemark>
</kml>
myPlacemark
次に、目印をそのように「見る」ことができます。
var placemark = ge.getElementByUrl('http://localhost/foo.kml#myPlacemark');
var point = placemark.getGeometry();
var lookAt = ge.createLookAt('');
lookAt.set(point.getLatitude(), point.getLongitude(), 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 00, 0);
ge.getView().setAbstractView(lookAt);
簡単な関数を作成して、正しい ID を渡すだけで、ID を持つ KML から読み込まれた任意の場所の目印を確認できます。
var myLookAt = function(id) {
var placemark = ge.getElementByUrl(id);
if('getGeometry' in placemark &&
placemark.getGeometry().getType() == 'KmlPoint') {
var point = placemark.getGeometry();
var lookAt = ge.createLookAt('');
lookAt.set(point.getLatitude(), point.getLongitude(), 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 00, 0);
ge.getView().setAbstractView(lookAt);
}
};
// useage
myLookAt('http://localhost/foo.kml#myPlacemark');
関数を変更して、要素myLookAt
を検索したり、他のタイプのオブジェクト (マルチ ジオメトリなど) を処理したりすることも できます。lookAt
camera