【问题标题】:Convert a newly created polygon to GeoJSON in Leaflet在 Leaflet 中将新创建的多边形转换为 GeoJSON
【发布时间】:2015-02-06 12:38:15
【问题描述】:

我通过单击 web 应用程序中的按钮来创建不同大小的多边形。

我还在对象内部添加了一些值作为嵌套对象,例如{properties:{status:'active'}}。然后我运行多边形的toGeoJSON() 方法并得到一个带有propertiesgeometry 对象的对象。 properties 对象为空。

我的问题是如何将我的值添加到对象中,以便在转换时将它们传递给 GeoJSON 对象?

【问题讨论】:

    标签: javascript leaflet geojson


    【解决方案1】:

    为多边形创建 GeoJSON 对象时,多边形上的任何“额外”数据都会丢失。只有多边形的坐标被传递到 GeoJSON 对象中。请参阅 Leaflet 源中 layer/GeoJSON.js 中的第 213 和 171 行。在第 171 行,您可以看到创建了一个新对象,并且该对象有一个名为“properties”的属性,但该 properties 属性与 Polygon 上的任何名为“properties”的属性无关。

    创建 GeoJSON 对象后,您可以通过执行以下操作将 Polygon 中的属性复制到 GeoJSON 对象的属性对象中。但是 - 我不确定“属性”对象在 GeoJSON 规范中的具体含义(如果有的话)。

    var json = polygon.toGeoJSON();
    L.extend(json.properties, polygon.properties)
    

    【讨论】:

      【解决方案2】:

      InPursuits 的答案肯定对我有用...

      var rect = L.rectangle(bounds).toGeoJSON();
      L.extend(rect.properties, {
          itemIndex: v.itemIndex
      });
      

      【讨论】:

        猜你喜欢
        • 2017-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-10
        • 2016-07-08
        • 2021-05-14
        相关资源
        最近更新 更多