【问题标题】:OL3: extracting 'extended data' from KMLOL3:从 KML 中提取“扩展数据”
【发布时间】:2015-07-16 10:13:15
【问题描述】:

我创建了一个包含一些自定义属性(例如“id”和“room_id”)的 KML 文件。

这些属性存在于 KML 文件的“扩展数据”部分,文件如下:

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Schema name="map" id="map">
    <SimpleField name="id" type="int"></SimpleField>
    <SimpleField name="room_id" type="string"></SimpleField>
</Schema>
<Folder><name>map</name>
  <Placemark>
    <name>room1</name>
    <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
    <ExtendedData><SchemaData schemaUrl="#map">
        <SimpleData name="id">2</SimpleData>
        <SimpleData name="room_id">1</SimpleData>
    </SchemaData></ExtendedData>
      <Polygon><altitudeMode>relativeToGround</altitudeMode><outerBoundaryIs><LinearRing><altitudeMode>relativeToGround</altitudeMode> <coordinates>-0.000010931306469,0.000006764422322 -0.000004193941839,0.000006764422322 -0.000004166884149,0.00000037880765 -0.000010985421848,0.00000043292302 -0.000010931306469,0.000006764422322</coordinates></LinearRing></outerBoundaryIs></Polygon>
  </Placemark>
</Folder>
</Document></kml>

我正在尝试使用 OL3 访问这些属性,但无法弄清楚。这是我用来访问标准 KML 属性“名称”和“描述”的代码:

vector.getSource().forEachFeature(function (feature) {

     var desc = feature.getProperties()['description'];
     console.log(desc);

     var name = feature.getProperties()['name'];
     console.log(name);

});

如何使用 OL3 访问 KML 文件的“扩展数据”属性?

谢谢!

【问题讨论】:

    标签: javascript kml openlayers-3


    【解决方案1】:

    很简单:

     var properties = feature.getProperties();
     console.log(properties['id']);
     console.log(properties['room_id']);
    

    【讨论】:

    • 正确,不知道我怎么漏掉了,你也可以用feature.get('room_id')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    相关资源
    最近更新 更多