【问题标题】:IconStyle defintion not accepted by KML validatorKML 验证器不接受 IconStyle 定义
【发布时间】:2015-04-10 09:12:33
【问题描述】:

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

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

http://www.kmlvalidator.com/ 的 Galdos 验证器在第 19 行指示以下错误:

cvc-complex-type.2.4.a:发现无效内容以 元素“图标样式”。之一 '{"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 提要。

任何帮助将不胜感激,谢谢。

【问题讨论】:

标签: validation kml


【解决方案1】:

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

KML content isn't available in Google Maps 了。

从上面的链接:

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

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

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

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

【讨论】:

    【解决方案2】:

    相对于 KML XML 架构,KML 无效,因此验证器错误是正确的。 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 之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多