Region の操作

Region は、パフォーマンスを犠牲にすることなく非常に大きなデータセットを Google Earth に追加できる強力な KML アイテムです。データの読み込みと描画は、そのデータがユーザーのビューに入り、画面のある程度の部分を占めるときにのみ行われます。Region を使用することによって、段階的に詳細レベルの異なるデータを作成して、画面が詳細情報を表示できるほど大きく、かつデータが画面のある程度の部分を占める場合にのみ、詳細レベルの高いデータが読み込まれるようにすることができます。

基本的な概念

Region は任意の Feature に設定できます。Region は、Placemark のジオメトリや Overlay の画像の表示に作用します。Region は、対象となるジオメトリまたはオーバーレイの選択処理と詳細レベルの動作を定義します。Region は、KML 階層を通じて継承され、下の階層で定義されている Feature の表示に作用します。

このセクションでは、Region を理解するために必要な次の基本概念について説明します:

継承

KML のクラスの中には「基本」クラスから派生するものがあります。派生クラスには基本クラスのすべての要素が継承され、その他に派生クラス固有の要素が追加されます(これはオブジェクト指向システムの共通の手法です)。このセクションでは便宜上、すべての派生クラスを列挙するのではなく、基本クラスでそのすべての派生クラスを表すこととします。次に例を挙げます:

  • Feature は、Feature から派生するすべての KML 要素(Document、Folder、GroundOverlay、NetworkLink、PhotoOverlay、Placemark、ScreenOverlay)を指します。
  • Geometry は、KML のすべてのジオメトリ要素(Point、Polygon、LinearRing、LineString、Model、MultiGeometry)を指します。
  • Overlay は、Overlay の派生要素(GroundOverlay、PhotoOverlay、Screen Overlay)を指します。

KML 要素の承継図については、KML リファレンスをご覧ください。

境界ボックス

Region には、データの境界ボックスを定義する <LatLonAltBox> があります。境界ボックスとは、ひとまとまりのオブジェクトやデータ ポイントを内包する空間です。GroundOverlay の <LatLonBox> と同様に、Region の <LatLonAltBox> にも North、South、East、West の各境界があります。Region に含まれるデータが 3D または高さのある 2D の場合、Region の <LatLonAltBox> にも最低標高 <minAltitude> と最高標高 <maxAltitude> を指定する必要があります。

この境界ボックスに関連付けられたオブジェクトは、(1)Region が表示範囲に入り、かつ(2)<LatLonAltBox> の画面上の投影サイズが Region に指定されているピクセル範囲(詳細レベル(LOD)を参照)になったときに描画されます。これらの両方の条件が満たされると、Region は「アクティブ」になります。

詳細レベル(LOD)

Region に関する第 2 の重要な概念は、詳細レベル(LOD)です。コンピュータの画面領域は限られているため、大量のデータの読み込みは、そのデータを表示できる十分なピクセル数の領域が確保されたときにのみ行うようにするのが最も効率的です。Region が画面の比較的小さい部分しか占めていない場合(ユーザーが画面から離れたところにいる場合や平らな領域が斜めに表示されている場合など)には、LOD メカニズムを使用して、完全な解像度のデータの代わりに解像度の低いデータセットを表示するよう指定できます。この低解像度のデータセットはよりすばやく読み込まれ、画面の小さな部分しか占めないため、通常はユーザーが解像度の違いを意識することはありません。

Region では、<minLodPixels> 要素と <maxLodPixels> 要素を使用して、画面領域を平方ピクセルで指定できます。データは、<minLodPixels> より大きく <maxLodPixels> より小さい範囲の画面領域を占めるときにのみ画面に表示されます。Region の投影サイズがこの範囲外になると、データは表示されなくなり、この Region は「アクティブでない」ことになります。

サイズに関係なくデータをアクティブにする必要がある特殊な場合は、<maxLodPixels> を -1(デフォルト)に設定します。

例 1: 地面オーバーレイの Region

まず、地面の高さに 2D オーバーレイの Region を構築する簡単な例を見てみましょう。この例では、1991 年当時の米国カリフォルニア州マウンテン ビューの一部を表示する過去のデータが格納された地面オーバーレイを使用しています。ユーザーがズームインして領域を拡大すると、オーバーレイが表示されます。このオーバーレイを最初に表示したときには次のように見えます(サンプルのファイルではオーバーレイ部分を見分けやすいように白い LineString を使用しています):

この例で指定されている <minLodPixels> は 128 です。これは、GroundOverlay が 128 平方ピクセルの画面領域を占めたときに表示されることを意味します(この例では <maxLodPixels> にデフォルト値の -1 を使用しています。これは、ユーザーがこの角度でズームインするときは常に表示されることを意味します)。このオーバーレイに使用されている画像のサイズは 256 平方ピクセルです。

ユーザーがズームインすると、画像は次のように表示されます:

傾斜ビューにすると次のように表示されます。これは、占有する画面領域が <minLodPixels> の値を下回って画像が表示されなくなる直前の状態です:

この画像は地面と同じ高さの平面のデータであるため、このデータの <LatLonAltBox> に <minAltitude> 要素と <maxAltitude> 要素を指定する必要はありません。この Region の <LatLonAltBox> に指定されたデータの境界ボックスは、下記の KML ファイルにある地面オーバーレイの <LatLonBox> の境界と同じです:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Flat Region</name>
<Region>
<LatLonAltBox>
<north>37.430419921875</north>
<south>37.41943359375</south>
<east>-122.080078125</east>
<west>-122.091064453125</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
</Region>
<GroundOverlay>
<name>Mountain View DOQQ</name>
<Icon>
<href>files/image.JPEG</href>
</Icon>
<LatLonBox>
<north>37.430419921875</north>
<south>37.41943359375</south>
<east>-122.080078125</east>
<west>-122.091064453125</west>
</LatLonBox>
</GroundOverlay> </Document> </kml>

また、この KML ファイルでは、この Region と、この Region が表示に作用する画像(ジオメトリ)は兄弟関係にあります。

これで KML ファイルを確認し終わったので、次のリンクをクリックしてオーバーレイを Google Earth に読み込ませてみましょう。さまざまな視点からのビューを試して、必要な画面領域のサイズに応じて、この Region がどのようなときに表示され、どのようなときに表示されなくなるかをテストします。ビューをある程度以上傾けたり、ズームアウトしてかなりの縮小表示にしたりすると、占有する画面領域が <minLodPixels> で指定した値より小さくなり、オーバーレイが画面に表示されなくなります。

サンプルを Google Earth で表示する(historicOverlay.kmz)

標高

例 2: 3D モデルの Region

次の例では、地面の高さに 3D オブジェクトを含む Region を作成する方法を説明します。この Region の <LatLonAltBox> では、<maxAltitude> が 300 m に指定されています。これは建物の高さを表します。この建物は、ニューヨーク市にある国際連合の複合ビルです。

なお、Region の <LatLonAltBox> の境界は、Model の緯度経度と必ずしも正確に一致するとは限りません。Model の座標はその Model 自体のローカルな原点を基準とするため、Earth での実際の位置からはずれている場合があります。

<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>3D Region on ground</name>
<Placemark>
<name>United Nations Headquarters</name>
<visibility>0</visibility>
<Region>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
<LatLonAltBox>
<north>40.750683130314</north>
<south>40.748162385230</south>
<east>-73.966608428427</east>
<west>-73.969476624071</west>
<minAltitude>0</minAltitude>
<maxAltitude>300</maxAltitude>
<altitudeMode>absolute</altitudeMode>
</LatLonAltBox>
</Region>
<Model>
<altitudeMode>absolute</altitudeMode>
<Location>
<longitude>-73.967763927199</longitude>
<latitude>40.749458312255</latitude>
<altitude>0.406173708576</altitude>
</Location>
<Link>
<href>models/un.dae</href>
</Link>
</Model>
</Placemark>
</Document>
</kml>

次のリンクをクリックしてファイルを Google Earth に読み込ませ、さまざまな視点のビューを試して、この建物がどのようなときに表示され、どのようなときに表示されなくなるかをもう一度確認してみてください。

サンプルを Google Earth で表示する(unitedNations.kmz)

例 3: 高度のある 2D オーバーレイの Region

この例では、地上の特定の標高に表示する 2D オーバーレイを追加する方法を説明します。この手法は、気象前線や航空機の場周経路などを表示するデータに利用できます。この例では、海抜 100,000 m の標高に小さな雲を表示します。

Region の <LatLonAltBox> では、<minAltitude> 要素と <maxAltitude> 要素の両方に 100,000 m の値が指定されています(このオーバーレイは 2D で奥行きがないため、この 2 つの要素は同じ値になります)。<altitudeMode> は absolute で、これは値が海面を基準にしていることを表します。

GroundOverlay の <altitude> の値も 100,000(つまり、Region の境界ボックスの標高の値と同じ)で、GroundOverlay の <altitudeMode> の値が Region の <altitudeMode> に指定されている値と同じであることに注意してください。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Flat Region at altitude</name>
<GroundOverlay>
<name>Cloud overlay</name>
<Region>
<LatLonAltBox>
<north>33.75</north>
<south>22.5</south>
<east>-45</east>
<west>-56.25</west>
<minAltitude>100000</minAltitude>
<maxAltitude>100000</maxAltitude>
<altitudeMode>absolute</altitudeMode>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
</Lod>
</Region>
<Icon>
<href>files/image.PNG</href>
</Icon>
<altitude>100000</altitude>
<altitudeMode>absolute</altitudeMode>
<LatLonBox>
<north>33.75</north>
<south>22.5</south>
<east>-45</east>
<west>-56.25</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>

サンプルを Google Earth で表示する(cloudRegion.kmz)

フェード範囲

Region のフェード範囲を指定することによって、オブジェクトを透明から不透明、不透明から透明へとスムーズに遷移させることができます。Google Earth は、Region の表示サイズが最大のときの完全な透明から完全な不透明への移行フェードを maxFadeExtent に基づいて判断し、表示サイズが最小のときの移行フェードを minFadeExtent に基づいて判断します。フェード範囲の設定はオプションですが、フェード範囲を設定すると、解像度が異なる LineString や Polygon の間を移動したときに急激に印象が変わるように感じられる現象を防ぐことができます。フェードはパフォーマンスに大きく影響するため、画像には使用しないでください。

注: フェード範囲は目印アイコン以外のすべてのオブジェクトに適用されます。目印アイコンは、フェード範囲が 0.5 を超えると描画されます。

次の例は、フェード範囲が LineString にどのように作用するかを示したものです。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Region in Placemark LineString</name>
<description>
The LineString corners mark the extent
of the Region LatLonAltBox.
The LineString minFadeExtent (at greatest range)
is 1/4 of the maxFadeExtent (at closest range)..
</description>
<Placemark>
<name>Region LineString</name>
<LineString>
<coordinates>
22,50,0
28,50,0
28,45,0
22,45,0
22,50,0
</coordinates>
</LineString>
<Region>
<LatLonAltBox>
<north>50</north>
<south>45</south>
<east>28</east>
<west>22</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024</maxLodPixels>
<minFadeExtent>128</minFadeExtent>
<maxFadeExtent>512</maxFadeExtent>
</Lod>
</Region>
</Placemark>
</Document>
</kml>

サンプルを Google Earth で表示する(fadeLineString.kml)

Region のネスト

Region は多くの場合、ネストして使用します。大きな Region を粗い解像度に関連付け、内側の小さな Region をより解像度の高い詳細レベルに関連付けます。次の図では、各 Region に LOD 制限が割り当てられています。LOD 制限にピクセル数で指定した画面投影サイズになると、関連付けられている Region がアクティブになります。ユーザーの視点が Region に近付くと、その Region が占める画面領域が大きくなるため、より高い詳細レベル(LOD)の Region がアクティブになります。その結果、先に読み込まれている粗い LOD の Region が、より高い LOD の Region に置き換えられます。

ネストされた連続する Region がアクティブになると、次の処理が可能になります。

  • 各 Region に関連付けられているデータを集約する(下記のスーパーオーバーレイの例を参照)。
  • 先に読み込んだ Region データを新しいデータに置き換える(上記の図を参照)。

子 Region の <LatLonAltBox> は、その全体が親 Region の <LatLonAltBox> 内に含まれている必要があります。Region は Folder および NetworkLink 階層を通して継承されます。ローカルで定義された Region は、上位の Folder 階層で定義された Region より優先されます。次の例は、Region のローカル スコープによって、上位の階層で定義された Region がどのように変更されるかを示しています。この例では、Placemark「ukraineRegion」はその親 Document から Region を継承しています。Folder「romaniaFolder」には独自の Region が指定されていて、Placemark「romaniaRegion」ではこの Region が使用されます。NetworkLink 内で最も効率的に Region を使用する方法の例については、次の Region ベースのネットワーク リンクの「スマート」な読み込みをご覧ください。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Nested Regions</name> <Region> <LatLonAltBox> <north>56.25</north> <south>45</south> <east>33.75</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>ukraineRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 33.75,45,0 33.75,56.25,0 22.5,56.25,0 22.5,45,0 </coordinates> </LineString> </Placemark> <Folder> <name>romaniaFolder</name> <Region> <LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>romaniaRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 28.125,45,0 28.125,50.625,0 22.5,50.625,0 22.5,45,0 </coordinates> </LineString> </Placemark> </Folder> </Document> </kml>

Region ベースのネットワーク リンクの「スマート」な読み込み

前の例で説明した Region ベースの NetworkLink を使用すると、非常に大きなデータセットを Google Earth で非常に効率的に公開できます。Region を NetworkLink と組み合わせて使用することで、特定のサブ Region を指すポインタの階層を作成できます。次の KML ファイル内の <viewRefreshMode> には onRegion オプションがあります。このオプションを使用すると、その Region がアクティブな場合にのみ Region のデータが読み込まれます。詳細レベルの異なる複数の Region をネストした場合、ユーザーの視点が次の読み込みを実行する条件を満たすときにのみ、詳細データの読み込みが行われます。スーパーオーバーレイに関する次のセクションで、詳しい例を紹介しています。

パート 1: 親ファイル

この例を実行するには、最初の部分を通常どおり保存します。また、Region がアクティブになったら NetworkLink でその Region を読み込めるように、2 番目の部分を romaniaRegion.kml として保存します。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Nested Regions</name> <Region> <LatLonAltBox> <north>56.25</north> <south>45</south> <east>33.75</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Placemark> <name>ukraineRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0 33.75,45,0 33.75,56.25,0 22.5,56.25,0 22.5,45,0 </coordinates> </LineString> </Placemark> <NetworkLink> <name>romania NetworkLink</name> <Region> <LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox> <Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod> </Region> <Link> <href>romaniaRegion.kml</href> <viewRefreshMode>onRegion</viewRefreshMode> </Link> </NetworkLink> </Document> </kml>
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>romania Document</name>
<Region>
<LatLonAltBox> <north>50.625</north> <south>45</south> <east>28.125</east> <west>22.5</west> </LatLonAltBox>
<Lod> <minLodPixels>128</minLodPixels> <maxLodPixels>1024</maxLodPixels> </Lod>
</Region> <Placemark> <name>romaniaRegion</name> <LineString> <tessellate>1</tessellate> <coordinates> 22.5,45,0
28.125,45,0 28.125,50.625,0 22.5,50.625,0 22.5,45,0 </coordinates> </LineString> </Placemark>
</Document>
</kml>

スーパーオーバーレイ

Q: 47 MB の画像を全世界のユーザーと共有するにはどうすればよいですか。
A: 一度に一部分ずつ読み込みます。

Q: 大勢のユーザーがこの読み込みを実行するとどうなりますか。
A: このチュートリアルにあるように、Region ベースの NetworkLink を使用して複数の詳細レベルを画像に設定すれば問題ありません。

このセクションでは、Region と NetworkLink の階層である「スーパーオーバーレイ」を作成する方法について説明します。スーパーオーバーレイを使用すると、大きな画像のセットを効率的に表示できます。画像領域の一部が表示されると、対応する解像度のタイルが読み込まれます。視点が近付くにつれて、より解像度の高いタイルが読み込まれます。7008 x 6720 ピクセルの画像を 1024 x 768 の画面に表示しようとしても労力の無駄です。その上、ユーザーの位置が地表のはるか上空である場合は、わずかなピクセル領域にすべてのデータが詰め込まれ、パフォーマンスがきわめて低くなります。1991 年当時のカリフォルニア州マウンテン ビューの DOQQ を表示する今回のサンプルのようなスーパーオーバーレイでは、NetworkLink とその機能を活用して、(1)特定の Region が表示範囲に含まれているかどうか、(2)その Region の投影サイズがそのときの視点に適しているかどうかを判別できます。Region が「アクティブ」である場合(両方の条件を満たしている場合)、この Region に関連付けられているデータが NetworkLink に読み込まれます。Region がアクティブでないときは、データは読み込まれません。元の画像を詳細レベルを徐々に高くした画像の階層に分割すると、そのときのビューに最も適した画像が Google Earth に読み込まれるようにすることができます。

この画像の階層の使われ方を確認するため、次のサンプル ファイルを Google Earth に読み込ませ、対称領域でズームインとズームアウトを試してください: マウンテン ビューの過去の DOQQ

非常に大きなデータセットを効率的に読み込むために Region ベースの NetworkLink を使用した例。元の画像のサイズは 7008 x 6720 ピクセルです。ここに表示されている傾斜ビューでは、5 つの小さなタイルのみを読み込んでこの画像を表示しています(タイルの境界がわかりやすいように白い LineString を追加しています)。この例では、マウンテン ビュー市街の過去のイメージ(1991 年の DOQQ)が表示されます。

スーパーオーバーレイに使用するデータの準備

サンプルのスーパーオーバーレイでは、元のマウンテン ビューの画像は多数の小さな GroundOverlay に分割されています。これらのオーバーレイ(タイル)は、5 段階の階層に配置されています。例として、ここでは単純な 3 段階の階層と 21 個のオーバーレイを使用しますが、基本的な考え方は同じです。なお、ここで紹介する例は、あくまで Region ベースの NetworkLink を作成する方法の一例であり、このメカニズムを実装する方法は他にもあります。

スーパーオーバーレイを作成するには:

  1. 扱いやすいサイズ(推奨サイズ: 256 x 256 ピクセル)に分割した画像を用意します。
  2. Region、Link、NetworkLink、およびこの場合は GroundOverlay 格納ファイルを設定する KML ファイルを作成します。

画像の準備

タイルの標準サイズを選択します。タイルは、関連付けられている Region がアクティブになったときに Google Earth に読み込まれる(さまざまな解像度の)分割された画像です。例として、ここではタイルのサイズを 256 x 256 ピクセルとします。この程度の小さなサイズなら扱いが容易です。

  1. まず、元の高解像度の画像を処理します。n 個のタイルに分割し、分割した各タイルをさらに n 個のタイルに分割します。
    所定のサイズ(この例では 256 x 256 ピクセル)になるまで、分割を繰り返します。

    たとえば、元の画像のサイズを 1024 x 1024 ピクセルとします。
    この画像を分割していくと、次のような階層が作成されます。

     

  2. 階層内の各タイルを、選択した標準サイズ(256 x 256 ピクセルなど)にリサンプリングします。
    リサンプリングしたタイルは解像度が低くなりますが、関連付けられている Region がアクティブになるのは
    視点がより遠距離にあるときであるため、解像度の低下をユーザーが意識することはまずありません。

この図は、ネストされた Region の視点と定義に基づいて、実際に読み込まれるタイルがどのように決定されるかを表しています。このサンプルの大きな画像には、3 段階の詳細レベルが設定されています。ユーザーの位置が画面から離れている場合、Google Earth には Region のサムネイル ビューが表示されます。このビューは LatLonAltBox 全体に引き伸ばされて表示されます(ただし、投影サイズが 256 平方ピクセルと小さいため、実質的には視覚情報は失われません)。ユーザーがシーンにズームインすると、Region は 4 つの Region に分割されます。これらの 4 つの「タイル」はいずれも、サムネイルの画像と同じサイズですが、より詳細な画像です。

ユーザーが領域にさらにズームインすると、接近度に応じて元の高解像度の画像が表示されます。遠距離部分では、最初に読み込んだ低解像度の画像が保持されます。マウンテン ビューの DOQQ の例で [Boxes] をオンにして、Placemark AB を確認してみましょう。Region の周囲に LineString が使用され、一度に複数の階層が表示されるようになっています。

この例では、(すべての階層の)すべての Region で、minLodPixels と maxLodPixels に同じ値が設定されています。どの階層を読み込み、Region 内のどのタイルを読み込むかは、LatLonAltBox で指定されています。

KML ファイルの準備

画像ごとに、地面オーバーレイを Region と NetworkLink に関連付ける KML ファイルを用意します。各 KML ファイルに次の要素を入れます:

  • Region 1 つ(特定の時点でこの Region がアクティブかどうかを Google Earth が判断できるようにするために、LatLonAltBox、minLodPixels、maxLodPixels を設定します)
  • 子ファイル(次の階層のタイル)を指す一連の NetworkLink
  • この Region の地面オーバーレイ

次のサンプルは、マウンテン ビューの DOQQ の例の最上位の KML ファイルを表したものです。maxLodPixels には、「無限のサイズまでアクティブ」を意味する -1 が指定されています。この指定がないと、すべての階層がどのサイズでも表示されなくなるおそれがあります。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLink>
<name>SuperOverlay: MV DOQQ</name>
<Region>
<LatLonAltBox>
<north>37.44140625</north>
<south>37.265625</south>
<east>-121.9921875</east>
<west>-122.16796875</west>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>-1</maxLodPixels>
</Lod>
</Region>
<Link>
<href>http://mw1.google.com/mw-earth-vectordb/kml-samples/mv-070501/1.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
</kml>

次のファイルは、マウンテン ビューの DOQQ の例の Region の 1 つを表したものです(179.kml)。このファイルには href タグが 5 つ含まれています。そのうちの 4 つは画像の次の階層にある 4 つの KML ファイルを参照し、残りの 1 つはこのタイルの GroundOverlay に使用する画像ファイルを参照しています。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<NetworkLink>
<name>001120</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.4249267578125</south>
<east>-122.0965576171875</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<Link>
<href>180.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
<NetworkLink>
<name>001121</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.430419921875</north><south>37.4249267578125</south>
<east>-122.091064453125</east><west>-122.0965576171875</west>
</LatLonAltBox>
</Region>
<Link>
<href>185.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
<NetworkLink>
<name>001122</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.4249267578125</north><south>37.41943359375</south>
<east>-122.0965576171875</east><west>-122.10205078125</west>
</LatLonAltBox>
</Region>
<Link>
<href>190.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
<NetworkLink>
<name>001123</name>
<Region>
<Lod>
<minLodPixels>128</minLodPixels><maxLodPixels>-1</maxLodPixels>
</Lod>
<LatLonAltBox>
<north>37.4249267578125</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.0965576171875</west>
</LatLonAltBox>
</Region>
<Link>
<href>195.kml</href>
<viewRefreshMode>onRegion</viewRefreshMode>
</Link>
</NetworkLink>
<GroundOverlay>
<drawOrder>5</drawOrder>
<Icon>
<href>179.JPEG</href>
</Icon>
<LatLonBox>
<north>37.430419921875</north><south>37.41943359375</south>
<east>-122.091064453125</east><west>-122.10205078125</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>