我有一个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。
任何帮助都将受到高度赞赏,谢谢。
答案 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之前。