Google Maps API不会显示KML图层

时间:2015-11-30 02:33:53

标签: javascript google-maps kml

我在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>

谢谢,

2 个答案:

答案 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 validatorFeed 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>