0

我正在研究 KML。我生成了以下 KML,它适用于 Google 地球,但不适用于 Google 地图。

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

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

谁能告诉我我做错了什么。

提前致谢

4

1 回答 1

0

当 KML 显示不正确时,首先要检查的是 KML 是否符合标准。KML 中元素的顺序具有严格的顺序,例如,Style 元素必须位于 Point 几何图形之前,因此 KML 无效。可以在此处找到具有元素排序的 KML 地标的正确结构。

以下是在原始 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工具。

于 2014-02-17T14:42:52.747 回答