KML文件未显示正确的位置和多边形方向。语法问题?

时间:2012-03-12 17:35:55

标签: kml google-earth

您好我写了一个Javascript,根据google maps api v3上标记的多边形区域输出KML文件。用于正常工作的文件在Google地球专业版上显示了正确的位置和多边形形状

现在突然没有在伦敦显示伦敦眼区域,它显示了刚果的一个区域,多边形甚至没有在谷歌地球上正确显示。我试图调试它似乎是坐标似乎导致问题。但是,当我在谷歌地图上将其保存到MyPlaces时,它会解析KML并正确显示形状和位置。谢谢你的帮助。 KML以下

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Document>
<name>test</name><description>test</description>
<Style id='style1'>
<LineStyle>
<width>5</width>
  </LineStyle>
<PolyStyle>
<color>0FF00000</color>
<fill>1</fill>
 <outline>1</outline>
 </PolyStyle>
 </Style>
<Placemark>
 <name>?</name>
<styleUrl>#style1</styleUrl>
<Polygon>
<outerBoundaryIs>
 <LinearRing>
 <tessellate>1</tessellate>
<coordinates>
51.50519078602326, -0.12681582942195746, 
51.50708732603467, -0.12381175532527777, 
51.50553804573176, -0.1123104430694184, 
51.50166461450478, -0.11462787165828558, 
51.50519078602326, -0.12681582942195746, 
</coordinates></LinearRing></outerBoundaryIs></Polygon></Placemark>
</Document>
</kml>

1 个答案:

答案 0 :(得分:0)

您的KML无效,Google地球不再像接受此类无效坐标那样宽松。

具体来说,你在KML的每一行末尾都有一个额外的逗号 - 所以只需删除它们,或者在它们之后添加可选的高度值。

同时删除坐标各个部分之间的空格。您的坐标现在将由Google地球转换为三个单独的坐标: 51.50519078602326,0,0和-0.12681582942195746,0,0和0,0,0。

将其更改为:
51.50519078602326,-0.12681582942195746,0
51.50708732603467,-0.12381175532527777,0

或者:
51.50519078602326,-0.12681582942195746
51.50708732603467,-0.12381175532527777

有关多边形示例的信息,请参见https://developers.google.com/kml/documentation/kml_tut#polygons,有关其他详细信息,请参阅https://developers.google.com/kml/documentation/kmlreference#linearring部分。