Penataan Gaya Kompleks untuk LineString dengan DrawOrder

Josh Livni, Tim Google Geo API
Desember 2010

Tujuan

Tutorial ini memperkenalkan beberapa elemen KML baru yang diperkenalkan dengan Google Earth 6.0, dan cara menggunakannya untuk membuat kartografi kompleks untuk LineStyle Anda. Elemen yang akan Anda pelajari adalah <gx:physicalWidth>, <gx:outerColor>, <gx:outerWidth>, dan <gx:drawOrder>.

Pengantar

Sebelum rilis Google Earth 6.0, Anda terbatas dalam kemampuan untuk menentukan gaya kartografi yang kompleks untuk LineString. Misalnya, jika Anda ingin membuat gaya untuk jalan, dengan LineString di tengah memiliki warna yang berbeda dengan tepi, Anda harus menggambar dua LineString terpisah dengan lebar yang berbeda, dan bahkan saat itu Anda tidak dapat menjamin urutan gambar yang akan dibuat.

Contoh berikut menjelaskan cara membuat jalan. Pertama, jalan akan memiliki gaya sederhana. Kemudian, Anda akan menambahkan trotoar. Terakhir, Anda akan menambahkan jembatan penyeberangan jalan raya.

Jalan Dasar

Elemen pertama yang menarik adalah <gx:physicalWidth>, yang memungkinkan Anda menetapkan lebar LineString dalam meter, bukan piksel. Dalam contoh jalan, ini berarti Anda dapat menetapkan lebar jalan agar sesuai dengan gambar di bawahnya, berapa pun ketinggian pengguna akhir melihat jalan tersebut. Saat Anda menambah ketinggian, jalan akan berkurang dalam piksel, sehingga menciptakan efek yang hanya memungkinkan Anda melihat LineString saat diperbesar. Hal ini mungkin berguna jika Anda tidak ingin menekankan jalan kecil dari kejauhan, atau Anda ingin memastikan kartografi Anda selalu cocok dengan gambar satelit.

<?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>

Saat Anda mengubah ketinggian kamera di Google Earth, perhatikan bagaimana ketinggian tersebut selalu cocok dengan lebar gambar di bawahnya.

Menambahkan Trotoar

Sekarang Anda dapat menambahkan elemen <gx:outerColor> dan <gx:outerWidth> dengan menambahkan warna hijau muda ke tepi jalan untuk menandakan trotoar. Tetapkan 25% dari total piksel jalan menjadi abu-abu muda.

<?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>

Karena lebar jalan ditetapkan menjadi 12 meter, nilai .25 untuk outerWidth berarti 3 meter dari lebar tersebut akan ditetapkan menjadi hijau yang lebih terang (sekitar 1,5 meter di setiap sisi jalan).

Jembatan Penyeberangan Jalan Raya

Setelah Anda memiliki jalan dasar, saatnya mengatasi jembatan penyeberangan jalan tol. Yang ini akan berwarna oranye muda dengan garis median oranye yang lebih gelap. Penambahan utama di sini adalah menyertakan <gx:drawOrder> 1 (defaultnya adalah 0) dalam <LineSring> untuk memastikan jalan tol akan dirender di atas jalan. Jika Anda membuat persimpangan jalan tol yang lebih rumit (atau kartografi apa pun yang memerlukan lebih dari dua LineString yang tumpang-tindih), Anda cukup menambahkan nilai yang lebih tinggi ke <gx:drawOrder> untuk LineString yang ingin Anda render di bagian atas.

<?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>

Apa langkah selanjutnya?

Kemampuan untuk mendeskripsikan satu LineString dengan beberapa warna, yang dikombinasikan dengan kontrol atas urutan rendering, memungkinkan Anda membuat kartografi garis kompleks yang sebelumnya tidak mungkin dilakukan. Baik Anda sedang membangun jembatan penyeberangan jalan tol atau proyek seni abstrak, nikmati keseruan dengan aturan gaya ini.