谷歌地球和谷歌地图KML不匹配

时间:2014-02-17 04:56:34

标签: google-maps kml google-earth sharpkml

我正在研究KML。我已经生成了以下KML,它适用于Google地球,但对Google地图无效。

问题是所有图标都没有显示出来。在URL中输入的所有图标都是32x32。

http://theinternallight.com/KML/GetAllCountryScalars%20(47).kml

任何人都可以告诉我我做错了什么。

先谢谢

1 个答案:

答案 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工具。