This section provides a reference for APIs that should be implemented by this Building Block.
This section provides a reference for the APIs implemented by the GIS Building Block. The APIs defined here establish a blueprint for how the Building Block will interact with other Building Blocks. Additional APIs may be implemented by the Building Block, but the listed APIs define a minimal set of functionality that should be provided by any implementation of this Building Block.
The GIS BB APIs conform with the OGC web API principles and guidelines and should be deployed as a set of microservices to provide clients consistent access to the key digital functionalities and geographic data in different representations. Microservices are defined to receive requests with relevant inputs and return processed results from key digital functionalities of this Building Block. Microservices are small, independent, and loosely coupled services that perform specific functions within the larger GIS BB key digital functionalities. Each microservice is kept simple and intuitive by focusing on one particular task, and together they form a cohesive and scalable GIS architecture. Each microservice can be developed, deployed, and maintained independently, making it easier to manage and scale the system as needed.
This section provides a reference for APIs that this Building Block should implement. The APIs defined here establish a blueprint for how the Building Block will interact with other Building Blocks. The Building Block may implement additional APIs, but the listed APIs define a minimal set of functionality that any implementation of this Building Block should provide.
The GovStack non-functional requirements document provides additional information on how 'adaptors' may be used to translate an existing API to the patterns described here.
Retrieve templates and resources for creating map layouts and cartographic reports.
/templates
No body
Add a dynamic GIS layer to a map layout or report.
/dynamicLayers
No body
Remove a dynamic GIS layer from a map layout or report.
/dynamicLayers/{layerId}
ID of the dynamic GIS layer to be removed
No body
Add a label to a map layout or report.
/labels
No body
Remove a label from a map layout or report.
/labels/{labelId}
ID of the label to be removed
No body
Add a chart to a map layout or report.
/charts
No body
Remove a chart from a map layout or report.
/charts/{chartId}
ID of the chart to be removed
No body
Add a legend to a map layout or report.
/legends
No body
Remove a legend from a map layout or report.
/legends/{legendId}
ID of the legend to be removed
No body
Add a scale bar to a map layout or report.
/scaleBars
No body
Remove a scale bar from a map layout or report.
/scaleBars/{scaleBarId}
ID of the scale bar to be removed
No body
Add a north arrow to a map layout or report.
/northArrows
No body
Remove a north arrow from a map layout or report.
/northArrows/{northArrowId}
ID of the north arrow to be removed
No body
/geofences
No body
/geofences
No body
/geofences/{geofenceId}
No body
/geofences/{geofenceId}
No body
/geofences/{geofenceId}
No body
/geofences/{geofenceId}/status
No body
/geofences/{geofenceId}/activate
No body
/geofences/{geofenceId}/deactivate
No body
/geofences/{geofenceId}/elements
No body
/geofences/{geofenceId}/elements
No body
/geofences/{geofenceId}/elements/{elementId}
No body
/geofences/{geofenceId}/rules
No body
/geofences/{geofenceId}/elements/{elementId}/actions
No body
Retrieve metadata that describes the purpose and functionality of geospatial analysis tasks or processes.
/metadata
No body
Retrieve detailed information that describes the processes that can be run on the service.
/processes
No body
Execute a geoprocessing task to perform basic spatial analysis operations.
/executeTask
No body
Get the status of an asynchronously executed geoprocessing task.
/taskStatus/{taskId}
ID of the geoprocessing task
No body
Get the result of a finished geoprocessing task.
/taskResult/{taskId}
ID of the geoprocessing task
No body
Terminate an asynchronously executed geoprocessing task.
/terminateTask/{taskId}
ID of the geoprocessing task
No body
Geocode an address to obtain geographic coordinates.
/geocode
No body
Reverse geocode geographic coordinates to obtain an address.
/reverseGeocode
No body
Perform batch geocoding or reverse geocoding using a table file with multiple addresses or coordinates.
/batchGeocode
No body
Retrieve the geocoding result for a specific ID.
/geocodeResult/{resultId}
ID of the geocoding result to retrieve
No body
Retrieve the reverse geocoding result for a specific ID.
/reverseGeocodeResult/{resultId}
ID of the reverse geocoding result to retrieve
No body
Create a new GIS data store.
/dataStore
No body
Retrieve details of a specific GIS data store.
/dataStore/{dataStoreId}
ID of the GIS data store to retrieve
No body
Update details of a specific GIS data store.
/dataStore/{dataStoreId}
ID of the GIS data store to update
No body
Publish metadata descriptions of a GIS database schema and its contents.
/dataStoreMetadata
No body
Create user control for authentication and access permissions.
/userControl
No body
Record editor tracking information for feature editing.
/editorTracking
No body
Replicate a remote GIS database schema.
/replicate
No body
Extract and transfer GIS data layers or features from a remote GIS database.
/extractTransfer
No body
Create, edit, modify, or delete geographic features on the extracted GIS data layers.
/editFeature
No body
Retrieve GIS layer metadata and feature type definitions.
/layerMetadata
Retrieve non-spatial table metadata.
/nonSpatialTableMetadata
Execute GIS feature or attribute query operations interactively or through predefined expressions.
/gisQuery
Execute a spatial query based on location.
/locationalQuery
Execute an attribute-based query.
/attributeQuery
Execute a metadata discovery query.
/discoveryQuery
Retrieve the results of a previously executed query.
/queryResult
Retrieve the type of the data viewer. This endpoint provides information about whether the client data viewer is desktop, mobile, web browser, or unknown.
/type
Specifies the type of supported browser for the data viewer.
desktop
, mobile
, web
, unknown
Retrieve GIS map display details. This endpoint provides access to GIS data through a data viewer, allowing users to view and query geographic or spatial information presented as graphic representations (points, polygons, lines, or raster grids) through thematic GIS layers or attribute tables. The response will include the symbology (pre-defined styles) for each map layer, displayed as a legend alongside a table of contents listing all layers provided by the service.
/details
Add or update spatial bookmarks. This endpoint allows users to capture the spatial extent of a given location as a spatial bookmark in a GIS data viewer. Users can name the bookmark and zoom to the exact extent whenever needed by selecting the bookmark's name. Users can also add, rename, and remove spatial bookmarks as necessary.
/bookmarks
Bookmark A
1
true
true
true
12.3456
34.5678
12.789
34.9012
Set minimum and maximum scale limits for each layer. This endpoint allows users to specify whether a layer is identifiable and/or selectable on the data viewer. These settings are saved as a cache by the data viewer app and are reserved for future data viewer displays. The settings are reset to default when the cache is cleared.
/scale
The name of the GIS layer
The minimum scale to show the layer's feature on the map display
The maximum scale to show the layer's feature on the map display
No body
Enable basic navigation capabilities on the GIS data viewer. This endpoint allows users to perform basic navigation actions such as zooming in and out of a map, and panning to explore the displayed GIS data.
/navigation
Specifies if zooming is supported
The available zoom levels for the map
Specifies if panning is supported
No body
Add, view, delete, and mark map notes on the GIS data viewer. This endpoint allows GIS users to add and share brief notes on the GIS data viewer. Other users can view and comment on these notes. Notes can only be deleted by the creator of the note. Notes are saved and served as a web feature service.
/notes
John Doe
This is a map note.
2023-08-01T12:34:56Z
true
true
true
true
12.3456
34.5678
Perform measuring actions on the GIS data viewer. This endpoint allows users to measure distances and areas on the displayed map.
/measuring
true
true
No body
Retrieve the style applied to the data viewer. This endpoint provides information about the style used to portray the geographic features of each layer on the data viewer.
/style
/routes
No body
/routes/{routeId}
No body
/routes/{routeId}
No body
/routes/{routeId}/directions
No body
/routes/{routeId}/segments
No body
/service-areas
No body