我需要从以下一种文件类型中将一组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": [[[...]]]
}
},
...
],
}
答案 0 :(得分:0)
您可以将ExtrudeSymbol3DLayer与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。