Настройване на линии за работа в Google Earth

Така че прерових документацията на GE и открих как да направя LineStyle и LineString, за да стилизирам и покажа линия, но на практика не мога да я накарам да работи. Ето моя KML:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"><Document><Style id="thisStyle">
<LineStyle>
<color>500078F0</color>
<colorMode>Normal</colorMode>
<width>5</width>
</LineStyle>
</Style>
<Placemark>
<name>502-2012-11-19 05:27:03</name>
<description>Speed:0</description>
<Point>
<coordinates>-76.0513,42.0894,247</coordinates>
</Point>
</Placemark>
<Placemark>
<name>502-2012-11-19 05:26:46</name>
<description>Speed:0</description>
<Point>
<coordinates>-76.0517,42.0886,287</coordinates>
</Point>
</Placemark>
....
<Placemark>
<name>525-2012-11-19 04:38:25</name>
<description>Speed:0</description>
<Point>
<coordinates>-76.0512,42.0894,178</coordinates>
</Point>
</Placemark>
<styleUrl>#thisStyle</styleUrl>
<LineString>
<tessellate>1</tessellate>
<altitudeMode>clampToGround</altitudeMode>
<coordinates>
-76.0513,42.0894,247 
-76.0517,42.0886,287 
....
-76.0512,42.0894,178 
</coordinates></LineString></Document></kml>

Забележка: Горните места, където се появява "...", има още около 50 набора координати, премахнах ги за краткост, но тъй като всички координати се произвеждат от скрипт, ако един работи, знам, че всички ще го направят. Може ли някой да ме насочи в правилната посока защо всички мои показалци се показват, но не и линии?


person eric_spittle    schedule 19.11.2012    source източник


Отговори (2)


Елемент LineString е валиден само в показалец (или MultiGeometry в показалец) :

<Placemark>
  <LineString>
    <tessellate>1</tessellate>
    <altitudeMode>clampToGround</altitudeMode>
    <coordinates>
      -76.0513,42.0894,247 
      -76.0517,42.0886,287 
      -76.0512,42.0894,178 
    </coordinates>
  </LineString>
</Placemark>
person geocodezip    schedule 20.11.2012
comment
Благодаря ви много, това обяснява какъв е проблемът. След като поставих етикета Placemark около моя LineString, той работи перфектно, благодаря ви много. - person eric_spittle; 20.11.2012

Трябва или да вградите стил в показалеца, или да посочите стила в показалеца, като използвате елемента styleUrl.

Последният показалец във вашия пример трябва да бъде пренаписан по следния начин:

<Placemark>
    <name>525-2012-11-19 04:38:25</name>
    <description>Speed:0</description>
    <styleUrl>#thisStyle</styleUrl>
    <LineString>
        <tessellate>1</tessellate>
        <altitudeMode>clampToGround</altitudeMode>
        <coordinates>
            -76.0513,42.0894,247 
            -76.0517,42.0886,287
             ...
            -76.0512,42.0894,178 
        </coordinates>
    </LineString>
</Placemark>

Ако вашият KML не се вижда правилно, тогава обикновено помага валидирането на KML. Можете да използвате KML Validator.

person JasonM1    schedule 20.11.2012
comment
Благодаря ви много за отговора и съвета с KML валидатора. И двата отговора бяха верни, но се старая винаги да отбелязвам първия верен, за да е честен. Благодаря ви много за помощта и кода, наистина го оценявам. - person eric_spittle; 20.11.2012