Mesh Document
Purpose
3D surface or object meshes for scene visualization or analysis.
GeoJSON (DB metadata)
{
"type": "Feature",
"geometry": {"type": "Point", "coordinates": [30.15, 59.95]},
"properties": {
"type": "Mesh",
"title": "Bridge Model",
"created_at": "2025-05-12T14:00:00Z",
"updated_at": "2025-05-12T14:00:00Z",
"source": {
"url": "/s3/<bucket>/<ResultKey>/<filename>",
"type": "Mesh"
},
"style": {"scale": 1.0},
"geoReference": {
"position": [30.15, 59.95, 10.0]
},
"metadata": {"crs": "EPSG:4979", "units": "meters"}
}
}
Required properties
properties.type=MeshA representative geometry (point/centroid or footprint polygon in
EPSG:4326)Anchor position in
properties.geoReference.positionusing 3D WGS 84 (EPSG:4979)GLTF/GLB payload (units in meters)
Publishing workflow
Prepare 3D Data:
Ensure input vertices are in Web Mercator with metric height (
EPSG:3857with elevationZin meters).
Normalize Coordinates (
P - Anchor):Calculate 3D centroid
C = [Cx, Cy, Cz]from bounding box inEPSG:3857+ height:Cx = (X_min + X_max) / 2 Cy = (Y_min + Y_max) / 2 Cz = (Z_min + Z_max) / 2
Shift all vertices:
P_local = P - C, centering the model at(0, 0, 0)in local coordinates (avoids WebGL/GPU FP32 jitter).Project centroid
CfromEPSG:3857with height intoEPSG:4979[lon, lat, alt]to serve asgeoReference.position(Anchor Position).
Export Model: Export normalized 3D mesh to
.glb(units in meters).Upload Payload: Upload
.glbto S3/COS and record storage URL.Publish Feature: Register GeoJSON Feature with
geoReference.position(EPSG:4979) andgeometry(2D footprint inEPSG:4326).
Validation checklist
Model coordinates are centered at
(0, 0, 0)with anchor recorded ingeoReference.position.Coordinate frame and units documented in
metadata.File opens in the target viewer.
See Common properties for shared fields like legend, metadata, and classification. For a complete visual walkthrough and presentation of requirements, see 3D Mesh Preparation & Publishing Presentation.