Javascript 使用geoxml3显示多边形kml文件

Javascript 使用geoxml3显示多边形kml文件,javascript,google-maps-api-3,xml-parsing,kml,geospatial,Javascript,Google Maps Api 3,Xml Parsing,Kml,Geospatial,我使用geoxml3是为了能够解析kml层的数量。现在由于某些原因,它只适用于点,而不适用于多边形kml文件。下面是我正在使用的代码 function displayKml() { geo = new geoXML3.parser({ map: map, zoom: false, singleInfoWindow: true, infoWindowOptions: { maxWidth

我使用geoxml3是为了能够解析kml层的数量。现在由于某些原因,它只适用于点,而不适用于多边形kml文件。下面是我正在使用的代码

function displayKml() {
        geo = new geoXML3.parser({
            map: map,
            zoom: false,
            singleInfoWindow: true,
            infoWindowOptions: { maxWidth: 100 },
            processStyles: true,
            markerOptions: { shadow: '' }
        });
        geo.parse("Resources/" + document.getElementById('<%= text2.ClientID %>').value);
    }
函数displayKml(){
geo=新的geoXML3.0语法分析器({
地图:地图,
zoom:错,
singleInfoWindow:对,
infoWindowOptions:{maxWidth:100},
processStyles:对,
标记选项:{shadow:'}
});
parse(“Resources/”+document.getElementById(“”).value);
}
下面是多边形kml文件的一个片段

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document><Folder><name>polygon_road</name>
<Schema name="polygon_road" id="polygon_road">
    <SimpleField name="Name" type="string"></SimpleField>
    <SimpleField name="Description" type="string"></SimpleField>
    <SimpleField name="id" type="int"></SimpleField>
    <SimpleField name="road_id" type="int"></SimpleField>
</Schema>
  <Placemark>
    <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
    <ExtendedData><SchemaData schemaUrl="#polygon_road">
        <SimpleData name="id">1</SimpleData>
        <SimpleData name="road_id">8</SimpleData>
    </SchemaData></ExtendedData>
      <Polygon><outerBoundaryIs><LinearRing><coordinates>14.517292705321212,35.901268542738997 14.517607913551563,35.901660659810574 14.517685853364705,35.901598006913375 14.517365353364706,35.901199306913377 14.517359591135264,35.901193253552186 14.517352901130216,35.901188244530104 14.508563647353409,35.895689849334943 14.508510612009246,35.895774626998687 14.517292705321212,35.901268542738997</coordinates></LinearRing></outerBoundaryIs></Polygon>
  </Placemark>
  <Placemark>
    <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
    <ExtendedData><SchemaData schemaUrl="#polygon_road">
        <SimpleData name="id">2</SimpleData>
        <SimpleData name="road_id">10</SimpleData>
    </SchemaData></ExtendedData>
      <Polygon><outerBoundaryIs><LinearRing><coordinates>14.518412050213227,35.900771848093811 14.518465407563996,35.900687272724355 14.510931707563996,35.895934372724355 14.510878350213227,35.896018948093811 14.518412050213227,35.900771848093811</coordinates></LinearRing></outerBoundaryIs></Polygon>
  </Placemark>
  <Placemark>
    <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
    <ExtendedData><SchemaData schemaUrl="#polygon_road">
        <SimpleData name="id">3</SimpleData>
        <SimpleData name="road_id">12</SimpleData>
    </SchemaData></ExtendedData>
      <Polygon><outerBoundaryIs><LinearRing><coordinates>14.515100381551473,35.90111915074295 14.515153218448528,35.901034249257044 14.509212818448528,35.89733734925705 14.509159981551473,35.897422250742956 14.515100381551473,35.90111915074295</coordinates></LinearRing></outerBoundaryIs></Polygon>
  </Placemark>

罗湖路
ff0000ff0
1.
8.
14.517292705321212,35.901268542738997 14.517607913551563,35.901660659810574 14.517685853364705,35.901598006913375 14.517365353364706,35.901199306913377 14.517359591135264,35.901193253552186 14.517352901130216,35.901188244530104 14.508563647353409,35.895689849334943 14.508510612009246,35.895774626998687 14.517292705321212,35.901268542738997
ff0000ff0
2.
10
14.518412050213227,35.900771848093811 14.518465407563996,35.900687272724355 14.510931707563996,35.895934372724355 14.510878350213227,35.896018948093811 14.518412050213227,35.900771848093811
ff0000ff0
3.
12
14.515100381551473,35.90111915074295 14.515153218448528,35.901034249257044 14.509212818448528,35.89733734925705 14.509159981551473,35.897422250742956 14.515100381551473,35.90111915074295

不要使用它的主干版本,它相当旧,只支持标记。和分支都支持多边形、多段线和标记。如果不需要zip压缩(kmz文件支持),请使用polys分支。如果您需要KML中更多与标准兼容的支持,那么kmz分支可以更好地支持文档化的标准,但没有针对非kmz文件进行良好的测试

(摘自)

历史

trunk - (old, not currently maintained) original version network_link branch - (old, not currently maintained) development branch for network link functionality, not well tested polys branch - development branch for polylines, polygons, current active development branch. Supports polylines, polygons, markers and groundoverlays kmz branch - development branch for kmz support, built off of the polys branch. Supports external styles, and is more standards compliant. See issue 53 for details (http://code.google.com/p/geoxml3/issues/detail?id=53) and current status. 主干-(旧,当前未维护)原始版本 网络链接分支-(旧的,当前未维护)网络链接功能的开发分支,未经过良好测试 多边形分支-多段线、多边形、当前活动开发分支的开发分支。支持多段线、多边形、标记和地面覆盖 kmz分公司-kmz支持的开发分公司,在polys分公司的基础上建立。支持外部样式,并且更符合标准。详情见第53期(http://code.google.com/p/geoxml3/issues/detail?id=53)以及目前的状况。 您的KML缺少
属性,因此多边形的边界没有宽度(因此您无法看到它们)。kmz分支有一组更好的默认值。如果我添加宽度,您可以看到:


您使用的是什么版本的?多边形仅在和分支中受支持。如果您没有使用geoxml3的主干版本,并且点(标记)有效,但多边形无效,那么KML可能有问题,而不是加载方式。您能否提供显示问题的KML(它不一定是您的真实文件)。是否有支持所有三种类型对象(点、线和多边形)的geoxml3版本@geocodezipYes。poly和kmz分支都支持这些。如果您不需要zip压缩(kmz文件支持),请使用polys分支中的版本,这是最新和最好的版本。你在哪里用后备箱?是的我想我在用后备箱。我将尝试多边形。仍然不适用于多边形。我下载了kmz版本,但仍然只对points有效@Geocodezip当我们回到“你能提供显示问题的KML吗(它不一定是你的真实文件)”。如果点工作,但多边形不工作,我怀疑你的KML(可能是多边形的样式)。是的。够了,我可以看到你看到的。你认为多边形会是什么样子?我想,在这种情况下,我也看不到带有poly分支的行。我将对此进行调查,可能是该特定示例的问题,也可能是库本身的问题。kmz版本看起来合理,线条比应该的要窄一点。