有没有办法将 GeoJSON 中的一组 2D 多边形要素添加到 ArcGIS JS API 4.11 中 SceneView 的 3D 图层中?

Is there a way to add a set of 2D polygon features from GeoJSON into a 3D layer in a SceneView in ArcGIS JS API 4.11?

我需要将一组二维多边形要素从以下文件类型之一加载到 ArgGIS JS API 4.11 中的 SceneView 中:GeoJSON、KML 或 ShapeFile。

我目前可以获取 geojson、KML 或 ShapeFile 格式的数据。我能够使用 GeoJSONLayer 将其放入我的 SceneView,实际层使用带有简单填充的 SimpleRenderer 进行渲染。但是,我需要将这些多边形投影到 3D 中,可能是通过在渲染器中使用 PolygonSymbol3D 和 ExtrudeSymbol3DLayer。问题是从 ArcGIS API 4.11 开始,GeoJSONLayer 不支持 ExtrudeSymbol3DLayer。所以我想我需要找到一种不同的方式来加载支持使用 ExtrudeSymbol3DLayer 的功能。

我希望能够使用 KMLLayer,但是 KMLLayer 对 SceneView 的支持也不适用于 ArcGIS API 4.11。

在 ArcGIS JS API 4.11 中,是否有任何方法可以将一组定义为 GeoJSON 的 2D 多边形要素作为 3D 多边形图层?

这是我当前在 SceneView 中对 2D 图层的图层实现:


let layer = new GeoJSONLayer({
        title: "My Layer",
        url: "http://localhost/data/layer.geojson",
        renderer: {
            type: "simple",
            symbolLayers: [{
                type: "simple-fill", 
                material: { color: "orange" }
            }]
        }
        minScale: 0,
        opacity: 0.40,
        geometryType: "polygon"
    });

下面是我的 GeoJSON 的概念:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type":"Feature",
      "properties":{
        "name":"Feature 1",
        ...
      },
      "geometry": {
        "type": "MultiPolygon",
        "coordinates": [[[...]]]
      }
    },
    ...
  ],
}

您可以使用ExtrudeSymbol3DLayer with a GeoJSONLayer。使用看起来像这样的渲染器:

var renderer = {
  type: "simple", // autocasts as new SimpleRenderer()
  symbol: {
    type: "polygon-3d", // autocasts as new PolygonSymbol3D()
    symbolLayers: [
      {
        type: "extrude", // autocasts as new ExtrudeSymbol3DLayer()
        material: { color: "red" },
        edges: {
          type: "solid", // autocasts as new SolidEdges3D()
          color: [50, 50, 50, 0.5]
        }
      }
    ]
  },
  label: "Population Density per County",

  // these visual variables are the key to "Extruding" the polygons
  visualVariables: [
    {
      type: "size",
      axis: "height",

      field: "pop_2000",
      normalizationField: "sq_miles",
    }
  ]
};

完整演示 here.