2017-01-05 2 views
-1

У меня есть KML-файл, который использует многоугольник для рисования заполненной области в Google Earth. В этом случае это круг. К сожалению, высота отображается при отображении файла с помощью Google Earth 7.1.7.2606 (которая является последней версией на сегодняшний день). Сам KML-файл должен соответствовать стандарту KML 2.2.Высота многоугольника игнорируется в KML/Google Earth

Следующий код перепечатывает полный файл (только пространство имен xml (< kml xmlns = "http://www.opengis.net/kml/2.2" >) скрыто ниже), а при открытии с GE вы должны увидеть "проблемы", что высота 500км (= 500000.00m), что высота пользователь должен видеть полигон, игнорируется:

<?xml version="1.0" encoding="UTF-8"?> 

<Document> 
    <name>orbits</name> 
    <open>1</open> 
    <Snippet>orbits</Snippet> 
    <Style> 
     <ListStyle> 
      <ItemIcon><href>http://maps.google.com/mapfiles/kml/shapes/sunny.png</href></ItemIcon> 
     </ListStyle> 
    </Style> 

    <!-- begin: Group 1, Graph 1 --> 
    <Folder> 
     <name>Group: Orbit 1</name> 
     <visibility>1</visibility> 
     <open>1</open> 
     <Style> 
      <ListStyle> 
       <ItemIcon><href>http://maps.google.com/mapfiles/kml/shapes/arrow-reverse.png</href></ItemIcon> 
      </ListStyle> 
     </Style> 

     <!-- begin: TrimLinesAndPatches --> 
     <Folder> 
      <name>TrimLinesAndPatches</name> 
      <open>0</open> 
      <Style> 
       <ListStyle> 
        <ItemIcon><href>http://maps.google.com/mapfiles/kml/shapes/target.png</href></ItemIcon> 
       </ListStyle> 
      </Style> 

      <Folder> 
       <name>Relative Patches</name> 
       <Style id="check-hide-children"> 
        <ListStyle> 
         <listItemType>checkHideChildren</listItemType> 
        </ListStyle> 
       </Style> 
       <styleUrl>#check-hide-children</styleUrl> 
       <open>0</open> 
       <Style> 
        <ListStyle> 
         <ItemIcon><href>http://maps.google.com/mapfiles/kml/shapes/target.png</href></ItemIcon> 
        </ListStyle> 
       </Style> 
       <Placemark id="polygon"> 
        <name>Relative Patches</name> 
        <TimeSpan><begin>2017-04-12T13:16:44.123Z</begin><end>2017-04-12T13:21:44.123Z</end></TimeSpan> 
        <visibility>1</visibility> 
        <Style> 
         <LineStyle> 
          <color>64FFCCFF</color> 
          <width>0</width> 
         </LineStyle> 
         <PolyStyle> 
          <color>64FFCCFF</color> 
         </PolyStyle> 
        </Style> 
        <MultiGeometry> 
         <extrude>0</extrude> 
         <altitudeMode>absolute</altitudeMode> 
         <tessellate>1</tessellate> 
         <Polygon> 
          <outerBoundaryIs> 
           <LinearRing> 
            <coordinates> 
             -12.1159516,-26.3651097,500000.00 
             -13.0844128,-26.4374313,500000.00 
             -14.0272910,-26.6524670,500000.00 
             -14.9194371,-27.0044676,500000.00 
             -15.7365727,-27.4839749,500000.00 
             -16.4557337,-28.0780054,500000.00 
             -17.0557319,-28.7703022,500000.00 
             -17.5176459,-29.5416541,500000.00 
             -17.8253587,-30.3702824,500000.00 
             -17.9661527,-31.2323009,500000.00 
             -17.9313683,-32.1022573,500000.00 
             -17.7171071,-32.9537663,500000.00 
             -17.3249379,-33.7602445,500000.00 
             -16.7625260,-34.4957477,500000.00 
             -16.0440739,-35.1359009,500000.00 
             -15.1904382,-35.6588849,500000.00 
             -14.2287935,-36.0464258,500000.00 
             -13.1917549,-36.2847064,500000.00 
             -12.1159516,-36.3651097,500000.00 
             -11.0401483,-36.2847064,500000.00 
             -10.0031097,-36.0464258,500000.00 
             -9.0414649,-35.6588849,500000.00 
             -8.1878292,-35.1359009,500000.00 
             -7.4693772,-34.4957477,500000.00 
             -6.9069653,-33.7602445,500000.00 
             -6.5147960,-32.9537663,500000.00 
             -6.3005348,-32.1022573,500000.00 
             -6.2657504,-31.2323009,500000.00 
             -6.4065445,-30.3702824,500000.00 
             -6.7142572,-29.5416541,500000.00 
             -7.1761713,-28.7703022,500000.00 
             -7.7761695,-28.0780054,500000.00 
             -8.4953305,-27.4839749,500000.00 
             -9.3124660,-27.0044676,500000.00 
             -10.2046122,-26.6524670,500000.00 
             -11.1474904,-26.4374313,500000.00 
             -12.1159516,-26.3651097,500000.00 
            </coordinates> 
           </LinearRing> 
          </outerBoundaryIs> 
         </Polygon> 
        </MultiGeometry> 
       </Placemark> 
      </Folder> 
     </Folder> 
     <!-- end: TrimLinesAndPatches --> 
    </Folder> 
</Document> 

Я попробовал также «вытолкнуть» его, но и там никакого эффекта.

Что-то не в порядке с моим файлом или есть ошибка в GE?

ответ

0

altitudeMode должен быть связан с Polygon, а не с MultiGeometry. Выдавливание и тесселлат также должны быть дочерними элементами под элементом Polygon.

Скорректированный KML будет такой:

<MultiGeometry> 
    <Polygon> 
     <extrude>0</extrude> 
     <tessellate>1</tessellate> 
     <altitudeMode>absolute</altitudeMode> *** 
     <outerBoundaryIs> 
      <LinearRing>...</LinearRing> 
     </outerBoundaryIs> 
    </Polygon> 
</MultiGeometry> 

Кроме того, если у вас есть только один геометрия в MultiGeometry, то вы должны отказаться от MultiGeometry полностью и просто использовать Polygon.

+0

Это легко! Мне стыдно! – Domenico