首页 > 解决方案 > 使用 turf 创建 LayerGroup 的联合会引发 TypeError

问题描述

我有一个 Leaflet LayerGroup,我添加了 turf.buffers 来喜欢它:

const buffered = turf.buffer(trackAsJson, 0.5, {units: 'kilometers'});

添加两个轨道后,图层组如下所示:

{
  type: "FeatureCollection",
  features: Array(2)
}features: Array(2)0: geometry: {
  type: "Polygon",
  coordinates: Array(1)
}properties: {
  name: "Track 1",
  time: "2016-10-15T13:24:36.000Z"
}type: "Feature"__proto__: Object1: geometry: {
  type: "Polygon",
  coordinates: Array(1)
}properties: {
  name: "Track 2",
  time: "2018-02-17T09:58:32.000Z"
}type: "Feature"__proto__: Objectlength: 2__proto__: Array(0)type: "FeatureCollection"__proto__: Object

现在,我想创建这个 LayerGroup 的联合:

unify(buffers.getLayers());


private unify(polyList): L.GeoJSON {
    let unionTemp: any;
    for (let i = 0; i < polyList.length; i++) {
      if (i === 0) {
        unionTemp = polyList[i].toGeoJSON();
      } else {
        unionTemp = turf.union(unionTemp, polyList[i]);
      }
    }
    return L.geoJSON(unionTemp);
  }

但是,当我这样做时,我收到以下错误:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'type' of undefined
TypeError: Cannot read property 'type' of undefined

在行

    unionTemp = turf.union(unionTemp, polyList[i]);

我真的不明白为什么。欢迎任何提示。

标签: typescriptleafletlayergeoturfjs

解决方案


推荐阅读