The panoramic image rendered using the Three.JS library and is overlayed onto the SceneView
directly. Arrows are added using the SVGLoader
into the ThreeJS.Scene
for navigation. A mathematical formula is used to synchronise the zoom levels of the ThreeJS.Scene
and the SceneView
for zooming in/out.
To use tools like Measurement and Line of Sight in Overlay Mode, you need to add a layer with 3D buildings to the Scene beforehand.
For Hong Kong, you may find 3D buildings from governmental organisations (e.g. HKMS 2.0, Geodata Store). Yet, for Macau and cities in mainland China (e.g. Shanghai in the second demo below), official data are not always available. You may find shared items on ArcGIS Online from other users, or obtain the data from OSM-Buildings. Be cautious that the coverage of OSM-Buildings is limited, and the data may have large discrepancies.
A custom ArcGIS geoprocessing toolbox (see figure below, osm_buildings_to_feature_lyr.pyt
) is made using the Overpass API Interpreter to convert OSM-Buildings into extruded features. It is not possible to directly import GeoJSON from OSM-Buildings into ArcGIS Pro, because the GeoJSON format is quite unstructured. Without a fixed schema, some records probably have missing attributes. Therefore, you should use the toolbox instead. It can get attributes such as building names.
The retrieved 3D models are not supposed to be used out-of-the-box. It is meant to be a base mesh that has to be double-checked and altered.
After that, an Oriented Imagery Catalogue has to be created and uploaded online. First, download and install the Oriented Imagery Management Tools for ArcGIS Pro.
Unlike point clouds, the 3D buildings do not fit into the photo perfectly since they are low-poly polyhedra with smooth, flat surfaces. In reality, building exteriors (especially roofs) are bumpy. This explains why most 3D buildings appear shorter than those in the photo.
If extra-high accuracy is desired, use the PointCloudLayer
.
Calculate Intersections, Historical Panel
Image segmentation using the MaskRCNN library from arcgis.learn
The Python tool leverages the open-source MaskRCNN convolutional neural network (CNN) library bundled in the arcgis.learn
Python library. The neural network is designed for image segmentation. The segmented boundaries are not neccessarily continuous, it can be partially occluded by something else.
Support for irregular buildings (no longer uses extrusion, uses i3s 3DObjects instead)
i18n, more models