#3d #buffer #visualization #arcgis
#3D #буфер #визуализация #arcgis
Вопрос:
У меня есть шейп-файл зданий (мультипатч) в 3D. У меня также есть файл точек. Я хочу запустить буфер в файле точек, чтобы увидеть, до какой точки буфер взаимодействует со зданиями. По сути, я хочу визуализировать на определенном расстоянии то, что можно увидеть из точки. если я сделаю это в 2D с файлом зданий (полигона), вот что я получу. Кажется, не могу найти способ сделать это в 3D. Есть идеи???
Ответ №1:
Один из подходов заключается в использовании ArcGIS API для JavaScript и визуализации каждой точки в виде нескольких прозрачных цилиндров. Это можно сделать, используя a PointSymbol3D
с a ObjectSymbol3DLayer
для каждого расстояния буфера:
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,
resource: { primitive: "cylinder" },
material: { color: [127, 205, 187, 0.6] },
castShadows: false
}),
new ObjectSymbol3DLayer({
anchor: "center",
width: 20, // 20m buffer distance
depth: 20, // 20m buffer distance
height: 66,
resource: { primitive: "cylinder" },
material: { color: [44, 127, 184, 0.7] },
castShadows: false
})
]
})
});
Вот живой пример использования случайных точек случайные точки внутри 3D-зданий: https://codepen.io/arnofiva/pen/d228b8e28614d4b48fd1d57d68d17418?editors=0010
В зависимости от количества точек, вы также можете предоставить интерактивный интерфейс, скрывающий здания на выбранном расстоянии буфера. Проверьте этот пример, используя фильтры на стороне клиента: https://developers.arcgis.com/javascript/latest/sample-code/layers-scenelayer-feature-masking/index.html