Google Earth KMLのレシピ

Google Earth KMLをメモ帳などのテキストエディタで作る方法をご紹介します。

時間: 20分くらい
難しさ: ★★☆☆☆
見た目: ★★★★☆

Google Earth KML Tutorial
http://www.keyhole.com/kml/kml_tut.html
サンプルはここから持ってきました。

レシピその1: ポイントを置く

まず、テキストエディタにこのグレーの中身をコピー&ペーストしてください。
インデント(行の左側の空白)は適当で大丈夫です。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Placemark>
  <description>Tethered to the ground by a customizable tail</description>
  <name>Tethethed placemark</name>
  <LookAt>
    <longitude>-122.0856375356631</longitude>
    <latitude>37.42240551227282</latitude>
    <range>305.8880792294568</range>
    <tilt>46.72425699662645</tilt>
    <heading>49.06133439171233</heading>
  </LookAt>
  <visibility>1</visibility>
  <Style>
    <IconStyle>
      <Icon>
        <href>root://icons/palette-3.png</href>
        <x>96</x>
        <y>160</y>
        <w>32</w>
        <h>32</h>
      </Icon>
    </IconStyle>
  </Style>
  <Point>
    <extrude>1</extrude>
    <altitudeMode>relativeToGround</altitudeMode>
    <coordinates>-122.0856204541786,37.42244015321688,50</coordinates>
  </Point>
</Placemark>
</kml>

C:\kmlなどの日本語の入っていない名前でフォルダを作り、その中にこのファイルを置いてください。
そしてファイルをダブルクリックするとGoogle Earthが起動すると思います。
下の絵のように表示されましたか?

ポイントがGoogle Campus上に表示された絵

どうやらGoogle Campus(米Google本社)の中の、Google Earthの開発が行われた41番ビルにズームインだそうです。
下の絵にあるようにGoogle Earth左側の部分がチェックされた状態だとポイントが表示され、チェックを外すとポイントが消えます。

Google Earth左側のペイン

さきほどのコードのうち大事なのは赤字の部分です。詳しく見ていきます。

nameタグの中(<name></name> の間)にはポイントのタイトルを、descriptionタグの中にはそのポイントの説明を書きます。
たぶん日本語でも大丈夫です。
nameはポイントの横に表示され、descriptionはポイントをクリックしたときに吹き出しで表示されます。
どうやらdescription等にHTMLを書くとその通りに表示してくれるらしいです。

<name>Tethethed placemark</name>
<description>Tethered to the ground by a customizable tail</description>

吹き出しが表示されてる絵

今気づいたんですが、なんか英語変ですね。きっと Tethethed は Tethered の間違いでしょう。
次にポイントを置く場所を変えてみます。

<coordinates>139.744581,35.657933,0</coordinates>

<coordinates>経度,緯度,高度</coordinates>
と指定します。さっきのは高度が50だったから宙に浮いてたんですね。
単位は、緯度経度は度、高度はメートルです。
緯度経度はWGS84(世界測地系)で指定してください。よくわからない人は気にしなくて大丈夫です。[参考: 測地系について]
緯度経度はここで調べられます。

Google Campus

うーん、何も表示されてないですね。というか以前の場所にズームしちゃいましたねえ。
ズームする場所も変えてみましょう。

<LookAt>
  <longitude>139.744581</longitude>
  <latitude>35.657933</latitude>
  <range>305.8880792294568</range>
  <tilt>46.72425699662645</tilt>
  <heading>49.06133439171233</heading>
</LookAt>

東京タワー

OK

<coordinates>139.744581,35.657933,333</coordinates>

東京タワー上空333メートルにバルーン

グッジョブ。

<coordinates>139.744581,35.657933,1000000</coordinates>

東京タワー上空1,000,000メートルにバルーン

キタコレ!!

視点についてもう少し。

<LookAt>
  <longitude>経度</longitude>
  <latitude>緯度</latitude>
  <range>目の高度</range>
  <tilt>上下アングル</tilt>
  <heading>左右アングル</heading>
</LookAt>

それぞれの単位は次の通りです。
longitude(経度): 度
latitude(緯度): 度
range(目の高度): メートル。これはtiltが0度の時の高さ指定なので、傾けていった(tiltが0度より大きい)ときの目の高度は違ってきます。
tilt(上下アングル): 0度から90度まで。0度は真上から見下ろす。90度は地上から地平線を見る。
heading(左右アングル): 度。0度は真北を見る。90度は真東、180度は真南、270度は真西。270度 = -90度。

アイコンを変えてみる

アイコンを変えてみましょう。
簡単です。hrefにURLを入れるだけ。
x, y, w, hタグは一枚の画像から一部分だけアイコンを切り出すためのものなので、普通は使いません。

<Icon>
  <href>http://labs.google.com/ridefinder/images/mm_20_red.png</href>
</Icon>

赤いアイコン

バルーンを浮かせる

extrude0にすると地面につながる線が消えます。

<extrude>0</extrude>

浮遊する赤いアイコン

ナイス。

ポイントの高度

altitudeModerelativeToGroundのとき、

<altitudeMode>relativeToGround</altitudeMode>
<coordinates>139.744581,35.657933,333</coordinates>

ここで指定した高度は地上からの高さとなりますが、altitudeModeabsoluteを指定すると海抜での高さとなります。
つまり、absoluteで富士山の位置に高度3776メートルにポイントを置いたとき、富士山の山頂にポイントが表示されるわけです。
これはrelativeToGroundで高度0メートルにポイントを置いたのと同じことです。


おまけ: 文字のエスケープ

タグの中に文字を入れる際、いくつかの文字についてだけ下の表のように代替となる文字を入力しないといけないので注意してください。

表示したい文字 エスケープ(KMLに書く)文字
< &lt;
> &gt;
& &amp;
" &quot;

これだけエスケープしてあればまず問題ないです。
URL中の &&amp; にエスケープしないといけません。
例えばnameタグ中に「デジタルアース<digital earth>」という文字を入れたい場合、このように書きます。

<name>デジタルアース&lt;digital earth&gt;</name>

エスケープが面倒だという人は <![CDATA[]]> で囲みましょう。この間に入れた文字はそのまま表示されます。

<name><![CDATA[デジタルアース<digital earth>]]></name>

この二つは全く同じ表示を出します。


2006年3月16日
飯塚直
s03048ni@sfc.keio.ac.jp