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

时间:2019-05-28 18:37:14

标签: javascript gis geojson arcgis arcgis-js-api

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

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

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

是否可以将定义为GeoJSON的一组2D多边形要素获取为ArcGIS JS API 4.11中的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": [[[...]]]
      }
    },
    ...
  ],
}

1 个答案:

答案 0 :(得分:0)

您可以将ExtrudeSymbol3DLayerGeoJSONLayer一起使用。使用看起来像这样的渲染器:

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