微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可视化 3D 对象上的缓冲区

如何解决可视化 3D 对象上的缓冲区

我有一个 3D 建筑物的 shapefile(多面体)。我也有一个文件。我想在点文件上运行一个缓冲区,以查看缓冲区与建筑物交互的点。基本上我想可视化特定距离的人可以从一个点看到什么。如果我用建筑物(多边形)文件在 2D 中进行,这就是我得到的。似乎无法找到在 3D 中执行此操作的方法。有什么想法吗???

2D example

3D attempt

解决方法

一种方法是使用 ArcGIS API for JavaScript 并将每个点可视化为多个透明圆柱体。这可以通过对每个缓冲距离使用 PointSymbol3DObjectSymbol3DLayer 来完成:

pointsLayer.renderer = new SimpleRenderer({
  symbol: new PointSymbol3D({
    symbolLayers: [
      new ObjectSymbol3DLayer({
        anchor: "center",width: 120,// 120m buffer distance
        depth: 120,// 120m buffer distance
        height: 70,resource: { primitive: "cylinder" },material: { color: [237,248,177,0.6] },castShadows: false
      }),new ObjectSymbol3DLayer({
        anchor: "center",width: 70,// 70m buffer distance
        depth: 70,// 70m buffer distance
        height: 68,material: { color: [127,205,187,width: 20,// 20m buffer distance
        depth: 20,// 20m buffer distance
        height: 66,material: { color: [44,127,184,0.7] },castShadows: false
      })
    ]
  })
});

以下是在 3D 建筑物内使用随机点随机点的现场示例:https://codepen.io/arnofiva/pen/d228b8e28614d4b48fd1d57d68d17418?editors=0010

3D buildings with buffers

根据点数,您还可以提供在选定缓冲距离内隐藏建筑物的交互式体验。使用客户端过滤器查看此示例:https://developers.arcgis.com/javascript/latest/sample-code/layers-scenelayer-feature-masking/index.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。