DrawOrder ile LineString'ler için karmaşık stil

Josh Livni, Google Geo API'leri Ekibi
Aralık 2010

Hedef

Bu eğitimde, Google Earth 6.0 ile kullanıma sunulan birkaç yeni KML öğesi ve bunların LineStyle'larınız için karmaşık kartografik öğeler oluşturmak üzere nasıl kullanılabileceği açıklanmaktadır. Hakkında bilgi edineceğiniz öğeler <gx:physicalWidth>, <gx:outerColor>, <gx:outerWidth> ve <gx:drawOrder>'dir.

Giriş

Google Earth 6.0'ın yayınlanmasından önce, LineString'ler için karmaşık kartografik stiller tanımlama konusunda sınırlıydınız. Örneğin, bir yol için LineString'in merkezinin kenarlardan farklı bir renkte olduğu bir stil oluşturmak istiyorsanız farklı genişliklerde iki ayrı LineString çizmeniz gerekirdi ve bu durumda bile çizim sırasını garanti edemezdiniz.

Aşağıdaki örneklerde yol oluşturma süreci açıklanmaktadır. Öncelikle yolun basit bir stili olacak. Ardından bir kaldırım ekleyeceksiniz. Son olarak, otoyol üst geçidi ekleyeceksiniz.

Temel Yol

İlgili ilk öğe <gx:physicalWidth>'dır. Bu öğe, LineString'in genişliğini piksel yerine metre cinsinden ayarlamanıza olanak tanır. Yol örneğimizde bu, son kullanıcının yolu hangi yükseklikten görüntülediğine bakılmaksızın yolumuzun genişliğini temel görüntüyle eşleşecek şekilde ayarlayabileceğiniz anlamına gelir. Yükseldikçe yolun piksel yoğunluğu azalır ve yalnızca yakından yakınlaştırıldığında LineString'i görebileceğiniz bir efekt oluşur. Bu özellik, uzaktan bakıldığında küçük yolları vurgulamak istemiyorsanız veya haritacılığınızın her zaman uydu görüntüleriyle eşleşmesini sağlamak istiyorsanız yararlı olabilir.

<?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'te kamera yüksekliğini değiştirirken, her zaman temel görüntülerin genişliğiyle ne kadar yakından eşleştiğine dikkat edin.

Kaldırım ekleme

Artık yollarımızın kenarlarına açık yeşil renk ekleyerek kaldırımları belirtebilir, <gx:outerColor> ve <gx:outerWidth> öğelerini ekleyebilirsiniz. Yolun toplam piksellerinin% 25'ini açık gri olarak ayarlayın.

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

Yolun genişliği 12 metre olarak ayarlandığından outerWidth için 0,25 değeri, bu genişliğin 3 metresinin daha açık bir yeşile ayarlanacağı anlamına gelir (yolun her iki tarafında yaklaşık 1,5 metre).

Otoyol Köprüsü

Artık temel bir yolunuz olduğuna göre, otoyol üst geçidini ele almanın zamanı geldi. Bu, daha koyu turuncu bir orta çizgiyle açık turuncu renkte olacaktır. Burada önemli olan, otoyolun yolun üzerinde oluşturulmasını sağlamak için <LineSring>'ye 1 <gx:drawOrder> eklemektir (varsayılan değer 0'dır). Daha karmaşık bir karayolu kavşağı (veya ikiden fazla çakışan LineString gerektiren herhangi bir kartografi) oluşturuyorsanız üstte oluşturulmasını istediğiniz LineString için <gx:drawOrder> değerini daha yüksek bir değerle değiştirebilirsiniz.

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

Sırada ne var?

Tek bir LineString'i birden fazla renkle tanımlama ve oluşturma sırasını kontrol etme özelliği sayesinde, daha önce mümkün olmayan karmaşık çizgi kartografisi oluşturabilirsiniz. İster bir otoyol köprüsü ister soyut bir sanat projesi inşa edin, bu stil kurallarıyla eğlenin.