2015-02-10 3 views
0

Моя цель состоит в том, чтобы иметь возможность рисовать затененный многоугольник над определенной областью в Google Earth с использованием KML-файла. Я создал документ KML с одним меткой и полигоном с требуемыми координатами и могу импортировать файл в карты Google Мои карты и отображать многоугольник. Однако, когда я открываю один и тот же файл с Google Earth, координаты, по-видимому, обрабатываются по-разному, а многоугольник неверен (см. Изображение). Есть ли что-то, что я пропустил в своем KML-файле, который заставляет Google Earth делать это?Почему Google Earth меняет координаты полигона KML?

Это исходные координаты файла.

<coordinates> 
    149.02126, -36.489864, 100 
    149.3816, -36.31477, 100 
    149.25783, -36.134285, 100 
    148.9647, -36.4074, 100 
    149.02126, -36.489864, 100 
</coordinates> 

Если скопировать многоугольник из Google Планета Земля и вставить его в текстовый файл в формате KML я получаю следующие координаты

<coordinates> 
    149.02126,-36.489864,100 
    149.3816,0,0 
    -36.31477,100,0 
    149.25783,-36.134285,100 
    148.9647,-36.4074,100 
    149.02126,-36.489864,100 
</coordinates> 

Полная Оригинал KML файла:

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2"> 
    <Document> 
     <Style id="examplePolyStyle"> 
     <PolyStyle> 
      <color>7f0000ff</color> 
      <colorMode>random</colorMode> 
      <fill>1</fill> 
      <outline>1</outline> 
     </PolyStyle> 
     </Style> 
     <Placemark> 
     <name>ID: AU201502070705001Issued: 2015-02-07T07:53:00.000Z</name> 
     <description>Begins: 2015-02-07T07:53:00.000ZEnds: 2015-02-07T08:38:00.000Z</description> 
     <styleUrl>#examplePolyStyle</styleUrl> 
     <Polygon> 
      <outerBoundaryIs> 
       <LinearRing> 
        <coordinates>149.02126, -36.489864, 100 149.3816, -36.31477, 100 149.25783, -36.134285, 100 148.9647, -36.4074, 100 149.02126, -36.489864, 100</coordinates> 
       </LinearRing> 
      </outerBoundaryIs> 
     </Polygon> 
     </Placemark> 
    </Document> 
</kml>  

Полный KML файл, скопированный из Google Планета Земля

<?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>Latest_Single_noCommaNoSpaces.kml</name> 
    <Style id="examplePolyStyle"> 
     <PolyStyle> 
      <color>7f0000ff</color> 
      <colorMode>random</colorMode> 
     </PolyStyle> 
    </Style> 
    <Placemark> 
     <name>ID: AU201502070705001Issued: 2015-02-07T07:53:00.000Z</name> 
     <description>Begins: 2015-02-07T07:53:00.000ZEnds: 2015-02-07T08:38:00.000Z</description> 
     <styleUrl>#examplePolyStyle</styleUrl> 
     <gx:balloonVisibility>1</gx:balloonVisibility> 
     <Polygon> 
      <outerBoundaryIs> 
       <LinearRing> 
<coordinates> 
    149.02126,-36.489864,100 
    149.3816,0,0 
    -36.31477,100,0 
    149.25783,-36.134285,100 
    148.9647,-36.4074,100 
    149.02126,-36.489864,100 
</coordinates> 
       </LinearRing> 
      </outerBoundaryIs> 
     </Polygon> 
    </Placemark> 
</Document> 
</kml> 

Screenshot of polygon in Google Maps

Screenshot of same polygon in Google Earth

ответ

2

Ваши оригинальные координаты KML имеют пробелы в кортежах, that is not valid (пространств отдельные кортежей).

<coordinates>149.02126, -36.489864, 100 149.3816, -36.31477, 100 149.25783, -36.134285, 100 148.9647, -36.4074, 100 149.02126, -36.489864, 100</coordinates> 

должно быть:

<coordinates>149.02126,-36.489864,100 149.3816,-36.31477,100 149.25783,-36.134285,100 148.9647,-36.4074,100 149.02126,-36.489864,100</coordinates> 
+0

Благодарим Вас за решение этой проблемы, я очень ценю это. – Matt

Смежные вопросы