Komplexes Styling für LineStrings mit DrawOrder

Josh Livni, Google Geo APIs Team
Dezember 2010

Ziel

In diesem Tutorial werden einige neue KML-Elemente vorgestellt, die mit Google Earth 6.0 eingeführt wurden. Außerdem wird gezeigt, wie Sie damit komplexe Kartografie für Ihre LineStyles erstellen können. Die Elemente, die Sie kennenlernen werden, sind <gx:physicalWidth>, <gx:outerColor>, <gx:outerWidth> und <gx:drawOrder>.

Einführung

Vor der Veröffentlichung von Google Earth 6.0 waren die Möglichkeiten zum Definieren komplexer kartografischer Stile für LineStrings begrenzt. Wenn Sie beispielsweise einen Stil für eine Straße erstellen möchten, bei dem die Mitte des LineString eine andere Farbe als die Ränder hat, müssten Sie zwei separate LineStrings mit unterschiedlichen Breiten zeichnen. Selbst dann könnten Sie die Reihenfolge, in der sie gezeichnet werden, nicht garantieren.

In den folgenden Beispielen wird gezeigt, wie eine Straße erstellt wird. Erstens: Die Straße hat einen einfachen Stil. Als Nächstes fügen Sie einen Bürgersteig hinzu. Zum Schluss fügen Sie eine Autobahnüberführung hinzu.

Eine einfache Straße

Das erste interessante Element ist <gx:physicalWidth>. Damit können Sie die Breite eines LineString in Metern statt in Pixeln festlegen. Im Fall unseres Straßenbeispiels können Sie die Breite der Straße so festlegen, dass sie unabhängig von der Höhe, aus der der Endnutzer die Straße betrachtet, mit dem zugrunde liegenden Bildmaterial übereinstimmt. Wenn Sie an Höhe gewinnen, wird die Straße in Pixeln kleiner. Dadurch entsteht ein Effekt, bei dem Sie den LineString nur sehen können, wenn Sie stark hineingezoomt haben. Das kann nützlich sein, wenn Sie kleine Straßen aus der Ferne nicht hervorheben möchten oder wenn Sie sicherstellen möchten, dass Ihre Kartografie immer mit den Satellitenbildern übereinstimmt.

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

Achten Sie darauf, dass die Breite des zugrunde liegenden Bildmaterials immer der Kamerahöhe entspricht, wenn Sie diese in Google Earth ändern.

Bürgersteige hinzufügen

Jetzt können Sie die Elemente <gx:outerColor> und <gx:outerWidth> hinzufügen, indem Sie den Straßenrändern ein hellgrünes Band hinzufügen, um Gehwege zu kennzeichnen. Legen Sie fest, dass 25% der Gesamtpixel der Straße hellgrau sein sollen.

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

Da die Breite der Straße auf 12 Meter festgelegt wurde, bedeutet der Wert 0,25 für „outerWidth“, dass 3 Meter dieser Breite auf ein helleres Grün festgelegt werden (etwa 1,5 Meter auf jeder Seite der Straße).

Eine Autobahnüberführung

Nachdem Sie nun eine einfache Straße erstellt haben, ist es an der Zeit, sich mit einer Autobahnüberführung zu befassen. Diese wird hellorange mit einer dunkleren orangefarbenen Medianlinie dargestellt. Der wichtigste Unterschied ist, dass in <LineSring> ein <gx:drawOrder> von 1 enthalten ist (der Standardwert ist 0), damit die Autobahn über der Straße gerendert wird. Wenn Sie ein komplexeres Autobahnkreuz (oder eine beliebige Kartografie, für die mehr als zwei sich überschneidende LineStrings erforderlich sind) erstellen, können Sie einfach einen höheren Wert für <gx:drawOrder> für das Element hinzufügen, das oben gerendert werden soll.

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

Nächste Schritte

Die Möglichkeit, eine einzelne LineString-Geometrie mit mehreren Farben zu beschreiben, in Kombination mit der Kontrolle über die Reihenfolge, in der die Linien gerendert werden, ermöglicht es Ihnen, komplexe Linienkartografie zu erstellen, die bisher nicht möglich war. Ob Sie eine Autobahnbrücke oder ein abstraktes Kunstprojekt bauen – mit diesen Styling-Regeln können Sie Ihrer Kreativität freien Lauf lassen.