3

GGeoXml オブジェクトを使用して、埋め込まれた Google マップに KML ファイル オーバーレイがあります。Javascript から KML ファイル内の特定の目印にアクセスできるようにしたいと考えています (たとえば、ユーザーの操作に応じて地図上で選択したポリゴンを強調表示するなど)。

理想的には、私がやりたいことは次のようなものです(疑似コード):

 geoXml.getPlacemarkByName('Foo').focus();

残念ながら、Google Maps APIは目印や KML オーバーレイのその他の内部構造を公開していないようです。どうすればこれを達成できるかについて、誰か考えがありますか? オーバーレイが内部でどのように実装されているかについては何も知りませんが、これを可能にするハックがあるようです。

jQuery FWIWも使用しています。

4

4 に答える 4

3

GeoXMLを見たことがありますか?

于 2008-10-20T20:38:49.540 に答える
2

Google は API で答えを提供していないため、この問題に対する簡単な解決策はないようです。個々の目印にアクセスする唯一の方法は、目印がマップに追加されたときに「キャプチャ」することです。これを行うには、マップ オブジェクトに「addoverlay」リスナーを設定する必要があります。このようなもの:

GEvent.addListener(map, 'addoverlay', function(o) {
    kmlmarkers.push(o);
}

しかし、マーカー オブジェクトから目印の ID を取得する方法がわかりませんでした。したがって、特定の目印にアクセスできる唯一の方法は、配列をループして、座標に基づいてマーカーをデータと照合することでした。それは本当のエレガントな解決策ではありませんが、私がそれを機能させることができた唯一の方法でした.

于 2008-12-17T19:25:57.353 に答える
0

次のようにオブジェクトを調べるだけで、それを理解できます。

GEvent.addListener(map, 'addoverlay', function(obj)
{ if (!obj) {
        alert("Cannot describe a null object");
        return;
    }
    var str = "";

        for ( var prop in obj) {
            str += prop + " = " + obj[prop] + ",\n";
        }
        alert(str);
    });

それは役立つはずです...

于 2009-01-07T23:14:29.283 に答える
0

Kml の更新を参照してください。プラシークIDが必要です。

于 2009-09-18T04:41:48.883 に答える