Closed AnaBelgun closed 1 year ago
Initial testing of protomaps renderer was positive. However after looking into labelling and the current state of protomaps (no longer under active development) it was decided in discussion with Crispy to implement a new Mapbox Vector tiles imagery provider.
Pete is working on setting up the tileserver GL to work with magda
15 May 23:
Currently we use ProtomapsImageryProvider to read several vector formats and rasterize them on the fly for use in Leaflet and Cesium viewers. This approach works well for rendering of geometry and very simple labelling. Modern Javascript map viewers however are tuned for rendering vectors directly and the Mapbox Vector Tile specification allows for complex and expressive labelling. nb: the ArcGIS Vector Tile protocol implements the Mapbox Vector Tile spec. ProtomapsImageryProvider was not made with complex labelling in mind, so therefore does not support the kind of visualisations required by customers such as NSW Digital Twin basemaps.
Cesium's github repo has an open issue since 2014 discussing the support of vector data see hereTo summarize that discussion -- using the approach taken by Protomaps and tileserver-gl is the only current option. It is acknowledged a better approach would be to render directly to the Cesium managed canvas but there are no plans for this work to be undertaken as yet.
tileserver-gl was developed by MapTiler to provide a server side solution to reading vector tiles and providing raster tiles on the fly. Configuration is used to point tileserver-gl to an MVT service as a datasource (in our current use case ArcGIS VectorTile services), tileserver-gl then proxies the requests to the datasource exposed to the client application as raster (png, wbp, jpg) {z}/{x}/{y} tiles. tileserver-gl uses MapLibre native to acheive this, therefore it does support the full MVT spec. We currently have a POC running in NSW Digital Twin Dev
3 of the basemaps in this Terria instance
This POC exposes 2 issues that need addressing before we publish to production
Setting maximumLevel trait on the url-template layer alleviates the issue of blank tiles being generated below zoom level 17 -- change made and testable in dev
Update 24 May:
2 June 2023:
Summary for NSW DT
Terria.js has chosen TileServer as its preferred tool for rendering vector tiles, including support for ArcGIS Vector services. TileServer is an open-source map server contributed to the geospatial community by MapTiler. TileServer's robust caching mechanisms and optimized rendering algorithms ensure efficient rendering of vector data with complex styling, enabling Terria.js to deliver fast and responsive maps to NSW Digital Twin users. By leveraging TileServer's compatibility with various vector tile formats, including ArcGIS Vector Tiles, Terria.js offers an enhanced mapping experience that empowers users to explore and utilize the geospatial data provided by the NSW government effectively.
This ticket is to record the work for supporting the Esri Vector Tile format.