このセクションでは、KML バージョン 2.2 で定義されているすべての KML 要素と Google の拡張名前空間の要素をアルファベット順に説明します。KML 要素のクラス ツリーは以下のとおりです。この図では、ツリーの枝の右側に表示されている要素は、その左側に表示されている要素を拡張したものです。たとえば、Placemark は特殊な種類の Feature です。この要素には Feature に属する要素がすべて含まれ、さらに Placemark 要素に固有の要素がいくつか追加されています。
KML はオープン スタンダードで、正式名称は OpenGIS® KML Encoding Standard(OGC KML)です。OGC KML は、Open Geospatial Consortium, Inc.(OGC)によって管理されています。OGC KML の仕様については http://www.opengeospatial.org/standards/kml/ をご覧ください。
KML 用の XML スキーマは http://schemas.opengis.net/kml/ でご覧下さい。
注: 次の図の要素名をクリックすると、このリファレンス内の詳しい説明に移動します。
抽象的な要素(図の中の四角で囲まれている要素)は、実際には KML ファイルでは使用しません。これは、1 つの要素を複数の類似した(ただし異なる)派生要素のプログラム的な基盤として機能させる便利な方法です。関連する要素のグループがわかるようになるため、このオブジェクト指向の階層を理解することは KML の学習にも役立ちます。
Object から派生する要素にはすべて、id が割り当てられます。この id は、NetworkLink で読み込んだファイルに対する KML の更新メカニズム(<Update> を参照)で使用します。また、共有のスタイルにも使用します(<Style> を参照)。id は標準の XML ID です。
KML は XML の文法とファイル形式を使用するため、タグ名は大文字と小文字を区別し、ここに示すとおりに記述する必要があります。XML を理解しているユーザーは、KML 2.2 スキーマもご覧ください。KML テキスト ファイルを編集する際は、このスキーマを任意の XML エディタに読み込ませて KML コードを検証できます。
ヒント: Google Earth の Feature に対する KML の表示
Google Earth には、任意の Feature に対する KML ファイルを簡単に表示する便利な機能があります。Google Earth の [場所] パネルで Feature を右クリックしてコピーします。コピーしたオブジェクトに対応する KML を表示するには、任意のテキスト エディタを開いてコピーした内容を貼り付けます。
互換性
KML のバージョンには、majorVersion.minorVersion という形式のダブル ナンバリング システムを採用しています。同じ majorVersion を持つバージョンにはすべて互換性があります。したがって、名前空間を「2.2」(つまり、xmlns="http://www.opengis.net/kml/2.2")に変更しても、KML 2.1 のファイルはすべて KML 2.2 スキーマで有効です。
リファレンスの各エントリには、メインの要素に含まれる複数の要素を一覧表示した構文セクションがあります。このセクションには構文が簡略化して表示されており、簡潔な表現で要素が要約されています。このセクションには、次の内容も含まれています:
構文セクションは、コピーして、KML ファイル内で任意の具体的な要素のテンプレートとして使用できます。
OGC KML 標準には、拡張メカニズム(標準では提供されない情報を指定する追加の要素)が用意されています(XML 名前空間について詳しくは、w3.org のここをご覧ください)。Google Earth 5.0 のサービス開始にともない、Google は KML を拡張し、多数の新機能を追加しました。これらの拡張要素では、gx というプレフィックスと、次の名前空間 URI を使用します:
xmlns:gx="http://www.google.com/kml/ext/2.2"
この名前空間 URI は次のように、gx- プレフィックス付きの要素を使用するすべての KML ファイルの <kml> 要素に追加する必要があります:
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
ジオ ブラウザによっては、KML の拡張要素をサポートしていない場合があります。使用しているブラウザで特定の拡張がサポートされていない場合は、大半の場合サポートされていない拡張は無視され、KML ファイルの残りの部分がエラーなしで読み込まれるはずです。
gx プレフィックスが使用されている要素は次のとおりです:
この拡張名前空間の要素の XML スキーマには http://code.google.com/apis/kml/schema/kml22gx.xsd からアクセスできます。
KML では、boolean、string、double、float、int など、一般的な XML のデータ型を使用します。さらに KML には、フィールド要素の型がいくつか定義されています。次の表に、KML で定義されている最も一般的に使用される型の一部と、それらを使用したサンプル要素へのリンクを示します:
| フィールドの型 | 値 | 使用例 |
|---|---|---|
| altitudeModeEnum | clampToGround、relativeToGround、absolute | <LookAt> と <Region> を参照 |
| angle90 | -90 以上 90 以下の値 | <Model> の <latitude> を参照 |
| anglepos90 | 0 以上 90 以下の値 | <LookAt> の <tilt> を参照 |
| angle180 | -180 以上 180 以下の値 | <Model> の <longitude> を参照 |
| angle360 | -360 以上 360 以下の値 | <Orientation> の <heading>、 <tilt>、<roll> を参照 |
| color | hexBinary 値: aabbggrr | <ColorStyle> の拡張要素を参照 |
| colorModeEnum | normal、random | <ColorStyle> の拡張要素を参照 |
| dateTime | dateTime、date、gYearMonth、gYear | <TimeSpan> と <TimeStamp> を参照 |
| displayModeEnum | default、hide | <BalloonStyle> を参照 |
| gridOrigin | lowerLeft、upperLeft | <PhotoOverlay> を参照 |
| refreshModeEnum | onChange、onInterval、onExpire | <Link> を参照 |
| shapeEnum | rectangle、cylinder、sphere | <PhotoOverlay> を参照 |
| styleStateEnum | normal、highlight | <StyleMap> を参照 |
| unitsEnum | fraction、pixels、insetPixels | <IconStyle> の <hotSpot> と、<ScreenOverlay> を参照 |
| vec2 | x=double xunits=kml:unitsEnum y=double yunits=kml:unitsEnum |
<IconStyle> の <hotSpot> と、 <ScreenOverlay> を参照 |
| viewRefreshEnum | never、onRequest、onStop、onRegion | <Link> を参照 |
<!-- abstract element; do not create -->
<!-- AbstractView --> <!-- Camera, LookAt -->
<!-- extends Object -->
<TimePrimitive>...</TimePrimitive> <!-- gx:TimeSpan or gx:TimeStamp -->
<-- /AbstractView -->
これは抽象的な要素であり、KML ファイル内で直接使用することはできません。この要素は、<Camera> 要素と <LookAt> 要素によって拡張されます。
| この要素は、OGC KML 2.2 標準 の拡張要素で、Google Earth 5.0 でサポートされています。詳しくはこちらをご覧ください。 |
<gx:altitudeMode>clampToGround</gx:altitudeMode> <!-- gx:altitudeModeEnum: relativeToSeaFloor, clampToSeaFloor, relativeToGround, clampToGround, absolute -->
OGC KML 標準の <altitudeMode> 要素の代わりに使用でき、標準の altitudeMode の値の他に次の値に対応しています:
<altitudeMode> と同様に、<gx:altitudeMode> は次の要素に影響します:
<coordinates> 要素の標高座標<LatLonAltBox> の <minAltitude> と <maxAltitude><Location>、<GroundOverlay>、AbstractView(<LookAt> と <Camera>)の <altitude>使用できる標高モードについて詳しくは、KML デベロッパー ガイドの標高モードの章をご覧ください。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2"> <!-- required when using gx-prefixed elements -->
<Placemark>
<name>gx:altitudeMode Example</name>
<LookAt>
<longitude>146.806</longitude>
<latitude>12.219</latitude>
<heading>-60</heading>
<tilt>70</tilt>
<range>6300</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<LineString>
<extrude>1</extrude>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
<coordinates>
146.825,12.233,400
146.820,12.222,400
146.812,12.212,400
146.796,12.209,400
146.788,12.205,400
</coordinates>
</LineString>
</Placemark>
</kml>
| この要素は、OGC KML 2.2 標準 の拡張要素で、Google Earth 5.0 でサポートされています。詳しくはこちらをご覧ください。 |
<gx:AnimatedUpdate>
<gx:duration>0.0</gx:duration> <!-- double, specifies time in seconds -->
<Update>
<targetHref>...</targetHref> <!-- required; can contain a URL or be left blank -->
<!-- (to target elements within the same file -->
<Change>...</Change>
<Create>...</Create>
<Delete>...</Delete>
</Update>
</gx:AnimatedUpdate>
<gx:AnimatedUpdate> は <Update> を使用して、KML アイテムへのツアー中の変更をコントロールします。KML アイテムへの変更は DOM には影響しません。つまり、どのような変更もツアーが終わると元に戻り、KML には一切保存されません。
また、<gx:AnimatedUpdate> には <gx:duration> 値を指定して、更新にかける時間の長さを秒で指定する必要があります。integer、float、color 型のフィールドの場合、指定した時間で元の値から新しい値までスムーズにアニメーション表示されます。boolean や string など、値を少しずつ変更することができない値の場合、指定した時間の最後に値が更新されます。
<gx:AnimatedUpdate> とツアーのタイムラインについて詳しくは、KML デベロッパー ガイドのツアーの章にあるツアーのタイムラインの説明をご覧ください。
アイコンのサイズを変更する例を、下記に示します。この変更は 5 秒かけてアニメーション表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<name>gx:AnimatedUpdate example</name>
<Style id="pushpin">
<IconStyle id="mystyle">
<Icon>
<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
<scale>1.0</scale>
</Icon>
</IconStyle>
</Style>
<Placemark id="mountainpin1">
<name>Pin on a mountaintop</name>
<styleUrl>#pushpin</styleUrl>
<Point>
<coordinates>170.1435558771009,-43.60505741890396,0</coordinates>
</Point>
</Placemark>
<gx:Tour>
<name>Play me!</name>
<gx:Playlist>
<gx:FlyTo>
<gx:flyToMode>bounce</gx:flyToMode>
<gx:duration>3</gx:duration>
<Camera>
<longitude>170.157</longitude>
<latitude>-43.671</latitude>
<altitude>9700</altitude>
<heading>-6.333</heading>
<tilt>33.5</tilt>
</Camera>
</gx:FlyTo>
<gx:AnimatedUpdate>
<gx:duration>5</gx:duration>
<Update>
<targetHref></targetHref>
<Change>
<IconStyle targetId="mystyle">
<scale>10.0</scale>
</IconStyle>
</Change>
</Update>
</gx:AnimatedUpdate>
<gx:Wait>
<gx:duration>5</gx:duration>
</gx:Wait>
</gx:Playlist>
</gx:Tour>
</Document>
</kml>
<BalloonStyle id="ID">
<!-- specific to BalloonStyle -->
<bgColor>ffffffff</bgColor> <!-- kml:color -->
<textColor>ff000000</textColor> <!-- kml:color -->
<text>...</text> <!-- string -->
<displayMode>default</displayMode> <!-- kml:displayModeEnum -->
</BalloonStyle>
目印の説明を表示するバルーン ウィンドウの描画方法を指定します。<bgColor>(指定されている場合)は、バルーンの背景色として使用されます。Google Earth にデフォルトで表示される説明のバルーンについては、<Feature> の図をご覧ください。
注: <BalloonStyle> 内での <color> 要素の使用は廃止予定です。代わりに、<bgColor> を使用してください。
<text>This is $[name], whose description is:<br/>$[description]</text>
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document> <name>BalloonStyle.kml</name>
<open>1</open>
<Style id="exampleBalloonStyle">
<BalloonStyle>
<!-- a background color for the balloon -->
<bgColor>ffffffbb</bgColor>
<!-- styling of the balloon text -->
<text><![CDATA[
<b><font color="#CC0000" size="+3">$[name]</font></b>
<br/><br/>
<font face="Courier">$[description]</font>
<br/><br/>
Extra text that will appear in the description balloon
<br/><br/>
<!-- insert the to/from hyperlinks -->
$[geDirections]
]]></text>
</BalloonStyle>
</Style>
<Placemark>
<name>BalloonStyle</name>
<description>An example of BalloonStyle</description>
<styleUrl>#exampleBalloonStyle</styleUrl>
<Point>
<coordinates>-122.370533,37.823842,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
| この要素は、OGC KML 2.2 標準 の拡張要素で、Google Earth 5.0 でサポートされています。詳しくはこちらをご覧ください。 |
<gx:balloonVisibility>0</gx:balloonVisibility> <!-- 0 (not visible) or 1 (visible) -->
バルーンの説明の表示/非表示を切り替えます。更新するバルーンは、オブジェクトの XML ID(<Placemark targetId="xxx"> など)で識別する必要があります。
最初の例は、<gx:balloonVisibility> を指定した Placemark を示しています。この Placemark が読み込まれると、説明のバルーンが表示されます。
balloonvisibility_example.kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2">
<Placemark>
<name>Eiffel Tower</name>
<description>
Located in Paris, France.
This description balloon opens
when the Placemark is loaded.
</description>
<gx:balloonVisibility>1</gx:balloonVisibility>
<Point>
<coordinates>2.294785,48.858093,0</coordinates>
</Point>
</Placemark>
</kml>
2 番目の例では、ツアー内で <gx:balloonVisibility> を使用しています。ツアー中、いくつかのバルーンが開いたり閉じたりして、ユーザーに情報を表示します。
balloonvisibility_tourexample.kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<name>balloonVisibility Example</name>
<open>1</open>
<gx:Tour>
<name>Play me</name>
<gx:Playlist>
<gx:FlyTo>
<gx:duration>8.0</gx:duration>
<gx:flyToMode>bounce</gx:flyToMode>
<LookAt>
<longitude>-119.748584</longitude>
<latitude>33.736266</latitude>
<altitude>0</altitude>
<heading>-9.295926</heading> <tilt>84.0957450</tilt> <range>4469.850414</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt> </gx:FlyTo>
<gx:AnimatedUpdate>
<gx:duration>0.0</gx:duration>
<Update>
<targetHref/>
<Change>
<Placemark targetId="underwater1">
<gx:balloonVisibility>1</gx:balloonVisibility>
</Placemark>
</Change>
</Update>
</gx:AnimatedUpdate>
<gx:Wait>
<gx:duration>4.0</gx:duration>
</gx:Wait> <gx:AnimatedUpdate>
<gx:duration>0.0</gx:duration>
<Update>
<targetHref/>
<Change>
<Placemark targetId="underwater1">
<gx:balloonVisibility>0</gx:balloonVisibility>
</Placemark>
</Change>
</Update>
</gx:AnimatedUpdate>
<gx:FlyTo>
<gx:duration>3</gx:duration>
<gx:flyToMode>smooth</gx:flyToMode>
<LookAt>
<longitude>-119.782630</longitude>
<latitude>33.862855</latitude>
<altitude>0</altitude>
<heading>-9.314858</heading> <tilt>84.117317</tilt> <range>6792.665540</range>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
</gx:FlyTo>
<gx:AnimatedUpdate>
<gx:duration>0.0</gx:duration>
<Update>
<targetHref/>
<Change>
<Placemark targetId="underwater2">
<gx:balloonVisibility>1</gx:balloonVisibility>
</Placemark>
</Change>
</Update>
</gx:AnimatedUpdate>
<gx:Wait>
<gx:duration>4.0</gx:duration>
</gx:Wait> <gx:AnimatedUpdate>
<gx:duration>0.0</gx:duration>
<Update>
<targetHref/>
<Change>
<Placemark targetId="underwater2">
<gx:balloonVisibility>0</gx:balloonVisibility>
</Placemark>
</Change>
</Update>
</gx:AnimatedUpdate>
<gx:FlyTo>
<gx:duration>3</gx:duration>
<gx:flyToMode>smooth</gx:flyToMode>
<LookAt>
<longitude>-119.849578</longitude>
<latitude>33.968515</latitude>
<altitude>0</altitude>
<heading>-173.948935</heading> <tilt>23.063392</tilt> <range>3733.666023</range>
<altitudeMode>relativeToGround</altitudeMode>
</LookAt>
</gx:FlyTo>
<gx:AnimatedUpdate>
<gx:duration>0.0</gx:duration>
<Update>
<targetHref/>
<Change>
<Placemark targetId="onland">
<gx:balloonVisibility>1</gx:balloonVisibility>
</Placemark>
</Change>
</Update>
</gx:AnimatedUpdate>
<gx:Wait>
<gx:duration>4.0</gx:duration>
</gx:Wait>
</gx:Playlist>
</gx:Tour>
<Placemark id="underwater1">
<name>Underwater off the California Coast</name>
<description> The tour begins near the Santa Cruz Canyon, off the coast of California, USA. </description>
<Point>
<gx:altitudeMode>clampToSeaFloor</gx:altitudeMode>
<coordinates>-119.749531,33.715059,0</coordinates>
</Point>
</Placemark>
<Placemark id="underwater2">
<name>Still swimming...</name>
<description>We're about to leave the ocean, and visit the coast...</description>
<Point>
<gx:altitudeMode>clampToSeaFloor</gx:altitudeMode>
<coordinates>-119.779550,33.829268,0</coordinates>
</Point>
</Placemark>
<Placemark id="onland">
<name>The end</name>
<description> <![CDATA[The end of our simple tour. Use <gx:balloonVisibility>1</gx:balloonVisibility> to show description balloons.]]> </description>
<Point>
<coordinates>-119.849578,33.968515,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
<Camera id="ID">
<!-- inherited from AbstractView element -->
<TimePrimitive>...</TimePrimitive> <!-- gx:TimeSpan or gx:TimeStamp -->
<!-- specific to Camera -->
<longitude>0</longitude> <!-- kml:angle180 -->
<latitude>0</latitude> <!-- kml:angle90 -->
<altitude>0</altitude> <!-- double -->
<heading>0</heading> <!-- kml:angle360 -->
<tilt>0</tilt> <!-- kml:anglepos180 -->
<roll>0</roll> <!-- kml:angle180 -->
<altitudeMode>clampToGround</altitudeMode>
<!-- kml:altitudeModeEnum: relativeToGround, clampToGround, or absolute -->
<!-- or, gx:altitudeMode can be substituted: clampToSeaFloor, relativeToSeaFloor -->
</Camera>
シーンを表示する仮想カメラを定義します。この要素では、地表に対するカメラの位置と視点の方向を定義します。カメラの位置は、<longitude>、<latitude>、<altitude> と、<altitudeMode> または <gx:altitudeMode> のどちらかで定義します。カメラの視点の方向は、<heading>、<tilt>、<roll> で定義します。<Camera> は、あらゆる Feature や <NetworkLinkControl> の子要素になれます。親要素は <Camera> と <LookAt> を同時に持つことはできません。
<Camera> を使用すると、6 つの自由度で完全にコントロールできるので、カメラを空間に配置して X 軸、Y 軸、Z 軸を中心に回転させることができます。最も重要なのは、カメラのビューを傾けることができる点です。つまり、地平線上から空を見上げることも可能です。
また、<Camera> には、TimePrimitive(<gx:TimeSpan> または <gx:TimeStamp>)を組み込むことができます。カメラの時間の値は、過去の画像、太陽の光、タイムスタンプが付けられているアイテムの表示に影響します。詳しくは、デベロッパー ガイドの時間とアニメーションの章のAbstractView での時間の指定 をご覧ください。
Feature または <NetworkLinkControl> 内で、<Camera> オブジェクトか <LookAt> オブジェクトのどちらか(1 つのオブジェクトに両方は使用できません)を使用します。<Camera> オブジェクトは、見る側の位置と向きで視点を定義します。<Camera> オブジェクトを使用すると、地表上ではないビューを指定できます。<LookAt> オブジェクトでは、表示対象に向けられた視点を定義します。<LookAt> オブジェクトは <Camera> オブジェクトよりもスコープが制限され、通常は視点の方向が地表と交差する必要があります。
次の図は、仮想カメラの X 軸、Y 軸、Z 軸を表しています。

転換の順序は重要です。カメラは、デフォルトでは -Z 軸に沿って Earth をまっすぐ見下した状態で配置されます。回転する前に、カメラは Z 軸に沿って <altitude> まで移動します。転換の順序は次のとおりです。
回転が適用されるたびに、2 つのカメラ軸の向きが変わりますので注意してください。
<!-- abstract element; do not create --> <!-- ColorStyle id="ID" --> <!-- IconStyle,LabelStyle,LineStyle,PolyStyle --> <color>ffffffff</color> <!-- kml:color --> <colorMode>normal</colorMode> <!-- kml:colorModeEnum: normal or random --> <!-- /ColorStyle -->
これは抽象的な要素であり、KML ファイル内で直接使用することはできません。この要素は、拡張されたスタイル タイプの色や色モードを指定する要素を提供します。
<!-- abstract element; do not create --> <!-- Container id="ID" --> <!-- Document,Folder --> <!-- inherited from Feature element --> <name>...</name> <!-- string --> <visibility>1</visibility> <!-- boolean --> <open>0</open> <!-- boolean --> <address>...</address> <!-- string --> <AddressDetails xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">...
</AddressDetails> <!-- string --> <phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string --> <description>...</description> <!-- string --> <AbstractView>...</AbstractView> <!-- LookAt or Camera --> <TimePrimitive>...</TimePrimitive> <styleUrl>...</styleUrl> <!-- anyURI --> <StyleSelector>...</StyleSelector> <Region>...</Region> <Metadata>...</Metadata> <atom:author>...<atom:author> <!-- xmlns:atom="http://www.w3.org/2005/Atom" --> <atom:link>...</atom:link> <!-- specific to Container -->
<!-- 0 or more Features --> <!-- /Container -->
これは抽象的な要素であり、KML ファイル内で直接使用することはできません。Container 要素では、1 つ以上の Feature を保持し、ネストした階層を作成できます。
<Document id="ID"> <!-- inherited from Feature element --> <name>...</name> <!-- string --> <visibility>1</visibility> <!-- boolean --> <open>0</open> <!-- boolean --> <atom:author>...<atom:author> <!-- xmlns:atom --> <atom:link>...</atom:link> <!-- xmlns:atom --> <address>...</address> <!-- string --> <xal:AddressDetails>...</xal:AddressDetails> <!-- xmlns:xal -->
<phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string --> <description>...</description> <!-- string --> <AbstractView>...</AbstractView> <!-- Camera or LookAt --> <TimePrimitive>...</TimePrimitive> <styleUrl>...</styleUrl> <!-- anyURI --> <StyleSelector>...</StyleSelector> <Region>...</Region> <Metadata>...</Metadata> <!-- deprecated in KML 2.2 --> <ExtendedData>...</ExtendedData> <!-- new in KML 2.2 --> <!-- specific to Document --> <!-- 0 or more Schema elements --> <!-- 0 or more Feature elements --> </Document>
Document は、アイテムとスタイルのコンテナです。KML ファイルで共有スタイルを使用する場合は、この要素が必要になります。共有スタイルを使用することをおすすめします。必要な手順は次のとおりです:
Document 内の Feature は共有スタイルを継承しません。
各 Feature では、使用するスタイルを <styleUrl> 要素に指定して、明示的に参照する必要があります。Document に Style(ListStyle など)を適用する場合は、Document 自体のスタイルを <styleUrl> で明示的に参照する必要があります。次に例を挙げます:
<Document> <Style id="myPrettyDocument"> <ListStyle> ... </ListStyle> </Style> <styleUrl#myPrettyDocument"> ... </Document>
共有スタイルを Folder で使用しないでください。
次の例は、共有スタイルの使用について示しています。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Document.kml</name>
<open>1</open> <Style id="exampleStyleDocument">
<LabelStyle>
<color>ff0000cc</color>
</LabelStyle>
</Style>
<Placemark>
<name>Document Feature 1</name>
<styleUrl>#exampleStyleDocument</styleUrl>
<Point>
<coordinates>-122.371,37.816,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Document Feature 2</name>
<styleUrl>#exampleStyleDocument</styleUrl>
<Point>
<coordinates>-122.370,37.817,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
| この要素は、OGC KML 2.2 標準 の拡張要素で、Google Earth 5.0 でサポートされています。詳しくはこちらをご覧ください。 |
<gx:duration>0.0</gx:duration> <!-- double -->
<gx:duration> は、イベントのタイムスパンを指定することで、gx:TourPrimitive を機能拡張します。この時間は、XML の double データ型を使用して、秒数で指定します。
gx:duration が <gx:FlyTo> 要素に組み込まれている場合、この gx:duration は、ブラウザが前のポイントから指定したポイントにジャンプする時間の長さを指定します。
<gx:FlyTo>
<gx:flyToMode>bounce</gx:flyToMode>
<gx:duration>10.2</gx:duration>
<!-- AbstractView -->
...
<!-- /AbstractView -->
</gx:FlyTo>
更新にかける時間の長さを指定します。integer、float、color 型のフィールドの場合、指定した時間で元の値から新しい値までスムーズにアニメーション表示されます。boolean や string など、値を少しずつ変更することができない値の場合、指定した時間の最後に値が更新されます。
<gx:AnimatedUpdate>
<gx:duration>5.0</gx:duration>
<Update>
....
</Update>
</gx:AnimatedUpdate>
<ExtendedData>
<Data name="string">
<displayName>...</displayName> <!-- string -->
<value>...</value> <!-- string -->
</Data> <SchemaData schemaUrl="anyURI">
<SimpleData name=""> ... </SimpleData> <!-- string -->
</SchemaData> <namespace_prefix:other>...</namespace_prefix:other> </ExtendedData>
ExtendedData 要素は、カスタム データを KML Feature(NetworkLink、Placemark、GroundOverlay、PhotoOverlay、ScreenOverlay、Document、Folder)に追加するための 3 つの手法を提供します。これらの手法は次のとおりです。
これらの手法は、1 つの KML ファイルまたは Feature 内でさまざまなデータに対して組み合わせて使用できます。
詳しくは、KML トピックのカスタム データの追加をご覧ください。"
schemaUrl="http://host.com/PlacesIHaveLived.kml#my-schema-id"
schemaUrl="AnotherFile.kml#my-schema-id"
schemaUrl="#schema-id" <!-- same file -->
<Placemark>
<name>Easy trail</name>
<ExtendedData>
<SchemaData schemaUrl="#TrailHeadTypeId">
<SimpleData name="TrailHeadName">Pi in the sky</SimpleData>
<SimpleData name="TrailLength">3.14159</SimpleData>
<SimpleData name="ElevationGain">10</SimpleData>
</SchemaData>
</ExtendedData>
<Point>
<coordinates>-122.000,37.002</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Difficult trail</name>
<ExtendedData>
<SchemaData schemaUrl="#TrailHeadTypeId">
<SimpleData name="TrailHeadName">Mount Everest</SimpleData>
<SimpleData name="TrailLength">347.45</SimpleData>
<SimpleData name="ElevationGain">10000</SimpleData>
</SchemaData>
</ExtendedData>
<Point>
<coordinates>-122.000,37.002</coordinates>
</Point>
</Placemark>
<ExtendedData xmlns:prefix="camp">
<camp:number>14</camp:number>
<camp:parkingSpaces>2</camp:parkingSpaces>
<camp:tentSites>4</camp:tentSites>
</ExtendedData>
<!-- abstract element; do not create -->
<!-- Feature id="ID" --> <!-- Document,Folder,
NetworkLink,Placemark,
GroundOverlay,PhotoOverlay,ScreenOverlay -->
<name>...</name> <!-- string -->
<visibility>1</visibility> <!-- boolean -->
<open>0</open> <!-- boolean -->
<atom:author>...<atom:author> <!-- xmlns:atom -->
<atom:link>...</atom:link> <!-- xmlns:atom -->
<address>...</address> <!-- string -->
<xal:AddressDetails>...</xal:AddressDetails> <!-- xmlns:xal -->
<phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string -->
<description>...</description> <!-- string -->
<AbstractView>...</AbstractView> <!-- Camera or LookAt -->
<TimePrimitive>...</TimePrimitive> <!-- TimeStamp or TimeSpan -->
<styleUrl>...</styleUrl> <!-- anyURI -->
<StyleSelector>...</StyleSelector>
<Region>...</Region>
<Metadata>...</Metadata> <!-- deprecated in KML 2.2 -->
<ExtendedData>...</ExtendedData> <!-- new in KML 2.2 -->
<-- /Feature -->
これは抽象的な要素であり、KML ファイル内で直接使用することはできません。次の図は、Feature の要素がどのように Google Earth に表示されるかを示しています。
KML 2.2 は、KML ファイルに作成者と関連する Web サイトについてのデータを追加する新しい要素をサポートしています。この情報は、Google Earth などの Earth ブラウザや Google マップなどの他のアプリケーションで、地理情報の検索結果に表示されます。KML で使用される帰属要素は次のとおりです:
これらの要素は、Atom 配信フォーマット(Atom Syndication Format)で定義されています。このフォーマットの仕様については http://atompub.org をご覧ください(以下のサンプルを参照)。
<atom:author> 要素は <atom:name> の親要素で、KML アイテムの作成者を指定します。
xmlns:atom="http://www.w3.org/2005/Atom"(以下のサンプルを参照)。xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"説明バルーンに表示されるユーザー定義コンテンツ。
<description> 要素でサポートされるコンテンツは、Google Earth 4.3 と 5.0 で変わっています。バージョンごとに固有の情報は下記をご覧ください。その後に両方のバージョンで共通の情報が記載されています。
Google Earth 5.0
Google Earth 5.0 では、プレーン テキスト コンテンツの他に、HTML と JavaScript を説明バルーン内に使用できます。description タグのコンテンツは WebKit オープンソース ウェブブラウザ エンジンによってレンダリングされ、WebKit ベースのブラウザで表示するときと同じように表示されます。
全般的な制限事項
ローカル ファイルへのリンクは通常は認められていません。この制限により、悪意のあるコードがシステムに損傷を与えたり、データにアクセスしたりすることを防ぐことができます。ローカル ファイルへのアクセスを認める場合は、[環境設定] > [目印のバルーンにローカル ファイルと個人データへのアクセスを許可する] をオンにします。<img> タグ内で指定する場合は、ローカル ファイルシステム上の画像ファイルへのリンクは常に認められます。
KMZ ファイルに圧縮されているコンテンツは、ローカル ファイルシステム上にある場合でもアクセスできます。
iFrame 内のコンテンツで設定または読み取りした Cookie であっても、Cookie は一切使用できません。このルールに例外は認められません。
Doctype 宣言は無視されます。
HTML
HTML のほとんどは、WebKit ブラウザで表示するときと同じようにレンダリングされます。
KML に直接記述されている HTML に含まれている target は無視されます。このようなリンクはすべて、target が _blank に設定されたかのように開きます。指定した target はすべて無視されます。
ただし、iFrame 内の HTML や、JavaScript または DHTML で動的に生成される HTML では、target="_self" がデフォルトとして使用されます。その他の target の指定もサポートされています。
KMZ ファイルのコンテンツ、ローカル アンカー リンク、;flyto メソッドは、iFrame 内の HTML から target にすることはできません。
JavaScript
大部分の Javascript はサポートされています。ダイアログ ボックスは作成できません。そのため、alert() や prompt() のような関数は表示されません。ただし、他のエラーや例外と同様に、システム コンソールには表示されます。
CSS
CSS は使用できます。標準的な Web ブラウザで CSS を使用するときと同様に、CSS を使用してテキストやページ要素のスタイルを指定したり、説明バルーンの大きさやデザインをコントロールしたりできます。Google Earth による説明バルーン コンテンツ内の URL の処理方法のために、「url」関数(background-image: url('http://www.example.com/background.png'); など)を使用した CSS 宣言は正しく動作しません。このような宣言は、次のようにインラインで行う必要があります:
<body style="url('http://www.example.com/background.png')">
Google Earth 4.3
<description> 要素は、プレーン テキストの他に、表を含む HTML の書式設定要素のサブセットをサポートします(下記の KML の例を参照)。この要素では、動的ページ マークアップ(PHP、JSP、ASP)、スクリプト言語(VBScript、Javascript)、アプリケーション言語(Java、Python)などの他の Web ベース テクノロジーはサポートされません。Google Earth リリース 4.2 では、動画がサポートされています(下記の例を参照)。
共通の情報
description に HTML マークアップが何も指定されていない場合は、Google Earth によってフォーマットが行われ、改行が <br> で置き換えられて、URL はアンカータグで処理されます。World Wide Web で有効な URL 文字列は、自動的にその URL へのハイパーリンクに変換されます(例: http://www.google.com)。したがって、ユーザーが URL を <a href="http://.."></a> タグで囲んで簡易リンクを作成する必要はありません。
HTML を使用して特定の語にハイパーリンクを設定する場合や HTML に画像を含める場合は、HTML のエンティティ参照または CDATA 要素を使用して、山かっこやアポストロフィ、その他の特殊文字をエスケープする必要があります。CDATA 要素を使用すると、XML パーサーはかっこ内で使用されている特殊文字を無視します。この要素の形式は次のとおりです:
<![CDATA[ special characters here ]]>
CDATA 要素を使用しない場合は、エンティティ参照を使用してすべての特殊文字を置換します。
<description> <![CDATA[ This is an image <img src="icon.jpg">
and we have a link http://www.google.com. ]]> </description>
KML は、<a> 要素の 2 つの属性 href と type の使用をサポートしています。
アンカー要素 <a> には、URL を指定する href 属性があります。
href が KML ファイルで、ファイル拡張子が .kml または .kmz の場合、ユーザーがクリックすると、Google Earth はそのファイルを直接読み込みます。Google Earth が対応していない拡張子(.html など)で URL が終わっている場合、その URL はブラウザに送られます。
href には、フラグメント付きの URL(URL の後に # 記号と KML 識別子が追加されているもの)を指定できます。フラグメント付きの URL を含むリンクをユーザーがクリックした場合、デフォルトでブラウザはそのフラグメントに一致する ID を持つ Feature にジャンプします。Feature に LookAt または Camera 要素が含まれる場合、Feature は指定された視点から表示されます。
次の 3 つの文字列のうち 1 つをフラグメント付きの URL の後に追加すると、さらに動作を指定できます:
たとえば、次のコードでは、ファイル CraftsFairs.kml を開き、ID が「Albuquerque」の目印にジャンプして、バルーンを開きます:
<description> <![CDATA[
<a href="http://myServer.com/CraftsFairs.kml#Albuquerque;balloonFlyto">
One of the Best Art Shows in the West</a> ]]> </description>
type 属性は、拡張子が .kml または .kmz ではない href を KML のコンテキストで解釈する必要がある場合に、<a> 要素内で使用します。次のように指定します:
type="application/vnd.google-earth.kml+xml"
たとえば、次の URL では、ファイル拡張子が .php であってもこのファイルを読み込むよう、type 属性を使用して Google Earth に通知しています:
<a href="myserver.com/cgi-bin/generate-kml.php#placemark123"
type="application/vnd.google-earth.kml+xml">
<styleUrl>#myIconStyleID</styleUrl>
<styleUrl>http://someserver.com/somestylefile.xml#restaurant</styleUrl>
<styleUrl>eateries.kml#my-lunch-spot</styleUrl>
Google Earth 4.3 の <description> 要素でサポートされているすべての HTML 要素を次の例に示します。Google Earth 5.0 では、HTML と JavaScript は完全にサポートされています。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>Feature.kml</name> <Snippet maxLines="4">
The snippet is a way of
providing an alternative
description that will be
shown in the List view.
</Snippet>
<description>
<![CDATA[
Styles: <i>Italics</i>, <b>Bold</b>, <u>Underlined</u>,
<s>Strike Out</s>, subscript<sub>subscript</sub>,
superscript<sup>superscript</sup>,
<big>Big</big>, <small>Small</small>, <tt>Typewriter</tt>,
<em>Emphasized</em>, <strong>Strong</strong>, <code>Code</code>
<hr />
Fonts:
<font color="red">red by name</font>,
<font color="#408010">leaf green by hexadecimal RGB</font>,
<font size=1>size 1</font>, <font size=2>size 2</font>,
<font size=3>size 3</font>, <font size=4>size 4</font>,
<font size=5>size 5</font>, <font size=6>size 6</font>,
<font size=7>size 7</font>,
<font face=times>Times</font>,
<font face=verdana>Verdana</font>,
<font face=arial>Arial</font>
<br/>
<hr />
Links:
<a href="http://doc.trolltech.com/3.3/qstylesheet.html">
QT Rich Text Rendering
</a>
<br />
<hr />
Alignment:
<br />
<p align=left>left</p><p align=center>center</p>
<p align=right>right</p>
<hr />
Ordered Lists:
<br />
<ol><li>First</li><li>Second</li><li>Third</li></ol>
<ol type="a"><li>First</li><li>Second</li><li>Third</li></ol>
<ol type="A"><li>First</li><li>Second</li><li>Third</li></ol>
<hr />
Unordered Lists:
<br />
<ul><li>A</li><li>B</li><li>C</li></ul>
<ul type="circle"><li>A</li><li>B</li><li>C</li></ul>
<ul type="square"><li>A</li><li>B</li><li>C</li></ul>
<hr />
Definitions:
<br />
<dl>
<dt>Scrumpy</dt>
<dd>Hard English cider from the west country</dd>
<dt>Pentanque</dt>
<dd>A form of boules where the goal is to throw metal ball as
close as possible to a jack</dd>
</dl>
<hr />
Block Quote:
<br />
<blockquote>
We shall not cease from exploration<br />
And the end of all our exploring<br />
Will be to arrive where we started<br />
And know the place for the first time
</blockquote>
<br />
<hr />
Centered:
<br />
<center>See, I have a Rhyme assisting<br />
my feeble brain,<br />
its tasks oft-times resisting!</center>
<hr />
Headings:
<br />
<h1>Header 1</h1>
<h2>Header 2</h2>
<h3>Header 3</h3>
<h3>Header 4</h4>
<h3>Header 5</h5>
<hr />
Images:
<br />
<img src="http://earth.google.com/images/googleearth.gif" />
<br />
<i>Scaled image</i>
<br />
<img src="http://earth.google.com/images/googleearth.gif"
width="100" />
<br />
<hr />
Tables:
<table border="1" padding="3" width="300">
<tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr>
<tr><td>a</td><td>b</td><td>c</td><td>d</td><td>e</td></tr>
</table>
]]>
</description> <Point>
<coordinates>-122.378927,37.826793,0</coordinates>
</Point>
</Placemark>
</kml>
Atom 名前空間の <atom:author>、<atom:name>、<atom:link> 要素の使用方法を次の例に示します。この名前空間は <kml> 要素内で参照する必要があります。
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<atom:author>
<atom:name>J. K. Rowling</atom:name>
</atom:author>
<atom:link href="http://www.harrypotter.com" />
<Placemark>
<name>Hogwarts</name>
<Point>
<coordinates>1,1</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Little Hangleton</name>
<Point>
<coordinates>1,2</coordinates>
</Point>
</Placemark>
</Document>
</kml>
バルーンに Flash 動画を埋め込む方法を次の例に示します。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document> <name>Video Example</name>
<Style id="sn_blue-dot_copy3">
<IconStyle>
<Icon>
<href>http://www.google.com/intl/en_us/mapfiles/ms/icons/blue-dot.png</href>
</Icon>
</IconStyle>
</Style>
<Placemark>
<name>Placemark</name>
<description>
<![CDATA[<div style="font-size:larger">
<div>
<div style="width: 212px; font-size: 12px;">
<b>The Spaghetti Film</b>
</div>
<div style="font-size: 11px;">
<a target="_blank" href="http://www.youtube.com/?v=FICUvrVlyXc">
http://www.youtube.com/?v=FICUvrVlyXc</a><br>
</div><br>
<div style="margin-left: auto; margin-right:auto;">
<object height="175" width="212">
<param value="http://www.youtube.com/v/FICUvrVlyXc" name="movie">
<param value="transparent" name="wmode">
<embed wmode="transparent" type="application/x-shockwave-flash"
src="http://www.youtube.com/v/FICUvrVlyXc" height="175"
width="212">
</object>
</div>
</div>
</div>
<div style="font-size: smaller; margin-top: 1em;">Saved from
<a href="http://maps.google.com/ig/add?synd=mpl&pid=mpl&moduleurl=
http:%2F%2Fwww.google.com%2Fig%2Fmodules%2Fmapplets-youtube.xml&hl=en&gl=us">
YouTubeVideos</a>
</div>
]]>
</description>
<styleUrl>#sn_blue-dot_copy3</styleUrl>
<Point>
<coordinates>-93.47875999999999,45.083248,0</coordinates>
</Point>
</Placemark>
</Document> </kml>
| この要素は、OGC KML 2.2 標準 の拡張要素で、Google Earth 5.0 でサポートされています。詳しくはこちらをご覧ください。 |
<gx:FlyTo>
<gx:duration>0.0</gx:duration> <!-- double -->
<gx:flyToMode>bounce</gx:duration> <!-- smooth or bounce -->
<!-- AbstractView --> <!-- Camera or LookAt -->
...
<!-- /AbstractView -->
</gx:FlyTo>
<gx:FlyTo> は、ツアー中にブラウザが移動する空間内のポイントを指定します。この要素には 1 つの AbstractView を指定する必要があります。現在のポイントから定義したポイントまで移動する時間と方法を指定する <gx:duration> 要素と <gx:flyToMode> 要素を指定することをおすすめします。
<gx:flyToMode> には、smooth と bounce の 2 つの値を指定できます。
<gx:flyToMode>bounce</gx:flyToMode><gx:Wait><gx:FlyTo>
<gx:duration>2.55</gx:duration>
<gx:flyToMode>smooth</gx:flyToMode>
<Camera>
<longitude>-113.084448</longitude>
<latitude>36.567081</latitude>
<altitude>41277.571403</altitude>
<heading>116.150227</heading>
<altitudeMode>absolute</altitudeMode>
</Camera>
</gx:FlyTo>
<Folder id="ID"> <!-- inherited from Feature element --> <name>...</name> <!-- string --> <visibility>1</visibility> <!-- boolean --> <open>0</open> <!-- boolean --> <atom:author>...<atom:author> <!-- xmlns:atom --> <atom:link>...</atom:link> <!-- xmlns:atom --> <address>...</address> <!-- string --> <xal:AddressDetails>...</xal:AddressDetails> <!-- xmlns:xal -->
<phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string --> <description>...</description> <!-- string --> <AbstractView>...</AbstractView> <!-- Camera or LookAt --> <TimePrimitive>...</TimePrimitive> <styleUrl>...</styleUrl> <!-- anyURI --> <StyleSelector>...</StyleSelector> <Region>...</Region> <Metadata>...</Metadata> <!-- deprecated in KML 2.2 --> <ExtendedData>...</ExtendedData> <!-- new in KML 2.2 --> <!-- specific to Folder --> <!-- 0 or more Feature elements --> </Folder>
Folder は、他の Feature(Folder、Placemark、NetworkLink、Overlay)を階層的に配置するために使用します。Feature は、自身とそのすべての上位要素が表示可能である場合のみ表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Folder>
<name>Folder.kml</name> <open>1</open>
<description>
A folder is a container that can hold multiple other objects
</description>
<Placemark>
<name>Folder object 1 (Placemark)</name>
<Point>
<coordinates>-122.377588,37.830266,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Folder object 2 (Polygon)</name>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-122.377830,37.830445,0
-122.377576,37.830631,0
-122.377840,37.830642,0
-122.377830,37.830445,0
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
<Placemark>
<name>Folder object 3 (Path)</name>
<LineString>
<tessellate>1</tessellate>
<coordinates>
-122.378009,37.830128,0 -122.377885,37.830379,0
</coordinates>
</LineString>
</Placemark>
</Folder>
</kml>
<!-- abstract element; do not create -->
<!-- Geometry id="ID" --> <!-- Point,LineString,LinearRing,
Polygon,MultiGeometry,Model -->
<!-- /Geometry -->
これは抽象的な要素であり、KML ファイル内で直接使用することはできません。この要素は、派生する Geometry オブジェクトすべてに対するプレースホルダ オブジェクトとなります。
<GroundOverlay id="ID"> <!-- inherited from Feature element --> <name>...</name> <!-- string --> <visibility>1</visibility> <!-- boolean --> <open>0</open> <!-- boolean --> <atom:author>...<atom:author> <!-- xmlns:atom --> <atom:link>...</atom:link> <!-- xmlns:atom --> <address>...</address> <!-- string --> <xal:AddressDetails>...</xal:AddressDetails> <!-- xmlns:xal -->
<phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string --> <description>...</description> <!-- string --> <AbstractView>...</AbstractView> <!-- Camera or LookAt --> <TimePrimitive>...</TimePrimitive> <styleUrl>...</styleUrl> <!-- anyURI --> <StyleSelector>...</StyleSelector> <Region>...</Region> <Metadata>...</Metadata> <!-- deprecated in KML 2.2 --> <ExtendedData>...</ExtendedData> <!-- new in KML 2.2 --> <!-- inherited from Overlay element --> <color>ffffffff</color> <!-- kml:color --> <drawOrder>0</drawOrder> <!-- int --> <Icon>...</Icon> <!-- specific to GroundOverlay --> <altitude>0</altitude> <!-- double --> <altitudeMode>clampToGround</altitudeMode> <!-- kml:altitudeModeEnum: clampToGround or absolute --> <!-- or, substitute gx:altitudeMode: clampToSeaFloor or relativeToSeaFloor --> <LatLonBox> <north>...</north> <! kml:angle90 --> <south>...</south> <! kml:angle90 --> <east>...</east> <! kml:angle180 --> <west>...</west> <! kml:angle180 --> <rotation>0</rotation> <! kml:angle180 --> </LatLonBox> </GroundOverlay>
この要素は、地形に貼り付けるイメージ オーバーレイを描画します。<Icon> の子要素の <href> は、オーバーレイとして使用する画像を指定します。このファイルには、ローカル ファイルシステムか ウェブ サーバーのどちらかを指定できます。この要素を省略した場合や、<href> を指定しなかった場合は、地面オーバーレイで定義した color と LatLonBox 境界を使用した長方形が描画されます。
<LatLonBox> <north>48.25475939255556</north> <south>48.25207367852141</south> <east>-90.86591508839973</east> <west>-90.8714285289695</west> <rotation>39.37878630116985</rotation> </LatLonBox>
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<GroundOverlay>
<name>GroundOverlay.kml</name>
<color>7fffffff</color>
<drawOrder>1</drawOrder>
<Icon>
<href>http://www.google.com/intl/en/images/logo.gif</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>86400</refreshInterval>
<viewBoundScale>0.75</viewBoundScale>
</Icon>
<LatLonBox>
<north>37.83234</north>
<south>37.832122</south>
<east>-122.373033</east>
<west>-122.373724</west>
<rotation>45</rotation>
</LatLonBox>
</GroundOverlay>
</kml>
<Icon id="ID">
<!-- specific to Icon -->
<href>...</href> <!-- anyURI -->
<refreshMode>onChange</refreshMode>
<!-- kml:refreshModeEnum: onChange, onInterval, or onExpire -->
<refreshInterval>4</refreshInterval> <!-- float -->
<viewRefreshMode>never</viewRefreshMode>
<!-- kml:viewRefreshModeEnum: never, onStop, onRequest, onRegion -->
<viewRefreshTime>4</viewRefreshTime> <!-- float -->
<viewBoundScale>1</viewBoundScale> <!-- float -->
<viewFormat>...</viewFormat> <!-- string -->
<httpQuery>...</httpQuery> <!-- string -->
</Icon>
アイコン スタイルやオーバーレイに関連付けられた画像を定義します。<Icon> は <Link> と同じ子要素を持ちます。必須の <href> 子要素は、オーバーレイや目印のアイコンとして使用する画像の場所を定義します。この場所には、ローカル ファイルシステムかリモート ウェブ サーバーのどちらかを指定できます。
<Icon> <href>Sunset.jpg</href> </Icon>
<IconStyle id="ID">
<!-- inherited from ColorStyle -->
<color>ffffffff</color> <!-- kml:color -->
<colorMode>normal</colorMode> <!-- kml:colorModeEnum:normal or random -->
<!-- specific to IconStyle -->
<scale>1</scale> <!-- float -->
<heading>0</heading> <!-- float -->
<Icon>
<href>...</href>
</Icon>
<hotSpot x="0.5" y="0.5"
xunits="fraction" yunits="fraction"/> <!-- kml:vec2 -->
</IconStyle>
Google Earth の [場所] パネルや 3D ビューアでの目印のポイントに対するアイコンの描画方法を指定します。<Icon> 要素はアイコンの画像を指定します。<scale> 要素は、アイコンの x、y 方向のスケーリングを指定します。<IconStyle> 要素の <color> 要素で指定した色は、<Icon> の色とミックスされます。
注: <geomScale> タグの使用は廃止予定です。代わりに、<scale> を使用してください。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Style id="randomColorIcon">
<IconStyle>
<color>ff00ff00</color>
<colorMode>random</colorMode>
<scale>1.1</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pal3/icon21.png</href>
</Icon>
</IconStyle>
</Style>
<Placemark>
<name>IconStyle.kml</name>
<styleUrl>#randomColorIcon</styleUrl>
<Point>
<coordinates>-122.36868,37.831145,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
<kml xmlns="http://www.opengis.net/kml/2.2" hint="target=sky"> ... </kml>
KML ファイルのルート要素を指定します。この要素は必須です。ファイルの先頭部分の XML 宣言に従います。hint 属性は、Google Earth でファイルを天体データとして表示させるための信号として使用します。
<kml> 要素には、ファイル内で参照される外部 XML スキーマの名前空間を指定することもできます。
基本的な <kml> 要素には、0 または 1 つの Feature と 0 または 1 つの NetworkLinkControl が含まれます:
<kml xmlns="http://www.opengis.net/kml/2.2"> <NetworkLinkControl> ... </NetworkLinkControl> <!-- 0 or 1 Feature elements --> </kml>
<LabelStyle id="ID"> <!-- inherited from ColorStyle --> <color>ffffffff</color> <!-- kml:color --> <colorMode>normal</colorMode> <!-- kml:colorModeEnum: normal or random --> <!-- specific to LabelStyle --> <scale>1</scale> <!-- float --> </LabelStyle>
3D ビューアでの Feature の <name> の描画方法を指定します。カスタム色、色モード、ラベル(名前)のスケールを指定できます。
注: <labelColor> タグは廃止予定です。代わりに、<LabelStyle> を使用してください。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Style id="randomLabelColor">
<LabelStyle>
<color>ff0000cc</color>
<colorMode>random</colorMode>
<scale>1.5</scale>
</LabelStyle>
</Style>
<Placemark>
<name>LabelStyle.kml</name>
<styleUrl>#randomLabelColor</styleUrl>
<Point>
<coordinates>-122.367375,37.829192,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
| この要素は、OGC KML 2.2 標準 の拡張要素で、Google Earth 5.0 でサポートされています。詳しくはこちらをご覧ください。 |
<GroundOverlay id="ID">
...
<Icon>...</Icon>
<altitude>0</altitude>
<altitudeMode>clampToGround</altitudeMode> <!-- or absolute -->
<!-- can substitute <gx:altitudeMode>clampToSeaFloor</gx:altitudeMode> -->
<gx:LatLonQuad>
<coordinates>...</coordinates> <!-- four lon,lat tuples -->
</gx:LatLonQuad>
</GroundOverlay>
長方形でない四辺形の地面オーバーレイを使用できるようにします。
オーバーレイ領域を定義する四辺形の四隅の座標を指定します。4 つの座標を必ず指定する必要があり、それぞれに経度と緯度を表す浮動小数点数値を指定します。各データは空白で区切ります。1 つのデータ内に空白を含めないでください。座標は、オーバーレイ画像の左下隅から反時計回りに指定する必要があります。これらの角は凸型である必要があります。
座標に 3 番目の値(標高)を指定した場合、その値は無視されます。標高は、<GroundOverlay> を拡張する <altitude> と <altitudeMode>(または <gx:altitudeMode>)を使用して設定します。使用できる <altitudeMode> は、absolute、clampToGround、clampToSeaFloor です。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"> <GroundOverlay> <name>gx:LatLonQuad Example</name> <Icon> <href>http://code.google.com/apis/kml/documentation/Images/rectangle.gif</href> <viewBoundScale>0.75</viewBoundScale> </Icon> <gx:LatLonQuad> <coordinates> 81.601884,44.160723 83.529902,43.665148 82.947737,44.248831 81.509322,44.321015 </coordinates> </gx:LatLonQuad> </GroundOverlay> </kml>
<LinearRing id="ID">
<!-- specific to LinearRing -->
<extrude>0</extrude> <!-- boolean -->
<tessellate>0</tessellate> <!-- boolean -->
<altitudeMode>clampToGround</altitudeMode>
<!-- kml:altitudeModeEnum: clampToGround, relativeToGround, or absolute -->
<!-- or, substitute gx:altitudeMode: clampToSeaFloor, relativeToSeaFloor -->
<coordinates>...</coordinates> <!-- lon,lat[,alt] tuples -->
</LinearRing>
Polygon の輪郭のような、閉じた折れ線を定義します。LinearRing で Polygon の内側の境界を定義して、Polygon 内に穴を作成することもできます。Polygon には、内部の境界を定義する複数の <LinearRing> 要素を指定できます。
注: Google Earth では、<altitudeMode> が clampToGround の Polygon は大圏に沿って表示されますが、<altitudeMode> が clampToGround の LinearRing 単独では経線に沿って表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>LinearRing.kml</name>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates> -122.365662,37.826988,0 -122.365202,37.826302,0 -122.364581,37.82655,0 -122.365038,37.827237,0 -122.365662,37.826988,0 </coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
</kml>
<LineString id="ID">
<!-- specific to LineString -->
<extrude>0</extrude> <!-- boolean -->
<tessellate>0</tessellate> <!-- boolean -->
<altitudeMode>clampToGround</altitudeMode>
<!-- kml:altitudeModeEnum: clampToGround, relativeToGround, or absolute -->
<!-- or, substitute gx:altitudeMode: clampToSeaFloor, relativeToSeaFloor -->
<!-- or, substitute gx:altitudeMode: clampToSeaFloor, relativeToSeaFloor -->
<coordinates>...</coordinates> <!-- lon,lat[,alt] -->
</LineString>
連結された一連の線を定義します。色、色モード、線の幅を指定するには、<LineStyle> を使用します。LineString を押し出すと、線が地面に向かって伸び、壁や塀のように見えるポリゴンが形成されます。LineString を押し出した場合、線自体には現在の LineStyle が使用され、押し出しで作られた面には現在の PolyStyle が使用されます。KML のチュートリアルで、LineString の例(パス)をご覧ください。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>LineString.kml</name>
<open>1</open>
<LookAt>
<longitude>-122.36415</longitude>
<latitude>37.824553</latitude>
<altitude>0</altitude>
<range>150</range>
<tilt>50</tilt>
<heading>0</heading>
</LookAt>
<Placemark>
<name>unextruded</name>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<coordinates>
-122.364383,37.824664,0 -122.364152,37.824322,0 </coordinates>
</LineString>
</Placemark>
<Placemark>
<name>extruded</name>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<altitudeMode>relativeToGround</altitudeMode>
<coordinates>
-122.364167,37.824787,50 -122.363917,37.824423,50 </coordinates>
</LineString>
</Placemark>
</Document>
</kml>
<LineStyle id="ID"> <!-- inherited from ColorStyle --> <color>ffffffff</color> <!-- kml:color --> <colorMode>normal</colorMode> <!-- colorModeEnum: normal or random --> <!-- specific to LineStyle --> <width>1</width> <!-- float --> </LineStyle>
すべての線形状の描画スタイル(色、色モード、線の幅)を指定します。線形状には、アウトライン表示されたポリゴンの外形線や Placemark アイコンの押し出された「テザー(つなぎ綱)」(押し出しが有効な場合)も含まれます。
不透明度 50 %、幅 4 ピクセルの赤い線を描画する例を次に示します。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>LineStyle.kml</name>
<open>1</open>
<Style id="linestyleExample">
<LineStyle>
<color>7f0000ff</color>
<width>4</width>
</LineStyle>
</Style>
<Placemark>
<name>LineStyle Example</name>
<styleUrl>#linestyleExample</styleUrl>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<coordinates>
-122.364383,37.824664,0 -122.364152,37.824322,0 </coordinates>
</LineString>
</Placemark>
</Document>
</kml>
<Link id="ID">
<!-- specific to Link -->
<href>...</href> <!-- string -->
<refreshMode>onChange</refreshMode>
<!-- refreshModeEnum: onChange, onInterval, or onExpire -->
<refreshInterval>4</refreshInterval> <!-- float -->
<viewRefreshMode>never</viewRefreshMode>
<!-- viewRefreshModeEnum: never, onStop, onRequest, onRegion -->
<viewRefreshTime>4</viewRefreshTime> <!-- float -->
<viewBoundScale>1</viewBoundScale> <!-- float -->
<viewFormat>BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]</viewFormat>
<!-- string -->
<httpQuery>...</httpQuery> <!-- string -->
</Link>
<Link> には、次の任意のファイルの場所を指定します:
これらのファイルは、この要素に指定する更新パラメータに応じて条件付きで読み込みおよび更新されます。2 つの異なる更新パラメータの組み合わせを指定できます。1 つは時間に基づく組み合わせ(<refreshMode> と <refreshInterval>)、もう 1 つは現在の「カメラ」のビューに基づく組み合わせ(<viewRefreshMode> と <viewRefreshTime>)です。さらに、サーバーに送信する境界ボックスの大きさを拡大/縮小するかどうかの指定(<viewBoundScale>)、サーバーに送信できるオプションの表示パラメータの指定(<viewFormat>)、バージョンや言語情報を含むオプションのパラメータの指定ができます。
ファイルがフェッチされると、サーバーに送信される URL が次の 3 つの情報を基に作成されます:
<href> に指定したファイルがローカル ファイルの場合、<viewFormat> 要素と <httpQuery> 要素は使用されません。
<Link> 要素は、KML の以前のリリースに含まれる <NetworkLink> の <Url> 要素に代わるもので、<Region> 要素(KML 2.1 で導入)の機能が追加されています。リリース 3.0 以前の Google Earth では、<Link> 要素は無視されます。
BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]
<NetworkLink>
<name>NE US Radar</name>
<flyToView>1</flyToView>
<Link>
<href>http://www.example.com/geotiff/NE/MergedReflectivityQComposite.kml</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>30</refreshInterval>
<viewRefreshMode>onStop</viewRefreshMode>
<viewRefreshTime>7</viewRefreshTime>
<viewFormat>BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth];CAMERA=\
[lookatLon],[lookatLat],[lookatRange],[lookatTilt],[lookatHeading];VIEW=\
[horizFov],[vertFov],[horizPixels],[vertPixels],[terrainEnabled]</viewFormat>
</Link>
</NetworkLink>
<ListStyle id="ID">
<!-- specific to ListStyle -->
<listItemType>check</listItemType> <!-- kml:listItemTypeEnum:check,
checkOffOnly,checkHideChildren,
radioFolder -->
<bgColor>ffffffff</bgColor> <!-- kml:color -->
<ItemIcon> <!-- 0 or more ItemIcon elements -->
<state>open</state>
<!-- kml:itemIconModeEnum:open, closed, error, fetching0, fetching1, or fetching2 -->
<href>...</href> <!-- anyURI -->
</ItemIcon>
</ListStyle>
リスト ビューに Feature を表示する方法を指定します。リスト ビューはコンテナや子から成る階層です。Google Earth では、リスト ビューとは [場所] パネルのことです。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>ListStyle.kml</name>
<open>1</open>
<Style id="bgColorExample">
<ListStyle>
<bgColor>ff336699</bgColor>
</ListStyle>
</Style>
<Style id="checkHideChildrenExample">
<ListStyle>
<listItemType>checkHideChildren</listItemType>
</ListStyle>
</Style>
<Style id="radioFolderExample">
<ListStyle>
<listItemType>radioFolder</listItemType>
</ListStyle>
</Style>
<Folder>
<name>ListStyle Examples</name>
<open>1</open>
<Folder>
<name>bgColor example</name>
<open>1</open>
<Placemark>
<name>pl1</name>
<Point>
<coordinates>-122.362815,37.822931,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>pl2</name>
<Point>
<coordinates>-122.362825,37.822931,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>pl3</name>
<Point>
<coordinates>-122.362835,37.822931,0</coordinates>
</Point>
</Placemark>
<styleUrl>#bgColorExample</styleUrl>
</Folder>
<Folder>
<name>checkHideChildren example</name>
<open>1</open>
<Placemark>
<name>pl4</name>
<Point>
<coordinates>-122.362845,37.822941,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>pl5</name>
<Point>
<coordinates>-122.362855,37.822941,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>pl6</name>
<Point>
<coordinates>-122.362865,37.822941,0</coordinates>
</Point>
</Placemark>
<styleUrl>#checkHideChildrenExample</styleUrl>
</Folder>
<Folder>
<name>radioFolder example</name>
<open>1</open>
<Placemark>
<name>pl7</name>
<Point>
<coordinates>-122.362875,37.822951,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>pl8</name>
<Point>
<coordinates>-122.362885,37.822951,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>pl9</name>
<Point>
<coordinates>-122.362895,37.822951,0</coordinates>
</Point>
</Placemark>
<styleUrl>#radioFolderExample</styleUrl>
</Folder>
</Folder>
</Document>
</kml>
<LookAt id="ID">
<!-- inherited from AbstractView element -->
<TimePrimitive>...</TimePrimitive> <!-- gx:TimeSpan or gx:TimeStamp -->
<!-- specific to LookAt -->
<longitude>0</longitude> <!-- kml:angle180 -->
<latitude>0</latitude> <!-- kml:angle90 -->
<altitude>0</altitude> <!-- double -->
<heading>0</heading> <!-- kml:angle360 -->
<tilt>0</tilt> <!-- kml:anglepos90 -->
<range></range> <!-- double -->
<altitudeMode>clampToGround</altitudeMode>
<!--kml:altitudeModeEnum:clampToGround, relativeToGround, absolute -->
<!-- or, gx:altitudeMode can be substituted: clampToSeaFloor, relativeToSeaFloor -->
</LookAt>
Feature から派生する要素に関連付けられた仮想カメラを定義します。LookAt 要素は、表示対象のオブジェクトに向かって「カメラ」の位置を設定します。Google Earth では、ユーザーが [場所] パネルの項目や 3D ビューア内のアイコンをダブルクリックすると、「空を飛ぶように」視点が移動し、LookAt で指定した視点のビューに切り替わります。
次の図は、<range> 要素、<tilt> 要素、<altitude> 要素を示したものです:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2">
<Placemark>
<name>LookAt.kml</name>
<LookAt>
<gx:TimeStamp>
<when>1994</when>
</gx:TimeStamp>
<longitude>-122.363</longitude>
<latitude>37.81</latitude>
<altitude>2000</altitude>
<range>500</range>
<tilt>45</tilt>
<heading>0</heading>
<altitudeMode>relativeToGround</altitudeMode>
</LookAt>
<Point>
<coordinates>-122.363,37.82,0</coordinates>
</Point>
</Placemark>
</kml>
<Model id="ID">
<!-- specific to Model -->
<altitudeMode>clampToGround</altitudeMode>
<!-- kml:altitudeModeEnum: clampToGround,relativeToGround,or absolute -->
<!-- or, substitute gx:altitudeMode: clampToSeaFloor, relativeToSeaFloor -->
<Location>
<longitude></longitude> <!-- kml:angle180 -->
<latitude></latitude> <!-- kml:angle90 -->
<altitude>0</altitude> <!-- double -->
</Location>
<Orientation>
<heading>0</heading> <!-- kml:angle360 -->
<tilt>0</tilt> <!-- kml:angle360 -->
<roll>0</roll> <!-- kml:angle360 -->
</Orientation>
<Scale>
<x>1</x> <!-- double -->
<y>1</y> <!-- double -->
<z>1</z> <!-- double -->
</Scale>
<Link>...</Link>
<ResourceMap>
<Alias>
<targetHref>...</targetHref> <!-- anyURI -->
<sourceHref>...</sourceHref> <!-- anyURI -->
</Alias>
</ResourceMap>
</Model>
COLLADA ファイル(<Link> タグで参照するファイル)に記述する 3D オブジェクト。COLLADA ファイルには .dae というファイル拡張子が付きます。モデルは固有の座標空間で作成された後、スケーリングされ、Google Earth に配置されます。詳しくは、KML トピック ページの Region をご覧ください。
Google Earth は COLLADA 共通プロファイルをサポートしていますが、次の例外があります:
<Location> <longitude>39.55375305703105</longitude> <latitude>-118.9813220168456</latitude> <altitude>1223</altitude> </Location>
<Orientation> <heading>45.0</heading> <tilt>10.0</tilt> <roll>0.0</roll> </Orientation>
<Scale>
<x>2.5</x>
<y>2.5</y>
<z>3.5</z>
</Scale>
<Alias>
<targetHref>../images/foo.jpg</targetHref> <sourceHref>c:\mytextures\foo.jpg</sourceHref> </Alias>
<Model id="khModel543">
<altitudeMode>relativeToGround</altitudeMode>
<Location>
<longitude>39.55375305703105</longitude>
<latitude>-118.9813220168456</latitude>
<altitude>1223</altitude>
</Location>
<Orientation>
<heading>45.0</heading>
<tilt>10.0</tilt>
<roll>0.0</roll>
</Orientation>
<Scale>
<x>1.0</x>
<y>1.0</y>
<z>1.0</z>
</Scale>
<Link>
<href>house.dae</href>
<refreshMode>once</refreshMode>
</Link>
<ResourceMap>
<Alias>
<targetHref>../files/CU-Macky---Center-StairsnoCulling.jpg</targetHref>
<sourceHref>CU-Macky---Center-StairsnoCulling.jpg</sourceHref>
</Alias>
<Alias>
<targetHref>../files/CU-Macky-4sideturretnoCulling.jpg</targetHref>
<sourceHref>CU-Macky-4sideturretnoCulling.jpg</sourceHref>
</Alias>
<Alias>
<targetHref>../files/CU-Macky-Back-NorthnoCulling.jpg</targetHref>
<sourceHref>CU-Macky-Back-NorthnoCulling.jpg</sourceHref>
</Alias>
</ResourceMap>
</Model>
<MultiGeometry id="ID"> <!-- specific to MultiGeometry --> <!-- 0 or more Geometry elements --> </MultiGeometry>
同じアイテムに関連付けられた 0 または 1 つ以上のジオメトリ基本要素のコンテナ。
注: <GeometryCollection> タグは廃止予定です。代わりに <MultiGeometry> を使用してください。
<Placemark> <name>SF Marina Harbor Master</name>
<visibility>0</visibility>
<MultiGeometry> <LineString>
<!-- north wall --> <coordinates>
-122.4425587930444,37.80666418607323,0
-122.4428379594768,37.80663578323093,0 </coordinates>
</LineString> <LineString>
<!-- south wall -->
<coordinates>
-122.4425509770566,37.80662588061205,0
-122.4428340530617,37.8065999493009,0
</coordinates> </LineString>
</MultiGeometry> </Placemark>
<NetworkLink id="ID"> <!-- inherited from Feature element --><name>...</name> <!-- string --> <visibility>1</visibility> <!-- boolean --> <open>0</open> <!-- boolean --> <atom:author>...<atom:author> <!-- xmlns:atom --> <atom:link>...</atom:link> <!-- xmlns:atom --> <address>...</address> <!-- string --> <xal:AddressDetails>...</xal:AddressDetails> <!-- xmlns:xal -->
<phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string --> <description>...</description> <!-- string --> <AbstractView>...</AbstractView> <!-- Camera or LookAt --> <TimePrimitive>...</TimePrimitive> <styleUrl>...</styleUrl> <!-- anyURI --> <StyleSelector>...</StyleSelector> <Region>...</Region> <Metadata>...</Metadata> <!-- deprecated in KML 2.2 --> <ExtendedData>...</ExtendedData> <!-- new in KML 2.2 --> <!-- specific to NetworkLink --> <refreshVisibility>0</refreshVisibility> <!-- boolean --> <flyToView>0</flyToView> <!-- boolean --> <Link>...</Link> </NetworkLink>
ローカルまたはリモート ネットワーク上の KML ファイルまたは KMZ アーカイブを参照します。<Link> 要素を使用して KML ファイルの場所を指定します。この要素内で、時間とカメラの変化に基づいて、ファイルの更新オプションを定義できます。NetworkLink を Region と組み合わせることによって、非常に大きなデータセットを効率的に処理できます。
ヒント: リスト ビューの NetworkLink 内の最上位の Folder または Document を表示するには、Folder または Document に ID を割り当てます。この ID がないと、リスト ビューには子オブジェクトの名前のみが表示されます。
<Document>
<visibility>1</visibility>
<NetworkLink>
<name>NE US Radar</name>
<refreshVisibility>1</refreshVisibility>
<flyToView>1</flyToView>
<Link>...</Link></NetworkLink>
</Document>
<NetworkLinkControl> <minRefreshPeriod>0</minRefreshPeriod> <!-- float --> <maxSessionLength>-1</maxSessionLength> <!-- float --> <cookie>...</cookie> <!-- string --> <message>...</message> <!-- string --> <linkName>...</linkName> <!-- string --> <linkDescription>...</linkDescription> <!-- string --> <linkSnippet maxLines="2">...</linkSnippet> <!-- string --> <expires>...</expires> <!-- kml:dateTime --> <Update>...</Update> <!-- Change,Create,Delete --> <AbstractView>...</AbstractView> <!-- LookAt or Camera --> </NetworkLinkControl>
<NetworkLink> でフェッチしたファイルの動作をコントロールします。
<kml xmlns="http://www.opengis.net/kml/2.2"> <NetworkLinkControl> <message>This is a pop-up message. You will only see this once</message> <cookie>cookie=sometext</cookie> <linkName>New KML features</linkName> <linkDescription><![CDATA[KML now has new features available!]]></linkDescription> </NetworkLinkControl> </kml>
<!-- abstract element; do not create --> <!-- Object id="ID" targetId="NCName" --> <!-- /Object> -->
これは抽象的な基本クラスであり、KML ファイル内で直接使用することはできません。<Object> には、KML 要素を一意に指定できる id 属性と、Google Earth に既に読み込まれているオブジェクトの参照に使用する targetId 属性が用意されています。<Update> メカニズムを使用する場合は、id 属性を割り当てる必要があります。
<!-- abstract element; do not create --> <!-- Overlay id="ID" --> <!-- GroundOverlay,ScreenOverlay --> <!-- inherited from Feature element --> <name>...</name> <!-- string --> <visibility>1</visibility> <!-- boolean --> <open>0</open> <!-- boolean --> <atom:author>...<atom:author> <!-- xmlns:atom --> <atom:link>...</atom:link> <!-- xmlns:atom --> <address>...</address> <!-- string --> <xal:AddressDetails>...</xal:AddressDetails> <!-- xmlns:xal -->
<phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string --> <description>...</description> <!-- string --> <AbstractView>...</AbstractView> <!-- Camera or LookAt --> <TimePrimitive>...</TimePrimitive> <styleUrl>...</styleUrl> <!-- anyURI --> <StyleSelector>...</StyleSelector> <Region>...</Region> <Metadata>...</Metadata> <!-- deprecated in KML 2.2 --> <ExtendedData>...</ExtendedData> <!-- new in KML 2.2 --> <!-- specific to Overlay --> <color>ffffffff</color> <!-- kml:color --> <drawOrder>0</drawOrder> <!-- int --> <Icon> <href>...</href> </Icon> <!-- /Overlay -->
これは抽象的な要素であり、KML ファイル内で直接使用することはできません。<Overlay> は、地表または画面に描画するイメージ オーバーレイの基本型です。<Icon> では、使用する画像を指定します。<Icon> を使用して、タイマーやカメラの変更に基づいて画像を再読み込みするように設定することもできます。また、この要素では、複数のオーバーレイの積み重ね順序や、基本画像に適用する色や透明度の値を指定することもできます。
注: <geomColor> 要素は廃止予定です。代わりに <color> を使用してください。
<Icon> <href>icon.jpg</href> </Icon>
構文
<PhotoOverlay> <!-- inherited from Feature element --> <name>...</name> <!-- string --> <visibility>1</visibility> <!-- boolean --> <open>0</open> <!-- boolean --> <atom:author>...<atom:author> <!-- xmlns:atom --> <atom:link>...</atom:link> <!-- xmlns:atom --> <address>...</address> <!-- string --> <xal:AddressDetails>...</xal:AddressDetails> <!-- xmlns:xal -->
<phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string --> <description>...</description> <!-- string --> <AbstractView>...</AbstractView> <!-- Camera or LookAt --> <TimePrimitive>...</TimePrimitive> <styleUrl>...</styleUrl> <!-- anyURI --> <StyleSelector>...</StyleSelector> <Region>...</Region> <Metadata>...</Metadata> <!-- deprecated in KML 2.2 --> <ExtendedData>...</ExtendedData> <!-- new in KML 2.2 --> <!-- inherited from Overlay element --> <color>ffffffff</color> <!-- kml:color --> <drawOrder>0</drawOrder> <!-- int --> <Icon> <href>...</href> <!-- anyURI --> ... </Icon> <!-- specific to PhotoOverlay --> <rotation>0</rotation> <!-- kml:angle180 --> <ViewVolume> <leftFov>0</leftFov> <!-- kml:angle180 --> <rightFov>0</rightFov> <!-- kml:angle180 --> <bottomFov>0</bottomFov> <!-- kml:angle90 --> <topFov>0</topFov> <!-- kml:angle90 --> <near>0</near> <!-- double --> </ViewVolume> <ImagePyramid> <tileSize>256</tileSize> <!-- int --> <maxWidth>...</maxWidth> <!-- int --> <maxHeight>...</maxHeight> <!-- int --> <gridOrigin>lowerLeft</gridOrigin> <!-- lowerLeft or upperLeft --> </ImagePyramid> <Point> <coordinates>...</coordinates> <!-- lon,lat[,alt] --> </Point> <shape>rectangle</shape> <!-- kml:shape --> </PhotoOverlay>
<PhotoOverlay> 要素を使用すると、写真を地球上に地理的に配置したり、この写真オーバーレイに表示パラメータを指定したりできます。写真オーバーレイは、単純な 2D の長方形だけでなく、一部または全体を円筒状にしたり、全体を球体にしたりしてパノラマを作成できます。オーバーレイは、指定された場所に配置され、視点の方向に向けられます。
<PhotoOverlay> は <Feature> から派生するため、<AbstractView> から派生する 2 つの要素(<Camera> と <LookAt>)のいずれかを含むことができます。Camera(または LookAt)では、「視点」と「表示方向」(「ビュー ベクトル」とも呼びます)を指定します。写真オーバーレイは、視点を基準にした位置に配置されます。たとえば、2D の矩形画像の平面は、ビュー ベクトルと直交(直角に交わる)します。この平面(つまり、前面であり、写真が表示される部分)の垂線は、視点を指します。
写真オーバーレイ画像の URL は、<Overlay> から継承した <Icon> で指定します。<Icon> タグには、写真オーバーレイで使用する画像ファイルを指定する <href> 要素が含まれている必要があります。非常に大きな画像を使用する場合、<href> には、階層化されたさまざまな解像度の画像を指す、特別な URL を指定します(ImagePyramid を参照)。
詳しくは、KML トピックの写真オーバーレイについてのページをご覧ください。

rectangle -(デフォルト)通常の写真
cylinder - 部分的または完全な円筒形のパノラマ写真
sphere - 球形のパノラマ写真
<PhotoOverlay>
<!-- Feature elements -->
<name>A simple non-pyramidal photo</name>
<description>High above the ocean</description>
<!-- Overlay elements -->
<Icon>
<!-- A simple normal jpeg image -->
<href>small-photo.jpg</href>
</Icon>
<!-- PhotoOverlay elements -->
<!-- default: <rotation> default is 0 -->
<ViewVolume>
<near>1000</near>
<leftFov>-60</leftFov>
<rightFov>60</rightFov>
<bottomFov>-45</bottomFov>
<topFov>45</topFov>
</ViewVolume>
<!-- if no ImagePyramid only level 0 is shown,
fine for a non-pyramidal image -->
<Point>
<coordinates>1,1</coordinates>
</Point>
<!-- default: <shape> -->
</PhotoOverlay>
<Placemark id="ID"> <!-- inherited from Feature element --> <name>...</name> <!-- string --> <visibility>1</visibility> <!-- boolean --> <open>0</open> <!-- boolean --> <atom:author>...<atom:author> <!-- xmlns:atom --> <atom:link>...</atom:link> <!-- xmlns:atom --> <address>...</address> <!-- string --> <xal:AddressDetails>...</xal:AddressDetails> <!-- xmlns:xal -->
<phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string --> <description>...</description> <!-- string --> <AbstractView>...</AbstractView> <!-- Camera or LookAt --> <TimePrimitive>...</TimePrimitive> <styleUrl>...</styleUrl> <!-- anyURI --> <StyleSelector>...</StyleSelector> <Region>...</Region> <Metadata>...</Metadata> <!-- deprecated in KML 2.2 --> <ExtendedData>...</ExtendedData> <!-- new in KML 2.2 -->
<!-- specific to Placemark element --> <Geometry>...</Geometry> </Placemark>
Placemark は、Geometry が関連付けられている Feature です。Google Earth では、Placemark は [場所] パネル内のリスト項目として表示されます。Point が設定された Placemark には、3D ビューア内の特定の地点を示すアイコンが関連付けられています(Google Earth 3D ビューアでは、Point を持つ Placemark はクリックやロール オーバー操作ができる唯一のオブジェクトです。他の Geometry オブジェクトでは、3D ビューア内にアイコンは表示されません。3D ビューア内でユーザーがオブジェクトをクリックできるようにするには、Point とその他の Geometry オブジェクトの両方を含む MultiGeometry オブジェクトを作成する必要があります)。
<Placemark>
<name>Google Earth - New Placemark</name>
<description>Some Descriptive text.</description>
<LookAt>
<longitude>-90.86879847669974</longitude>
<latitude>48.25330383601299</latitude>
<range>440.8</range>
<tilt>8.3</tilt>
<heading>2.7</heading>
</LookAt>
<Point>
<coordinates>-90.86948943473118,48.25450093195546,0</coordinates>
</Point>
</Placemark>
<Point id="ID">
<!-- specific to Point -->
<extrude>0</extrude> <!-- boolean -->
<altitudeMode>clampToGround</altitudeMode>
<!-- kml:altitudeModeEnum: clampToGround, relativeToGround, or absolute -->
<!-- or, substitute gx:altitudeMode: clampToSeaFloor, relativeToSeaFloor -->
<coordinates>...</coordinates> <!-- lon,lat[,alt] -->
</Point>
経度と緯度と標高(オプション)で定義する地理的な場所。Placemark に Point が含まれる場合、Point によって Placemark の名前とアイコンの位置が決まります。Point が押し出されている場合、その Point は地面と線で結ばれています。この「テザー(つなぎ網)」には、LineStyle の現在の設定が適用されます。
<Point> <coordinates>-90.86948943473118,48.25450093195546</coordinates> </Point>
<Polygon id="ID">
<!-- specific to Polygon -->
<extrude>0</extrude> <!-- boolean -->
<tessellate>0</tessellate> <!-- boolean -->
<altitudeMode>clampToGround</altitudeMode>
<!-- kml:altitudeModeEnum: clampToGround, relativeToGround, or absolute -->
<!-- or, substitute gx:altitudeMode: clampToSeaFloor, relativeToSeaFloor -->
<outerBoundaryIs>
<LinearRing>
<coordinates>...</coordinates> <!-- lon,lat[,alt] -->
</LinearRing>
</outerBoundaryIs>
<innerBoundaryIs>
<LinearRing>
<coordinates>...</coordinates> <!-- lon,lat[,alt] -->
</LinearRing>
</innerBoundaryIs>
</Polygon>
Polygon は、外側の境界と、0 または 1 つ以上の内側の境界を指定することによって定義します。境界は LinearRing を指定することによって定義します。Polygon を押し出すと、その境界が地面と結合されて新たなポリゴンが形成されるため、建物または箱のように見えます。押し出し Polygon では <PolyStyle> を使用して、色、色モード、塗りつぶしを設定します。
注: Google Earth では、<altitudeMode> が clampToGround の Polygon は大圏に沿って表示されますが、<altitudeMode> が clampToGround の LinearRing 単独では経線に沿って表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Polygon.kml</name>
<open>0</open>
<Placemark>
<name>hollow box</name>
<Polygon>
<extrude>1</extrude>
<altitudeMode>relativeToGround</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-122.366278,37.818844,30
-122.365248,37.819267,30
-122.365640,37.819861,30
-122.366669,37.819429,30
-122.366278,37.818844,30
</coordinates>
</LinearRing>
</outerBoundaryIs>
<innerBoundaryIs>
<LinearRing>
<coordinates>
-122.366212,37.818977,30
-122.365424,37.819294,30
-122.365704,37.819731,30
-122.366488,37.819402,30
-122.366212,37.818977,30
</coordinates>
</LinearRing>
</innerBoundaryIs>
</Polygon>
</Placemark>
</Document>
</kml>
<PolyStyle id="ID"> <!-- inherited from ColorStyle --> <color>ffffffff</color> <!-- kml:color --> <colorMode>normal</colorMode> <!-- kml:colorModeEnum: normal or random --> <!-- specific to PolyStyle --> <fill>1</fill> <!-- boolean --> <outline>1</outline> <!-- boolean --> </PolyStyle>
説明
ポリゴンの押し出し(建物の壁面のような外観)や線の押し出し(堅固な柵のような外観)など、すべてのポリゴンの描画スタイルを指定します。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>PolygonStyle.kml</name>
<open>1</open>
<Style id="examplePolyStyle">
<PolyStyle>
<color>ff0000cc</color>
<colorMode>random</colorMode>
</PolyStyle>
</Style>
<Placemark>
<name>hollow box</name>
<styleUrl>#examplePolyStyle</styleUrl>
<Polygon>
<extrude>1</extrude>
<altitudeMode>relativeToGround</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-122.3662784465226,37.81884427772081,30 -122.3652480684771,37.81926777010555,30 -122.365640222455,37.81986126286519,30 -122.36666937925,37.81942987753481,30 -122.3662784465226,37.81884427772081,30 </coordinates>
</LinearRing>
</outerBoundaryIs>
<innerBoundaryIs>
<LinearRing>
<coordinates>
-122.366212593918,37.81897719083808,30 -122.3654241733188,37.81929450992014,30 -122.3657048517827,37.81973175302663,30 -122.3664882465854,37.81940249291773,30 -122.366212593918,37.81897719083808,30 </coordinates>
</LinearRing>
</innerBoundaryIs>
</Polygon>
</Placemark>
</Document>
</kml>
<Region id="ID">
<LatLonAltBox>
<north></north> <!-- required; kml:angle90 -->
<south></south> <!-- required; kml:angle90 -->
<east></east> <!-- required; kml:angle180 -->
<west></west> <!-- required; kml:angle180 -->
<minAltitude>0</minAltitude> <!-- float -->
<maxAltitude>0</maxAltitude> <!-- float -->
<altitudeMode>clampToGround</altitudeMode>
<!-- kml:altitudeModeEnum: clampToGround, relativeToGround, or absolute -->
<!-- or, substitute gx:altitudeMode: clampToSeaFloor, relativeToSeaFloor -->
</LatLonAltBox>
<Lod>
<minLodPixels>0</minLodPixels> <!-- float -->
<maxLodPixels>-1</maxLodPixels> <!-- float -->
<minFadeExtent>0</minFadeExtent> <!-- float -->
<maxFadeExtent>0</maxFadeExtent> <!-- float -->
</Lod>
</Region>
Region には、地理座標と標高で定義された対象領域を示す境界ボックス(<LatLonAltBox>)を指定します。また、Region に詳細レベル(LOD)の程度(<Lod>)を指定し、投影画面サイズに基づいた Region の有効範囲を定義します。Region は、その境界ボックスがユーザーのビュー内に含まれ、LOD 要件が満たされたときに「アクティブ」な状態になります。Region に関連付けられたオブジェクトは、その Region がアクティブなときにのみ描画されます。<viewRefreshMode> が onRegion に設定されている場合、Link または Icon はその Region がアクティブになったときにのみ読み込まれます。詳しくは、KML トピック ページの Region をご覧ください。Container または NetworkLink の階層では、階層内で最も近い上位要素の Region が、この計算に使用されます。
<LatLonAltBox>
<north>43.374</north>
<south>42.983</south>
<east>-0.335</east>
<west>-1.423</west>
<minAltitude>0</minAltitude>
<maxAltitude>0</maxAltitude>
</LatLonAltBox>
<Lod>
<minLodPixels>256</minLodPixels>
<maxLodPixels>-1</maxLodPixels>
<minFadeExtent>0</minFadeExtent>
<maxFadeExtent>0</maxFadeExtent>
</Lod>

if (P < minLodPixels) opacity=0 //#1 in diagram else if(P < minLodPixels + minFadeExtent) opacity=(P - minLodPixels)/minFadeExtent //#2 in diagram else if (P < maxLodPixels - maxFadeExtent) opacity=1 //#3 in diagram else if (P < maxLodPixels) opacity=(maxLodPixels-P)/maxFadeExtent //#4 in diagram else opacity=0 //#5 in diagram

<Region>
<LatLonAltBox>
<north>50.625</north>
<south>45</south>
<east>28.125</east>
<west>22.5</west>
<minAltitude>10</minAltitude>
<maxAltitude>50</maxAltitude>
</LatLonAltBox>
<Lod>
<minLodPixels>128</minLodPixels>
<maxLodPixels>1024</maxLodPixels>
<minFadeExtent>128</minFadeExtent>
<maxFadeExtent>128</maxFadeExtent>
</Lod>
</Region>
<Schema name="string" id="ID">
<SimpleField type="string" name="string">
<displayName>...</displayName> <!-- string -->
</SimpleField>
</Schema>
KML Feature にカスタム データを追加するために使用する、カスタム KML スキーマを指定します。「id」属性を必要とし、id は KML ファイル内で一意である必要があります。<Schema> は常に <Document> の子要素となります。
Schema 要素には、1 つ以上の SimpleField 要素が含まれます。SimpleField で、Schema はカスタム フィールドの型と名前を宣言します。オプションで、このカスタム フィールドの displayName(Google Earth での表示に使用される、スペースと適切な句読点を使用した、ユーザーが読みやすい形式)を指定できます。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Schema name="TrailHeadType" id="TrailHeadTypeId"> <SimpleField type="string" name="TrailHeadName"> <displayName><![CDATA[<b>Trail Head Name</b>]]></displayName> </SimpleField> <SimpleField type="double" name="TrailLength"> <displayName><![CDATA[<i>The length in miles</i>]]></displayName> </SimpleField> <SimpleField type="int" name="ElevationGain"> <displayName><![CDATA[<i>change in altitude</i>]]></displayName> </SimpleField> </Schema>
</Document>
</kml>
これはルート要素です。
<ScreenOverlay id="ID"> <!-- inherited from Feature element --> <name>...</name> <!-- string --> <visibility>1</visibility> <!-- boolean --> <open>0</open> <!-- boolean --> <atom:author>...<atom:author> <!-- xmlns:atom --> <atom:link>...</atom:link> <!-- xmlns:atom --> <address>...</address> <!-- string --> <xal:AddressDetails>...</xal:AddressDetails> <!-- xmlns:xal -->
<phoneNumber>...</phoneNumber> <!-- string -->
<Snippet maxLines="2">...</Snippet> <!-- string --> <description>...</description> <!-- string --> <AbstractView>...</AbstractView> <!-- Camera or LookAt --> <TimePrimitive>...</TimePrimitive> <styleUrl>...</styleUrl> <!-- anyURI --> <StyleSelector>...</StyleSelector> <Region>...</Region> <Metadata>...</Metadata> <!-- deprecated in KML 2.2 --> <ExtendedData>...</ExtendedData> <!-- new in KML 2.2 --> <!-- inherited from Overlay element --> <color>ffffffff</color> <!-- kml:color --> <drawOrder>0</drawOrder> <!-- int --> <Icon>...</Icon> <!-- specific to ScreenOverlay --> <overlayXY x="double" y="double" xunits="fraction" yunits="fraction"/> <!-- vec2 --> <!-- xunits and yunits can be one of: fraction, pixels, or insetPixels --> <screenXY x="double" y="double" xunits="fraction" yunits="fraction"/> <!-- vec2 --> <rotationXY x="double" y="double" xunits="fraction" yunits"fraction"/> <!-- vec2 --> <size x="double" y="double" xunits="fraction" yunits="fraction"/> <!-- vec2 --> <rotation>0</rotation> <!-- float --> </ScreenOverlay>
この要素は、画面に貼り付けるイメージ オーバーレイを描画します。ScreenOverlay の使用例には、コンパス、ロゴ、ヘッドアップ表示などがあります。ScreenOverlay のサイズ設定は <size> 要素によって決まります。オーバレイの位置設定は、<overlayXY> で指定した画像内のポイントを <screenXY> で指定した画面上のポイントにマップすることによってコントロールされます。その後、画像は、<rotationXY> で指定した画面を基準とするポイントを中心として、<rotation> で指定した角度分回転されます。
<Icon> の子要素の <href> は、オーバーレイとして使用する画像を指定します。このファイルには、ローカル ファイルシステムか ウェブ サーバーのどちらかを指定できます。この要素を省略した場合や、<href> を指定しなかった場合、画面オーバーレイで定義した色とサイズの長方形が描画されます。
画像を画面中央に配置:
<ScreenOverlay> <overlayXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/> <screenXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/> </ScreenOverlay>
画像を画面左上に配置:
<ScreenOverlay> <overlayXY x="0" y="1" xunits="fraction" yunits="fraction"/> <screenXY x="0" y="1" xunits="fraction" yunits="fraction"/> </ScreenOverlay>
画像を画面右上に配置:
<ScreenOverlay> <overlayXY x="1" y="1" xunits="fraction" yunits="fraction"/> <screenXY x="1" y="1" xunits="fraction" yunits="fraction"/> </ScreenOverlay>
画像の x と y の元のサイズを維持するには、値を -1 に設定します:
<size x="-1" y="-1" xunits="fraction" yunits="fraction"/>
画像の元の横サイズを維持しながら、縦方向の画面領域を 20 % に縮小するには、次にように指定します:
<size x="-1" y="0.2" xunits="fraction" yunits="fraction"/>
画像のサイズを 100 x 500 ピクセルに変更するには、次のように指定します:
<size x="100" y="500" xunits="pixels" yunits="pixels"/>

次の例では、元の幅、高さ、縦横比を維持したまま、画面のちょうど真ん中に画像が配置されます。
<ScreenOverlay id="khScreenOverlay756">
<name>Simple crosshairs</name>
<description>This screen overlay uses fractional positioning
to put the image in the exact center of the screen</description>
<Icon>
<href>http://myserver/myimage.jpg</href>
</Icon>
<overlayXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/>
<screenXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/>
<rotation>39.37878630116985</rotation>
<size x="0" y="0" xunits="pixels" yunits="pixels"/>
</ScreenOverlay>
<Style id="ID"> <!-- extends StyleSelector --> <!-- specific to Style --> <IconStyle>...</IconStyle> <LabelStyle>...</LabelStyle> <LineStyle>...</LineStyle> <PolyStyle>...</PolyStyle> <BalloonStyle>...</BalloonStyle> <ListStyle>...</ListStyle> </Style>
Style では、StyleMap や Feature で参照できる、呼び出し可能なスタイル グループを定義します。Style は、3D ビューアに Geometry を表示する方法や、リスト ビューの [場所] パネルに Feature を表示する方法に影響します。共有スタイルは、<Document> にまとめて指定します。共有スタイルには、そのスタイルを使用する個々の Feature から参照できるように、id を定義する必要があります。
id を使用して、<styleUrl> からスタイルを参照します。
<Document>
<!-- Begin Style Definitions -->
<Style id="myDefaultStyles">
<IconStyle>
<color>a1ff00ff</color>
<scale>1.399999976158142</scale>
<Icon>
<href>http://myserver.com/icon.jpg</href>
</Icon>
</IconStyle>
<LabelStyle>
<color>7fffaaff</color>
<scale>1.5</scale>
</LabelStyle>
<LineStyle>
<color>ff0000ff</color>
<width>15</width>
</LineStyle>
<PolyStyle>
<color>7f7faaaa</color>
<colorMode>random</colorMode>
</PolyStyle>
</Style>
<!-- End Style Definitions -->
<!-- Placemark #1 -->
<Placemark>
<name>Google Earth - New Polygon</name>
<description>Here is some descriptive text</description>
<styleUrl>#myDefaultStyles</styleUrl>
. . .
</Placemark>
<!-- Placemark #2 -->
<Placemark>
<name>Google Earth - New Path</name>
<styleUrl>#myDefaultStyles</styleUrl>
. . . .
</Placemark>
</Document>
</kml>
<StyleMap id="ID">
<!-- extends StyleSelector -->
<!-- elements specific to StyleMap -->
<Pair id="ID">
<key>normal</key> <!-- kml:styleStateEnum: normal or highlight -->
<styleUrl>...</styleUrl> or <Style>...</Style>
</Pair>
</StyleMap>
<StyleMap> は、2 つの異なる Style をマップします。<StyleMap> 要素は通常、1 つの目印に通常のスタイルと強調表示用のスタイルを指定しておき、Google Earth でユーザーがアイコンの上にマウスカーソルを置いたときに強調表示されるようにするために使用します。
<Pair> <key>normal</key> <styleUrl>http://myserver.com/populationProject.xml#example_style_off</styleUrl> </Pair>
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>StyleMap.kml</name>
<open>1</open>
<Style id="normalState">
<IconStyle>
<scale>1.0</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pal3/icon55.png</href>
</Icon>
</IconStyle>
<LabelStyle>
<scale>1.0</scale>
</LabelStyle>
</Style>
<Style id="highlightState">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pal3/icon60.png</href>
</Icon>
<scale>1.1</scale>
</IconStyle>
<LabelStyle>
<scale>1.1</scale>
<color>ff0000c0</color>
</LabelStyle>
</Style>
<StyleMap id="styleMapExample">
<Pair>
<key>normal</key>
<styleUrl>#normalState</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#highlightState</styleUrl>
</Pair>
</StyleMap>
<Placemark>
<name>StyleMap example</name>
<styleUrl>#styleMapExample</styleUrl>
<Point>
<coordinates>-122.368987,37.817634,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
<!-- abstract element; do not create --> <!-- StyleSelector id="ID" --> <!-- Style,StyleMap --> <!-- /StyleSelector -->
説明
これは抽象的な要素であり、KML ファイル内で直接使用することはできません。これは <Style> 要素と <StyleMap> 要素の基本型です。StyleMap 要素は、Placemark の現在のモードに基づいてスタイルを選択します。StyleSelector から派生する要素は、その id と URL によって一意に識別されます。
この抽象的な要素には、子要素はありません。
<!-- abstract element; do not create --> <!-- TimePrimitive id="ID" --> <!-- TimeSpan,TimeStamp --> <!-- extends Object --> <!-- /TimePrimitive -->
これは抽象的な要素であり、KML ファイル内で直接使用することはできません。この要素は <TimeSpan> 要素と <TimeStamp> 要素によって拡張されます。
<TimeSpan id="ID"> <begin>...</begin> <!-- kml:dateTime --> <end>...</end> <!-- kml:dateTime --> </TimeSpan>
開始と終了の dateTime で区切られた時間の範囲を表します。
<begin> と <end> のどちらかを指定しないと、期間の終了が指定されません(下記の例を参照)。
dateTime は XML スキーマの time データ型(XML Schema Part 2: Datatypes Second Edition を参照)に従って定義します。値は yyyy-mm-ddThh:mm:sszzzzzz と表記します。T は日付と時刻の区切り文字で、タイム ゾーンには Z(UTC) または zzzzzz(UTC からの時間差を ±hh:mm の形式で指定)を使用します。また、この値は日付のみとして指定することもできます。例については、<TimeStamp> をご覧ください。
次の例は、コロラドが州になってからの期間を示しています。コロラドは 1876 年 8 月 1 日に州になり、その後現在に至ります。そのため、この例では <begin> タグしか指定されていません:
<Placemark>
<name>Colorado</name>
.
.
.
<TimeSpan>
<begin>1876-08-01</begin>
</TimeSpan>
</Placemark>
<TimeStamp id=ID> <when>...</when> <!-- kml:dateTime --> </TimeStamp>
ある特定の時点を表します。これは単純要素で、子を持ちません。この値は、XML の time データ型(XML Schema Part 2: Datatypes Second Edition を参照)で指定した dateTime です。TimeStamp の精度は、<when> 要素の dateTime 値によって決まります。
さまざまな方法で指定した <when> 値の例を次に示します:
<TimeStamp> <when>1997</when> </TimeStamp>
<TimeStamp> <when>1997-07</when> </TimeStamp>
<TimeStamp> <when>1997-07-16</when> </TimeStamp>
<TimeStamp> <when>1997-07-16T07:30:15Z</when> </TimeStamp>
<TimeStamp> <when>1997-07-16T10:30:15+03:00</when> </TimeStamp>
| この要素は、OGC KML 2.2 標準 の拡張要素で、Google Earth 5.0 でサポートされています。詳しくはこちらをご覧ください。 |
拡張名前空間にある、<TimeSpan> 要素と <TimeStamp> 要素のコピーで、AbstractViews(<Camera> と <LookAt>)に時間の値を組み込むことができます。時間の値は、過去の画像、太陽の光、タイムスタンプが付けられている Feature の表示のコントロールに使用します。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<name>Views with Time</name>
<open>1</open>
<description>
In Google Earth, enable historical imagery and sunlight,
then click on each placemark to fly to that point in time.
</description>
<Placemark>
<name>Sutro Baths in 1946</name>
<Camera>
<gx:TimeStamp>
<when>1946-07-29T05:00:00-08:00</when>
</gx:TimeStamp>
<longitude>-122.518172</longitude>
<latitude>37.778036</latitude>
<altitude>221.0</altitude>
<heading>70.0</heading>
<tilt>75.0</tilt>
</Camera>
</Placemark>
<Placemark>
<name>Palace of Fine Arts in 2002</name>
<Camera>
<gx:TimeStamp>
<when>2002-07-09T19:00:00-08:00</when>
</gx:TimeStamp>
<longitude>-122.444633</longitude>
<latitude>37.801899</latitude>
<altitude>139.629438</altitude>
<heading>-70.0</heading>
<tilt>75</tilt>
</Camera>
</Placemark>
</Document>
</kml>
| この要素は、OGC KML 2.2 標準 の拡張要素で、Google Earth 5.0 でサポートされています。詳しくはこちらをご覧ください。 |
<gx:Tour>
<name>...</name>
<description>...</description>
<gx:Playlist>
<!-- any number of gx:TourPrimitive elements -->
</gx:Playlist>
</gx:Tour>
<gx:Tour> には、1 つの <gx:Playlist> 要素を指定します。この要素には、KML ブラウザでのツアーを定義する gx:TourPrimitive のリストが順番に含まれています。ツアーについて詳しくは、こちらをご覧ください。
KML デベロッパー ガイドのツアーの章で、ツアーの例を多数紹介しています。
gx:TourPrimitive 要素を持ちます。0 または 1 つの <gx:Playlist> 要素を <gx:Tour> 内に指定できます。
<gx:Tour>
<gx:Playlist>
<!-- gx:TourPrimitive -->
...
<!-- /gx:TourPrimitive -->
<!--- Any number of gx:TourPrimitive elements can be included --->
</gx:Playlist>
</gx:Tour>
| この要素は、OGC KML 2.2 標準 の拡張要素で、Google Earth 5.0 でサポートされています。詳しくはこちらをご覧ください。 |
<gx:Tour>
<gx:Playlist>
<!-- abstract element; do not create -->
<!-- gx:TourPrimitive --> <!-- gx:AnimatedUpdate, gx:FlyTo, gx:TourControl, gx:SoundCue, gx:Wait -->
<!-- extends Object -->
<!-- /gx:TourPrimitive -->
</gx:Playlist>
</gx:Tour>
これは抽象的な要素であり、KML ファイル内で直接使用することはできません。この要素は、<gx:FlyTo>、<gx:AnimatedUpdate>、<gx:TourControl>、<gx:Wait>、<gx:SoundCue> の各要素によって拡張されます。
gx:TourPrimitive から拡張された各要素を使用して、ジャンプ先のポイント、ジャンプにかける時間、一時停止、KML アイテムの更新、再生するサウンド ファイルなど、KML ブラウザにツアー中の動作を指示します。
これらの要素は <gx:Playlist> 要素に組み込む必要があります。また、<gx:Playlist> は <gx:Tour> 要素に組み込みます。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>gx:AnimatedUpdate example</name>
<open>1</open>
<Style>
<IconStyle id="iconstyle">
<scale>1.0</scale>
</IconStyle>
</Style>
<Placemark id="mountainpin1">
<name>New Zealand's Southern Alps</name>
<styleUrl>#style</styleUrl>
<Point>
<coordinates>170.144,-43.605,0</coordinates>
</Point>
</Placemark>
<gx:Tour>
<name>Play me!</name>
<gx:Playlist>
<!-- The order and duration of TourPrimitives is important;
in this example, the AnimatedUpdate needs
6.5 seconds to complete. The FlyTo provides 4.1,
and the Wait 2.4, giving the update time to
complete before the Tour ends. AnimatedUpdates
don't hold Tours open, but FlyTos and Waits do.
For more information, refer to:
http://code.google.com/apis/kml/documentation/touring.html#tourtimelines
-->
<gx:AnimatedUpdate>
<gx:duration>6.5</gx:duration>
<Update>
<targetHref></targetHref>
<Change>
<IconStyle id="iconstyle">
<scale>10.0</scale>
</IconStyle>
</Change>
</Update>
</gx:AnimatedUpdate>
<gx:FlyTo>
<gx:duration>4.1</gx:duration>
<Camera>
<longitude>170.157</longitude>
<latitude>-43.671</latitude>
<altitude>9700</altitude>
<heading>-6.333</heading>
<tilt>33.5</tilt>
<roll>0</roll>
</Camera>
</gx:FlyTo>
<gx:Wait>
<gx:duration>2.4</gx:duration> <!-- waiting for the AnimatedUpdate to complete -->
</gx:Wait>
</gx:Playlist>
</gx:Tour>
</Document>
</kml>
<gx:SoundCue> <href>http://www.example.com/audio/trumpets.mp3</href> <!-- any URI --> </gx:SoundCue>MP3、M4A、AAC 形式のサウンド ファイルを指定する
<href> 要素を持ちます。期間は持ちません。サウンド ファイルは残りのツアーと並行して再生されます。つまり、<gx:SoundCue> ツアー プリミティブが有効になるとすぐに、次のツアー プリミティブが有効になります。最初のサウンド ファイルの再生が終わる前に次のサウンド ファイルにキューが送られると、これらのファイルは同時に再生されます。<gx:TourControl> <gx:playMode>pause</gx:playMode> <!-- gx:playModeEnum: pause --> </gx:TourControl>1 つの
<gx:playMode> 要素を持ち、ユーザーがツアー続行のアクションを起こすまで、ツアーを停止します。 <gx:Wait> <gx:duration>0.0</gx:duration> <!-- double --> </gx:Wait>次の
gx:TourPrimitive を再生する前に、指定した秒数の間、直前に定義された gx:AbstractView 上でカメラが静止します。この待ち時間はツアーのタイムラインを停止しないことに注意してください。実行中のサウンド ファイルの再生やアニメーション更新は、カメラが静止している間も続行されます。<Update> <targetHref>...<targetHref> <!-- URL --> <Change>...</Change> <Create>...</Create> <Delete>...</Delete> </Update>
指定した URL を使用して既に読み込まれている KML データに対する追加、変更、削除を指定します。<targetHref> では、(Google Earth 内の)データを変更する .kml または .kmz ファイルを指定します。<Update> は常に NetworkLinkControl に指定します。また、この NetworkLinkControl を含むファイルが NetworkLink で読み込まれている必要があります。Update の動作の詳しい例については、KML トピック ページの更新をご覧ください。
任意の数の <Change>、<Create>、<Delete> 要素を指定できます。各要素は指定した順序で処理されます。
<NetworkLinkControl>
<Update>
<targetHref>http://www/~sam/January14Data/Point.kml</targetHref>
<Change>
<Point targetId="point123">
<coordinates>-95.48,40.43,0</coordinates>
</Point>
</Change>
</Update>
</NetworkLinkControl>
次の例では、id が「region24」の作成済みの Document に新しい Placemark を作成します。この後さらに「placemark891」を更新する場合は、引き続き http://myserver.com/Point.kml を <targetHref> に指定します。
<Update>
<targetHref>http://myserver.com/Point.kml</targetHref>
<Create>
<Document targetId="region24">
<Placemark id="placemark891">
<Point>
<coordinates>-95.48,40.43,0</coordinates>
</Point>
</Placemark>
</Document>
</Create>
</Update>
この例では、Google Earth に読み込まれている Placemark を削除します(この Placemark は、URL を指定した NetworkLink によって直接読み込まれているか、またはその後の Update によって元の Document に読み込まれているものとします)。
<Update>
<targetHref>http://www.foo.com/Point.kml</targetHref>
<Delete>
<Placemark targetId="pa3556"></Placemark>
</Delete>
</Update>
注: この要素は KML リリース 2.1 で廃止予定になり、Region の追加機能を提供する <Link> に置き換えられています。<Url> タグはまだ Google Earth で機能しますが、新しい <Link> タグを使用することをおすすめします。
この要素は、KML ファイルへのリンクの場所設定、サーバーやビューアの変更の更新オプションの定義、サーバーに有用なクライアント情報を返す変数への値の代入に使用します。