readFeaturesFromObject()

in src/lib/components/molecules/canvas-map/lib/formats/GeoJSON.js [39:80]


  readFeaturesFromObject(object) {
    const geoJSONObject = object
    let features = null
    if (geoJSONObject["type"] === "FeatureCollection") {
      const geoJSONFeatureCollection = object
      features = []
      const geoJSONFeatures = geoJSONFeatureCollection["features"]
      for (let i = 0, ii = geoJSONFeatures.length; i < ii; ++i) {
        const featureObject = this.readFeatureFromObject(geoJSONFeatures[i])
        if (!featureObject) {
          continue
        }
        features.push(featureObject)
      }
    } else if (geoJSONObject["type"] === "Feature") {
      features = [
        this.readFeatureFromObject(
          /** @type {GeoJSONFeature} */ (geoJSONObject),
        ),
      ]
    } else if (Array.isArray(geoJSONObject)) {
      features = []
      for (let i = 0, ii = geoJSONObject.length; i < ii; ++i) {
        const featureObject = this.readFeatureFromObject(geoJSONObject[i])
        if (!featureObject) {
          continue
        }
        features.push(featureObject)
      }
    } else {
      try {
        const geometries = this.readGeometriesFromObject(geoJSONObject)
        const feature = new Feature({ geometries })
        features = [feature]
      } catch {
        console.warn("Unable to interpret GeoJSON:", geoJSONObject)
        return
      }
    }

    return features.flat()
  }