我在ArcGIS 10.0中创建了一个KML文件,该文件将加载到谷歌地图和谷歌地球中,但不会使用谷歌地图JavaScript API加载。我收到一条消息,说它是一个无效的KML文件,很遗憾,现在没有一个在线KML验证器工具正在运行。
我是KML的新手,任何想法可能是什么问题?这是我的KML文件结构:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"><Document id="River Basin">
<name>River Basin</name>
<Snippet></Snippet>
<Folder id="FeatureLayer0">
<name>River Basin</name>
<Snippet></Snippet>
<Placemark id="ID_00000">
<name>18010110</name>
<Snippet></Snippet>
<styleUrl>#PolyStyle00</styleUrl>
<MultiGeometry>
<Polygon>
<extrude>0</extrude><altitudeMode>clampToGround</altitudeMode><tessellate>1</tessellate>
<outerBoundaryIs><LinearRing><coordinates> -300.1606990983578,50.39764575695928,etc</coordinates></LinearRing></outerBoundaryIs>
</Polygon>
</MultiGeometry>
</Placemark>
</Folder>
<Style id="PolyStyle00">
<LabelStyle>
<color>00000000</color>
<scale>0.000000</scale>
</LabelStyle>
<LineStyle>
<color>ff0000ff</color>
<width>2.000000</width>
</LineStyle>
<PolyStyle>
<color>00f0f0f0</color>
<outline>1</outline>
</PolyStyle>
</Style>
</Document>
</kml>
谢谢,
喜
答案 0 :(得分:2)
KML的结构无效。如果Google Maps API不正确,可能会出现问题,因此首先需要将其设为有效的KML文件。
KML规范中Document的正确结构是
<Document id="ID">
<!-- inherited from Feature element -->
<name>...</name>
...
<Style>..</Style> or <styleUrl>...</styleUrl>
<!-- specific to Document -->
<!-- 0 or more Schema elements -->
<!-- 0 or more Feature elements -->
</Document>
尝试在<Style>
元素之前移动<Folder>
元素。这将使其成为有效的KML文件。
每当遇到与KML相关的问题时,建议先使用KML validator或Feed Validator对其进行验证。首先修复KML错误,然后解决其他错误。
答案 1 :(得分:0)
将样式元素放在文件夹元素上方的建议有效 - 谢谢!
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"><Document id="River Basin">
<name>River Basin</name>
<Snippet></Snippet>
<Style id="PolyStyle00">
<LabelStyle>
<color>00000000</color>
<scale>0.000000</scale>
</LabelStyle>
<LineStyle>
<color>ff0000ff</color>
<width>2.000000</width>
</LineStyle>
<PolyStyle>
<color>00f0f0f0</color>
<outline>1</outline>
</PolyStyle>
</Style>
<Folder id="FeatureLayer0">
<name>River Basin</name>
<Snippet></Snippet>
<Placemark id="ID_00000">
<name>18010110</name>
<Snippet></Snippet>
<styleUrl>#PolyStyle00</styleUrl>
<MultiGeometry>
<Polygon>
<extrude>0</extrude><altitudeMode>clampToGround</altitudeMode><tessellate>1</tessellate>
<outerBoundaryIs><LinearRing><coordinates> -300.1606990983578,50.39764575695928,etc</coordinates></LinearRing></outerBoundaryIs>
</Polygon>
</MultiGeometry>
</Placemark>
</Folder>
</Document>
</kml>