NASA-AMMOS / NASA-AMMOS/3DTilesRendererJS
Plugins: Add support for other tiled formats
Open
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 2.5k
- Forks
- 416
- Avg merge
- 17h 52m
- Merged PRs (30d)
- 37
Description
2D Formats
GeoPackage, Geodatabase, KML/KMZ, GeoJSON, TopoJSON, and Shapefiles
- Vector formats
- GeoPackage
- Geodatabase
- TopoJSON
- Shapefiles
- KML / KMZ: https://en.wikipedia.org/wiki/Keyhole_Markup_Language
- Cloud Optimized GeoTiff
- Tiled TIFF file with different levels of detail embedded
- https://developers.planet.com/docs/planetschool/an-introduction-to-cloud-optimized-geotiffs-cogs-part-1-overview/
- MVT Extruded 3D Building
- Extrude buildings from MVT building footprints and metadata, settle ray cases / shader
- https://wiki.openstreetmap.org/wiki/Simple_3D_buildings
- LERC
- Seldom used
- Definition: https://github.com/Esri/lerc (including JS parser)
- Files: https://services.arcgisonline.com/arcgis/rest/services/WorldElevation3D
- structured as WMTS
- Other
Ellipsoid projection- Repeat tiles on X and Y
-
Mapbox Tilejson Format- https://github.com/mapbox/tilejson-spec
- Users can fetch this themselves and instantiate the overlay.
- Protomaps
- https://protomaps.com/
- 2d vectorized data with text / metadata information
- https://overturemaps.org/
- #1575
- XYZ MVT Data
- OpenStreetMap also provides vector tiles in the MVT format.
- Another vector format? here
- #1575
- WMS
- #1299
- #1302
- GeoJSON
- #1305
- WMTS Capabilities
- Support the WMTS Capabilities format to infer tile mtrices, etc without explicit user specification or url templating. See sample here and GIBS capabilities here.
- Add a parser to enumerate all the layer information and options / dimensions.
- Allow for passing the list directly into the WMTSLayer for construction or passing the capabilities url in directly and specifying the keys to use.
- https://services.arcgisonline.com/arcgis/rest/services
- WMTS tiles for rendering 2d map data
- Can support planar or ellipsoid projection
- https://api.oneatlas.airbus.com/guides/oneatlas-basemap/g-oab-wmts-basic/
- https://opengeospatial.github.io/e-learning/wmts/text/main.html
- Seems to be TMS but flipped on Y
- Cesium (and many other libraries) seem to avoid the capabilities file and just require passing in the url parameters (see cesium's implementation here).
- It seems Cesium also recommends the "OpenLayers" parser here or here.
Or a leaflet integration capability here. - WMTS works currently with XYZ format template but would be good to support this more officially / directly. Eg class or string interpolation arguments (matrix set, time).
- TMS data
- Supported in Cesium Ion "imagery"
- https://cesium.com/learn/3d-tiling/tiler-data-formats/
- XYZ data
- Deep Zoom Images for rendering high resolution images
- #945
- If needed could add support for Collections, DisplayRects
DEM Formats
- TerrainDEM
- https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-dem-v1/
- Optimized version of terrain rgb
- Requires handling sparse content (higher res subview of the parent tile)
- TerrainRGB
- https://docs.mapbox.com/data/tilesets/reference/mapbox-terrain-rgb-v1/
- RGB-encoded terrain - high frequency detail can be used for lighting, concavity shading, etc
- #1370
- Terrarium
- Similar to TerrainRGB but different encoding
- https://github.com/tilezen/joerd/blob/master/docs/formats.md
- #1370
- QuantizedMesh tiles for rendering ion terrain
- https://github.com/CesiumGS/quantized-mesh
- Provide an option to construct a solid volume CSG support.
3D Formats
- PoTree
- Point cloud hierarchy structure
- https://github.com/cpj001/potree-develop/blob/master/docs/potree-file-format.md
- COPC
- COG-inspired point cloud format
- https://copc.io/
- I3S
- Generalized 3d hierarchy system similar to 3d tiles.
- https://www.ogc.org/publications/standard/i3s/
Coordinate Reference Systems
- EPSG:3031, used for Antarctic data sets. Some ArcGIS data uses this.
- EPSG:21781, used for Swiss data sets.
Data Sources
- 3D OpenStreetMap Data
- AWS Open Terrain Tiles
- https://registry.opendata.aws/terrain-tiles/
https://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/{x}/{y}.png(terrarium files)https://s3.amazonaws.com/elevation-tiles-prod/normal/{z}/{x}/{y}.png(surface normal files)https://s3.amazonaws.com/elevation-tiles-prod/geotiff/{z}/{x}/{y}.tif(elevation)
- Mapterhorn
- KML-formatted mars data: https://caseyhandmer.wordpress.com/2024/02/16/global-terrain-map-of-mars-at-7-m-resolution/
- ESA Data: https://esa-worldcover.org/en/data-access
- Terrascope: https://docs.terrascope.be/Developers/WebServices/OGC/WMTSv2.html
- Mapbox
- Jonni Walker's data sets (see here)
- OpenStreetMap tiles (here)
- ArcGIS data sets (here)
- NASA GIBs data sets (here)
- Cesium Ion
- https://geotiles.citg.tudelft.nl/
- Protomaps (here)
- OpenDroneMap.org
- https://qchizu.jp/
- Esri data format - may require custom vector data format
- Swiss EPSG data sets
- 3D tiles of vectorized location names
- WMTS in EPSG:21781 (Swiss projection), in particular SWISSIMAGE (swiss aerial imagery)
- Dutch Data Sets (see #1323)
- OpenBasisKaart: https://www.openbasiskaart.nl/mapcache/wmts/?SERVICE=WMTS&REQUEST=GETCAPABILITIES
- PDOK Luchtfoto: https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0?request=GetCapabilities&service=WMTS
- PDOK Achtergrondkaart: https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0?request=GetCapabilities&service=WMTS
- PDOK Kadaster KadastraleKaart: https://service.pdok.nl/kadaster/kadastralekaart/wmts/v5_0?request=GetCapabilities&service=WMTS
- PDOK Kadaster BGT: https://service.pdok.nl/lv/bgt/wmts/v1_0?request=GetCapabilities&service=WMTS
- Leafmap page on Google open buildings.
- Global Building Atlas
Authentication APIs
bing maps- here maps
- mapbox
- maptiler
- openmaptiles
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue lists many unchecked formats but names no source files, tests, or single implementation target. Start by selecting one format and comparing it with the checked XYZ, WMTS, or TerrainRGB support listed here. Define the relevant rendering path, test data, and acceptance criteria before work begins; done should mean that one format is supported and verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, three.js
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100