DrawOrder を使用した LineString の複雑なスタイル設定

Josh Livni、Google Geo API チーム
2010 年 12 月

目的

このチュートリアルでは、Google Earth 6.0 で導入された新しい KML 要素と、それらを使用して LineStyle で複雑な地図作成を作成する方法について説明します。これから学習する要素は、<gx:physicalWidth><gx:outerColor><gx:outerWidth><gx:drawOrder> です。

はじめに

Google Earth 6.0 のリリース前は、LineString の複雑な地図作成スタイルを定義する機能は限られていました。たとえば、LineString の中心がエッジとは異なる色を持つ道路のスタイルを作成する場合は、描画する順序を保証できない、幅の異なる 2 つの LineString を描画する必要があります。

以下の例では、道路を作成します。まず、道路はシンプルなスタイルになります。その後、歩道を追加します。最後に、高速道路の橋を追加します。

基本的な道

最初に考慮する要素は <gx:physicalWidth> です。LineString の幅をピクセルではなくメートル単位で設定できます。道路の例では、エンドユーザーが道路を表示した高度に関係なく、基礎となる画像に合わせて道路の幅を設定できます。高度が上がるにつれて道路のピクセルが小さくなり、LineString をクローズアップでのみ見られるようになります。遠くから小さな道路を強調したくない場合や、地図に衛星画像と常に一致させたい場合は、この方法が便利です。

<?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" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
  <name>Road Styling</name>
  <Style id="street">
    <LineStyle>
      <color>ff235523</color>
      <gx:physicalWidth>12</gx:physicalWidth>
    </LineStyle>
  </Style>
  <Placemark>
    <styleUrl>#street</styleUrl>
    <LineString>
      <coordinates>
      -122.2442883478408,37.4347536724074,0
      -122.2417741446485,37.43594997501623,0
      -122.2414951359056,37.43611878445952,0
      </coordinates>
    </LineString>
  </Placemark>
</Document>
</kml>

Google Earth でカメラの高度を変更するときに、常に基になる画像の幅とほぼ一致するようにします。

歩道の追加

これで、道路の端に明るい緑を追加して、歩道であることを示す <gx:outerColor> 要素と <gx:outerWidth> 要素を追加できるようになりました。道路の合計ピクセルの 25% を薄いグレーに設定します。

<?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" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
  <name>Road Styling</name>
  <Style id="street_sidewalk">
    <LineStyle>
      <color>ff235523</color>
      <gx:physicalWidth>12</gx:physicalWidth>
      <gx:outerColor>ff55ff55</gx:outerColor>
      <gx:outerWidth>0.25</gx:outerWidth>
    </LineStyle>
  </Style>
  <Placemark>
    <styleUrl>#street_sidewalk</styleUrl>
    <LineString>
      <coordinates>
      -122.2442883478408,37.4347536724074,0
      -122.2417741446485,37.43594997501623,0
      -122.2414951359056,37.43611878445952,0
      </coordinates>
    </LineString>
  </Placemark>
</Document>
</kml>

道路の幅は 12 メートルに設定されているため、outerWidth の値は 0.25 なので、その幅の 3 メートルが薄い緑色(道路の両側に約 1.5 メートル)に設定されます。

高速道路

基本的な道路ができたので、次に高速道路に進みましょう。今回は、明るいオレンジ色に、濃いオレンジの中央線で示されます。ここで重要なのは、高速道路が道路の上にレンダリングされるように、<LineSring><gx:drawOrder> を 1 つ(デフォルトは 0)にすることです。より複雑な高速道路のインターチェンジ(または、2 つ以上の重複する LineString を必要とする地図作成)を作成する場合は、上部にレンダリングされるすべての値に <gx:drawOrder> により大きい値を追加できます。

<?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" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
  <name>Road Styling</name>
  <Style id="street_sidewalk">
    <LineStyle>
      <color>ff235523</color>
      <gx:physicalWidth>10</gx:physicalWidth>
      <gx:outerColor>ff55ff55</gx:outerColor>
      <gx:outerWidth>0.25</gx:outerWidth>
    </LineStyle>
  </Style>
  <Style id="highway">
    <LineStyle>
      <color>cc1447ff</color>
      <gx:physicalWidth>20</gx:physicalWidth>
      <gx:outerColor>cc1473ff</gx:outerColor>
      <gx:outerWidth>0.75</gx:outerWidth>
    </LineStyle>
  </Style>
  <Placemark>
    <styleUrl>#street_sidewalk</styleUrl>
    <LineString>
      <coordinates>
     -122.2442883478408,37.4347536724074,0
     -122.2417741446485,37.43594997501623,0
     -122.2414951359056,37.43611878445952,0
      </coordinates>
    </LineString>
  </Placemark>
  <Placemark>
    <styleUrl>#highway</styleUrl>
    <LineString>
    <gx:drawOrder>1</gx:drawOrder>
    <coordinates>
      -122.2442692500139,37.43634904345254,0
      -122.2415928723012,37.43416417520744,0
    </coordinates>
    </LineString>
  </Placemark>
</Document>
</kml>

次のステップ

複数の色で 1 つの LineString を記述し、レンダリング順序を制御することができるため、以前は不可能だった複雑なライン地図作成を作成できます。高速道路を建設する場合も、抽象的なアート プロジェクトを作成する場合も、これらのスタイルルールをご活用ください。