1

Google Earth では、デフォルトで [境界線とラベル] (国の概要を表示) がオンになっています。境界線をオフにしたい KMZ/KML ファイルがあります。KML を説明するドキュメントを検索しましたが、レイヤーに関連するものは見つかりません。

また、ボーダーをオンにした場合とオフにした場合の KMZ ファイルを保存しようとしましたが、それらは同一です。

KML API を介してレイヤーにアクセスする方法を知っている人はいますか?

4

2 に答える 2

0

KML を介して直接 Google Earth のレイヤをオン/オフすることはまだできません。現在、これは Google Earth のユーザーによって手動で行われています。

ただし、現在、過去の画像、ストリートビュー、太陽光モードのオン/オフを切り替える指令があります。 https://developers.google.com/kml/documentation/kmlreference#gxvieweroptions

ただし、GE API を使用して簡単にレイヤーのオン/オフを切り替えることができます。

特定のレイヤーを有効にするには:

  ge.getLayerRoot().enableLayerById(ge.LAYER_NAME, true)

レイヤーを無効にするには:

  ge.getLayerRoot().enableLayerById(ge.LAYER_NAME, false);

参照: https://developers.google.com/earth/documentation/layers#layers

于 2012-10-13T20:59:23.183 に答える
0

API には ge.LAYER_BORDERS 内の個々のレイヤーに対して定義された定数はありませんが、KML ファイルを見ると、各「フォルダー」ノードには ID があるため、JasonM1 が言うように、必要なレイヤーごとに enableLayerById を使用できます。最上位のノード (この場合は ge.LAYER_BORDERS) をオンにしてからオフにします。

APIを介して「境界線とラベル」レイヤーをクリーンアップするために使用したコードは次のとおりです。

ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
ge.getLayerRoot().enableLayerById("530286de-c7b3-11dc-938c-dd553d8c9902", false);       // internation borders
ge.getLayerRoot().enableLayerById("cfdff130-394a-11e0-98fa-dd5743f1dfd8", false);       // coastline
ge.getLayerRoot().enableLayerById("533444c6-c7b3-11dc-b02e-dd553d8c9902", false);       // 1st level borders too
ge.getLayerRoot().enableLayerById("534ab67a-c7b3-11dc-a2a7-dd553d8c9902", false);       // 2nd level borders too
ge.getLayerRoot().enableLayerById("e2334aaa-e853-11df-9192-77880e18aa7d", false);       // geographic features

ps「borders and labels.kml」ファイルをどこで入手したかわかりませんが、おそらくどこかにあったので、探し続けます...

于 2013-09-24T10:38:07.777 に答える