JB9*_*B94 3 gis arcgis qgis arcgis-js-api
我有多边形几何图形,并使用 a 以 3D 形式将它们可视化ExtrudeSymbol3DLayer,如 SDK文档和示例中所述:
var symbol = {
type: "polygon-3d", // autocasts as new PolygonSymbol3D()
symbolLayers: [{
type: "extrude", // autocasts as new ExtrudeSymbol3DLayer()
size: 5, // 5 meters in height
material: { color: "red" }
}]
};
Run Code Online (Sandbox Code Playgroud)
有什么办法可以将这些 3D 挤压件堆叠在一起吗?例如,如果我有纽约市的几何图形,我想用一种颜色从底部拉伸到大约 5m,用一种颜色拉伸 5m 到 10m,等等。有点像制作堆积条形图,但是以更多地理方式。任何意见将不胜感激!
这可以通过挤压几何图形并使用elevationInfo图层上的属性将它们放置在一定高度来实现。下面的示例假设您有一个具有多边形几何形状的图层(例如FeatureLayer或GeoJSONLayer)。
对于挤出,告诉图层用ExtrudeSymbol3DLayer. 在下面的代码片段中,所有多边形的高度均为 5 米。
layer.renderer = {
type: "simple",
symbol: {
type: "polygon-3d",
symbolLayers: [
{
type: "extrude",
size: 5, // height in meters
material: {
color: "red"
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
之后,您可以通过将挤出的多边形放置在特定高度来使它们飞行relative-to-ground。下面的示例将渲染距地面 10 米的所有多边形。
layer.elevationInfo = {
mode: "relative-to-ground",
offset: 10,
unit: "meters"
}
Run Code Online (Sandbox Code Playgroud)
多边形还不会显示为堆叠的,因为它们都具有相同的颜色、高度和距地面的标高。我们基本上希望在上面的代码片段中为每个多边形拥有不同的值。
以下示例代码通过添加来实现此目的
它们都取决于面要素的属性,因此可以通过更改属性值进行调整。
layer.elevationInfo = {
mode: "relative-to-ground",
offset: 10,
unit: "meters"
}
Run Code Online (Sandbox Code Playgroud)
这是一个运行示例,显示纽约中央公园的一些拉伸多边形。 https://codepen.io/arnofiva/pen/4071d4e79a3cb921f42d6a9e83f5b418?editors=1010
| 归档时间: |
|
| 查看次数: |
809 次 |
| 最近记录: |