KML验证器不接受IconStyle定义

时间:2015-04-10 09:12:34

标签: validation kml

我有一个KML文件,用于在Google地图和Google地球中正确显示。现在Google地图拒绝该文件,而地球仍然接受它并显示内容。这是文件:

http://www.skiforeningen.no/marka/kml/milorg.kml

http://www.kmlvalidator.com/处的Galdos验证程序在第19行显示以下错误:

  

cvc-complex-type.2.4.a:找到无效的内容   元素'IconStyle'。之一   “{ “http://www.opengis.net/kml/2.2”:PolyStyle,   “http://www.opengis.net/kml/2.2”:BalloonStyle中,   “http://www.opengis.net/kml/2.2”:ListStyle,   “http://www.opengis.net/kml/2.2”:StyleSimpleExtensionGroup,   “http://www.opengis.net/kml/2.2”:StyleObjectExtensionGroup}'是   预期

但是在阅读

的文档时

https://developers.google.com/kml/documentation/kmlreference#style

我不明白为什么IconStyle不允许她?此外,http://feedvalidator.org/处的验证程序验证文件没有错误,并说它是有效的KML 2.2 Feed。

任何帮助都将受到高度赞赏,谢谢。

2 个答案:

答案 0 :(得分:0)

http://feedvalidator.org/表示您的KML有效。

KML content isn't available in Google Maps了。

从上面的链接:

  

使用Google地图时,您可能会收到一条通知,说“无法显示某些自定义的地图内容。”

     

这是因为在经典版本的Google地图中或在经典版本的地图中嵌入其他网站的地图中,某些类型的内容不再可用。不再可用的内容类型是KML,即Google地球用于交换地理信息的文件格式。

     

如果您是包含KML内容的自定义地图的所有者,则需要更新您的内容。或者,您可以将KML内容导入“我的地图”。

一种解决方法: 它works with the Google Maps Javascript API v3 KmlLayer

答案 1 :(得分:0)

KML对KML XML模式无效,因此验证程序错误是正确的。 KML中的元素顺序是严格的。在大多数情况下,Google地球会忽略元素的顺序。

您的KML样式结构如下:

  <Style id="MILORG1">
    <LineStyle>
    ...
    </LineStyle>

    <IconStyle>
    ...
    </IconStyle>

    <BalloonStyle>
    </BalloonStyle>
  </Style>

但Style元素中正确的元素序列如下:

  <IconStyle>...</IconStyle>
  <LabelStyle>...</LabelStyle>
  <LineStyle>...</LineStyle>
  <PolyStyle>...</PolyStyle>
  <BalloonStyle>...</BalloonStyle>
  <ListStyle>...</ListStyle>

只需重新排序元素以符合KML规范。 IconStyle必须出现在列表中的LineStyle之前。