2012-05-16 4 views
8

Ich lade eine KML-Datei über Google Map's V3 API. Die Farben in der KML-Datei werden verwendet, aber ich möchte sie mit meiner eigenen Farbe überschreiben. Ich möchte eigentlich eine feste Farbe für die ganze Spur verwenden. Gibt es eine Möglichkeit, dies zu tun?Wie überschreibt man KML-Farben in Google Map?

Antwort

9

KML-Farben basieren auf Styleapi-doc Tags, die entweder direkt in der KML definiert sind oder einen Verweis auf eine externe KML-Stildatei verwenden (ähnlich wie CSS). Wir verwenden eine externe Stildatei, sodass die Stile auf mehrere KML-Dateien angewendet werden können. Diese

bedeutet, dass innerhalb unserer KML Daten Dateien, Sie Einträge wie diese finden:

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://earth.google.com/kml/2.2"> 
<Document> 
    <name>Country Borders</name> 
    <open>1</open> 
    <Placemark> 
     <name>Russian Federation</name> 
     <styleUrl>kml-styles.kml#red</styleUrl> 
--- etc. --- 

Die styleUrl Tag über im Wesentlichen sagt: gehen die Datei suchen in: kml-styles.kml und finden Sie den Stil benannt: red.

Und in der unsere KML Stil Datei, werden Sie Einträge wie diese finden:

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://earth.google.com/kml/2.2"> 
<Document> 
    <name>KML Styles</name> 
    <open>1</open> 
    <Style id="red"> 
     <LineStyle> 
      <color>7da00000</color> 
      <width>1</width> 
     </LineStyle> 
     <PolyStyle> 
      <color>7f0000ff</color> 
     </PolyStyle> 
    </Style> 
    <Style id="green"> 
     <LineStyle> 
      <color>FFFF00</color> 
      <width>1</width> 
     </LineStyle> 
     <PolyStyle> 
      <color>7f00aa00</color> 
     </PolyStyle> 
    </Style> 
    --- etc. --- 

Es ist wichtig zu beachten, dass KML Farbeapi-doc Definitionen acht hexadezimalen Ziffern innerhalb ihrer Definition enthalten; zwei Ziffern mehr als bei anderen Farbdefinitionen üblich, da die ersten beiden Hex-Ziffern die Farbdeckkraft (Alpha) definieren.

Das Beispiel in der KML Styleapi-doc (das gleiche wie der Link oben) zeigt auch, wie Stile direkt in der KML-Datei definiert werden können, die die Daten enthält.

0

KML ist XML, also würden Sie XSL (yeah, ich weder) oder PHP oder (abhängig von den Besonderheiten) JavaScript verwenden, um es zu KML zu parsen/umzuwandeln/re-serialisieren.

4

KML Farben wie so arbeiten,

<color>AABBGGRR</color> 
AA = alpha opacity 
BB = blue 
GG = gren 
RR = red 

The range is from 00 -> ff 

RGB for white = 255, 255, 255, hex -> #ffffff 

RGB for yellow is 255,255,0, hex -> #ffff00 

Hex kann auch als

#RRGGBB 

gesehen wurden, können Sie ganz einfach die Farben bewegen sich in KML

so gelb für KML arbeiten würde be

<color>ff00FFFF</color> 
<color>AABBGGRR</color> 

Das hat für mich funktioniert.

Auch für Grenzen verwenden Sie unten.

<outline>1</outline> 

https://developers.google.com/kml/documentation/kmlreference