On June 12-14, 2023, OGC held its 2023 Tiling Interfaces Code Sprint at OGC Strategic Member NGA’s Moonshot Labs in St. Louis, Missouri. The code sprint focused on a select set of Application Programming Interface (API), database, and encoding standards related to map tiles. An API is a standard set of documented functions that expose the capabilities supported or data offered by an application, or service to other applications.
OGC code sprints are collaborative and inclusive events that support the development and refinement of open standards by providing software developers the time and space to focus on projects that implement the standards.
By experimenting with emerging ideas in the context of geospatial standards, OGC code sprints help improve interoperability of existing standards by experimenting with new extensions or profiles, and building or enhancing software products to implement the standards.
In addition, the sprints’ mentor streams provide developers with a helping hand when learning how to use the standards and projects so that they can build a working understanding of them that will last beyond the duration of the sprint.
The mentor stream at the Tiling Interfaces Code Sprint included three entry-level tutorials that used practical use-cases to introduce participants to the standards. One tutorial focused on how to serve vector tiles using the OGC API – Tiles standard, while another focused on compliance testing, and the third provided an overview of a web-based product that implements several OGC standards.
The 2023 OGC Tiling Interfaces Code Sprint focused on the following Standards and specifications:
- OGC API – Tiles: An approved Standard that specifies building blocks for creating Web APIs that support the retrieval of geospatial information as tiles.
- OGC API – Maps: A candidate Standard that specifies building blocks for serving spatially referenced and dynamically rendered electronic maps and charts.
- Changesets API: A prototype specification based on outcomes from OGC Testbed-15 that provides the foundation for a ‘Transactional Tiles API Extension’ for OGC API – Tiles.
- Vector Tiles Extension to GeoPackage: A prototype extension of the OGC GeoPackage Standard to support the use of vector tiles.
- Variable Width Tile Matrix: A grid suited for the whole globe that keeps the data in a geographic Coordinate Reference System.
- Web Map Tile Service (WMTS): The popular OGC Standard that specifies a web service that can serve map tiles of spatially referenced data using tiled images with predefined content, extent, and resolution. The OGC WMTS Standard is the base standard for the WMTS profiles of the US National System for GEOINT (NSG) and the Defense Geospatial Information Working Group (DGIWG).
At its peak, the code sprint had 50 concurrent active users participating remotely across multiple channels on the code sprint’s online platform. In-person participation saw a dozen participants from NGA, OGC, US Army Geospatial Center, UK Defence Science & Technology Laboratory (Dstl), Universitat Autònoma de Barcelona (CREAF), Pixalytics Ltd., Compass, FlightSafety International, and University of Maryland.
Screenshots of a selection of applications deployed for the code sprint are shown below.
Figure 1 is a screenshot of the MiraMon browser accessing multiple OGC-compliant services and APIs deployed by CREAF and other participants.
Figure 2 is a screenshot of TEAM Engine, the open source software used by the OGC Validator, presenting test results for a specific implementation of OGC API – Tiles.
Figure 3 is a screenshot of the open source QGIS Desktop GIS with GDAL embedded to enable import and display of map tiles and vector tiles.
Figure 4 is a Map Tiles viewer by Tech Maven Geospatial.
Figure 5 is a screenshot of the pygeoapi application enabled to support OGC API – Tiles.
During the code sprint, personnel from the US Army Geospatial Center (AGC) presented the Releasable Basemap Tiles (RBT) product which has been in development at AGC (Figure 6). The presentation enabled participants to identify an approach for how QGIS and GDAL could support workflows that involve the downloading of vector tiles and map tiles from an OGC API and the storage of the tiles in a GeoPackage.
Figure 7 shows a map created by KORTxyz from the vector tiles distribution of the Ordnance Survey Zoomstack product and accessed through an OGC API – Tiles interface.
What did we learn?
The following are some of the lessons learned during the code sprint, and recorded by participants on the final day of the code sprint.
There is a need for further developer guidance documents for implementing OGC API – Tiles, particularly with regard to the placement on tileset resources. Such guidance should include clarification on the handling of relation types such as ‘conformance’ that can be represented as simple string literals and also as URLs.
There is a need to make sure there exists a well-documented user journey for people that want to use OGC API – Tiles through QGIS. For example, documentation to take a beginner from their first line of code to a more advanced stage.
Although some work has been done on vector tiles within OGC, more work is needed to advance the specification towards becoming an OGC Standard. Some of the work that could be carried out includes, for example, development of a Best Practice document. RBT could provide a foundation for such a Best Practice.
For future code sprints, it may be necessary to introduce participants to the basics of the specifications that are in focus for the code sprint ahead of the event. Further, it would be helpful to participants such as students to have specific instructions to help participants prepare for the code sprint.
Conclusions and Recommendations
The code sprint met all of its objectives and achieved its goal of supporting the implementation of open geospatial standards within the developer community. Furthermore, the code sprint provided an environment for development and testing of prototype implementations of open standards and a starting point for developers to learn about the draft and approved standards, as well as their implementations.
The participants identified the following recommendations at the conclusion of the code sprint:
- A future code sprint that includes the OGC CDB Standard should examine how vector tiles could be embedded in such a data store.
- AGC is interested in how the World Mercator coordinate reference system (reference EPSG:3395) could support vector tiles in a GeoPackage. The question for future experimentation is whether this could be specified so that it can be implemented by any developer.
- The application of OGC API – Tiles in partitioning and indexing content from an implementation of the OGC SensorThings API standard and the OGC API – Connected Systems candidate standard could be explored in a future code sprint.
- An initiative to develop content for the OGC e-learning resource and the OGC Compliance Program could help improve interoperability between implementations of OGC Standards.
- Although OGC API – Tiles is an approved standard, there is some work to do around addressing interoperability issues in the different implementations (see for instance this Issue on the OSGeo gdal GitHub.