4

ドメイン固有のグループ化に基づいてフォルダーに配置された、50,000 以上の目印を含む KML ファイルを生成します。KML ファイルは、KMZ ファイルにパックされたカスタム イメージを使用します。

単一の KML ファイルを、グループ化に基づいて分割された複数のファイルに分割することを検討しているため、フォルダーを含む 1 つの大きなドキュメントを作成するのではなく、小さな KML ファイルにリンクするフォルダーを含むルート/インデックス KML ファイルを作成します。

これは可能ですか?KMZ ファイルには、zip 内の場所や名前に関係なく、KML ファイルを 1 つしか含めることができないと思います。さらに、KML ファイルを別の KML ファイルにリンクする方法が正確にはわかりません。<NetworkLink>それをローカルファイルに保存する唯一の方法はありますか? <NetworkLink>同じ KMZ 内のローカル ファイルにリンクできますか?

4

2 に答える 2

11

設計上、1 つの KMZ ファイル内に複数の KML ファイルを含めることができます。こうすることで、多数の KML ファイルを 1 つの KMZ ファイルにまとめてダウンロードしたり、電子メールで送信したり、オフラインでアクセスしたりできます。

フィーチャが複数の KML ファイルに分割され、すべてのサブ KML ファイルが一度に表示されないように KML が定義されている場合、 Google Earth は 1 つの KMZ ファイルで多数のフィーチャ(50,000 またはそれ以上) にスケーリングできます。KML は、時間、地域、または高度レベルのフィルタリングを使用して、どのフィーチャまたはサブ KML ファイルを表示するかを制御するメカニズムを提供します。

大規模な KML ファイルは、次のいずれかの手法を使用してスケーリングできます。

  1. ネットワークリンク
  2. 地域
  3. フォルダー ラジオ スタイルまたは明示的な可視性 = 0
  4. フィーチャごとのポイント数とジオメトリの単純化

ネットワークリンク

ルート KML ファイル内から、フラット (KMZ 内の他のすべての KML ファイルへの Networklink を持つ単一の KML ファイル) からディープ (それぞれ独自の NetworkLink を持つ他の KML ファイルへの NetworkLink を持つ各 KML ファイル) まで、任意のレベルの NetworkLinks を持つことができます。 . KML をどのように構造化する必要があるか、およびデータの大きさによって異なります。

重要なのは、Google Earth が最初の KML をルート KML ファイルとして選択することです。したがって、最初のファイル (通常は doc.kml という名前) が、ネットワーク リンクを介して他の KML ファイルをロードするルート KML ファイルであることを確認する必要があります。一般的な構造では、追加の KML ファイルを「kml」サブフォルダーに含めて、ルート KML ファイルと区別します。

4 つのファイル エントリを持つ KMZ の例を次に示します。ルート KML ファイル (doc.kml) には、" kml/sub1.kml " への NetworkLink と " kml/sub2.kml "への NetworkLink が含まれ、さらに" sub3 . kml " も "kml" サブフォルダーにあります。

== test.kmz ==

+doc.kml
   NetworkLink > kml/sub1.kml
   NetworkLink > kml/sub2.kml
+kml/sub1.kml
+kml/sub2.kml
   NetworkLink > sub3.kml
+kml/sub3.kml

このようなdoc.kmlファイルの構造は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <NetworkLink>
        <name>NetworkLinked sub-item</name>
        <Link>
          <href> kml/sub1.kml </href>
        </Link>
    </NetworkLink>
    <NetworkLink>
        <name>NetworkLinked sub-item</name>
        <Link>
          <href> kml/sub2.kml </href>
        </Link>
    </NetworkLink>
    ...
  </Document>
</kml>

親 KML ファイルに時間ベースの機能を持つ複数の NetworkLink を含める場合のベスト プラクティスとして、その<TimeSpan>機能のコレクションの全時間範囲を含む要素を NetworkLinks に追加します。そうしないと、Google Earth が起動時にファイル全体を自動的に読み込みます。 .

<NetworkLink>
  <TimeSpan>
    <begin>2007-01-14T01:00:00Z</begin>
    <end>2007-01-14T02:00:00Z</end>
  </TimeSpan>
  <Link>
    <href>...</href>
  </Link>
</NetworkLink>

地域

リージョンは、目印の ジオメトリまたはオーバーレイの画像の表示に影響します。Region を NetworkLinks と組み合わせることで、KML ファイル内の大量のデータにアクセスできます。リージョンはオプションで、高度レベル フィルタリング用の最小高度と最大高度を持つことができます。

詳細については、KML のリージョンに関するチュートリアルを
ご覧ください https://developers.google.com/kml/documentation/regions

ラジオ フォルダ

ラジオ フォルダを使用して、特定の時間に表示される内容をさらに制限できます。

次に示すのは、ユーザーが一度に 1 つの NetworkLinks のみを選択できるラジオ フォルダーの例です。これは、コンテンツが相互に排他的で、常に 1 つの機能セットのみを表示する必要がある場合に使用されます。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <Style id="rf">
            <ListStyle>
                <listItemType>radioFolder</listItemType>
            </ListStyle>
        </Style>
        
        <Folder>        
            <name>One at a time example</name>
            <open>1</open>
            <description>Link 1 visible by default</description>
            <styleUrl>#rf</styleUrl>
            
            <NetworkLink>
                <name>NetworkLinked sub-item-1</name>
                <Link>
                    <href> kml/sub1.kml </href>
                </Link>
            </NetworkLink>
            
            <NetworkLink>
                <name>NetworkLinked sub-item-2</name>
                <visibility>0</visibility>
                <Link>
                    <href> kml/sub2.kml </href>
                </Link>
            </NetworkLink>
            
        </Folder>
    </Document>
</kml>

フィーチャごとのポイント数とジオメトリの単純化

考慮すべき問題は、KML ファイルのサイズとフィーチャの数だけではありません。350K のポイントと 7000 個の内部ホールを持つ単一の高解像度ポリゴンを含む KML ファイルは、Google Earth のパフォーマンスの問題を引き起こす可能性があります。このようなジオメトリは単純化し、ポイントの数を減らす必要があります。QGISを使用して KML ファイルを開き、ポリゴンに単純化アルゴリズムを適用できます。QGIS で、[ベクター] メニュー -> [ジオメトリ ツール] -> [簡略化] を選択して、結果を保存します。

于 2012-10-12T03:16:57.957 に答える
1

はい、ネットワークリンクを使用してこれを達成できます。私が知る限り、それがあなたの要求を実行する唯一の方法です。はい、ネットワークリンクでローカルファイルを参照できます

http://code.google.com/intl/nl-NL/apis/kml/documentation/kml_tut.html (「ネットワーク リンク」を検索) を参照してください。

ネットワーク リンクには、ファイルをロードする (ハイパーテキスト参照) を持つ要素が含まれています。は、ローカル ファイル指定または絶対 URL にすることができます。<NetworkLink> という名前にもかかわらず、必ずしもネットワークからファイルをロードするとは限りません。リンク内の <href> は、次のいずれかの場所を指定します。

• アイコン スタイル、グラウンド オーバーレイ、およびスクリーン オーバーレイのアイコンで使用される画像ファイル
• 要素で使用されるモデル ファイル
• ネットワーク リンクによってロードされる KML または KMZ ファイル

いいえ、kmz 内の別のファイルを参照することはできません。kmz には 1 つの kml ファイルのみを含めることができます (ただし、他の種類のファイルを含めることもできます)。kmz ファイルのレイアウトとそれらに入れることができるものについては、ここで確認できます。具体的には、次のセクションに注意してください。

2.デフォルトの KML ファイル (doc.kml、または任意の名前) をこのフォルダー内の最上位に配置します。.kml ファイルを 1 つだけ含めます。(Google Earth で KMZ ファイルを開くと、ファイルがスキャンされ、このリストの最初の .kml ファイルが検索されます。アーカイブ内に後続の .kml ファイルがあれば、すべて無視されます。アーカイブに複数の .kml ファイルが含まれている場合は、どちらが最初に見つかるかはわからないため、1 つだけ含める必要があります。)

最後に、この 50,000 個の目印をオフライン ファイルとして必要とするかどうかについて、あなたの質問からは何もわかりません。それらを動的に提供できる場合は、GE がクライアントの表示領域を通知する領域ベースのリンクを使用して、ウェイポイントの小さなサブセット (ユーザー ビュー内にあるもののみ) を返すことができます。詳細については、これを参照してください。クリックするリンク。

于 2011-09-16T23:49:02.717 に答える