我正在研究KML。我已经生成了以下KML,它适用于Google地球,但对Google地图无效。
问题是所有图标都没有显示出来。在URL中输入的所有图标都是32x32。
http://theinternallight.com/KML/GetAllCountryScalars%20(47).kml
任何人都可以告诉我我做错了什么。
先谢谢
答案 0 :(得分:0)
当KML显示不正确时,首先要检查的是KML是否符合标准。 KML中元素的顺序具有严格的排序,例如,Style元素必须位于Point几何体之前,因此KML无效。可以找到具有元素排序的KML地标的正确结构here。
以下是原始KML中的错误排序示例:
<Placemark>
<Point>
<coordinates>180,-5,0</coordinates>
</Point>
<Style id="-5180.png">
<IconStyle>
<Icon>
<href>http://theinternallight.com/KML/IconLatLong/-5180.png</href>
</Icon>
</IconStyle>
</Style>
</Placemark>
同样从严格的XML角度来看,“id”属性必须是有效的NCNAME数据类型,以字母数字字符而不是“ - ”开头,但为了简化,您可以从内联样式中删除“id”属性。地标 - 不需要这些。
您可以将其重写如下:
<Placemark>
<Style>
<IconStyle>
<Icon>
<href>http://theinternallight.com/KML/IconLatLong/-5180.png</href>
</Icon>
</IconStyle>
</Style>
<Point>
<coordinates>180,-5,0</coordinates>
</Point>
</Placemark>
您应该进行更改,然后使用Galdos KML Validator验证KML。如果您需要独立的命令行KML验证器,则可以使用XML Validate工具。