7 Data Structures

This section provides information on the core data structures/data models that are used by this Building Block.

The diagram below illustrates the proposed resource model that demonstrates the connections between data objects that the GIS Building Block uses. The resource models are represented by a UML class diagram. The GIS building block specification likely has many relationships between different resource types, such as layers, symbologies, and bookmarks. The class diagram concisely represents the structure and relationship between objects in the resource model.

7.1 Resource Model

7.2 Data Elements

7.2.1 Group: Map Display

MapDisplay

FieldTypeDescriptionNotes

Title

String

The title of the map display.

refer to OGC API Common https://ogcapi.ogc.org/common/

Description

String

A summary description of the map display, purpose and contents

refer to OGC API Common https://ogcapi.ogc.org/common/

Attribution

String

Information or credits displayed on the map

refer to OGC API Common https://ogcapi.ogc.org/common/

AccessControl

Boolean

Permissions or access restrictions for the map

refer to OGC API Map Part II: https://docs.ogc.org/is/18-058/18-058.html

EndPoint

String{url}

The URL or endpoint to access the API

refer to OGC API Map Part II: https://docs.ogc.org/is/18-058/18-058.html

CRS

String{coded_domain}

Code for the spatial reference system used by the map

refer to OGC API Map Part II: https://docs.ogc.org/is/18-058/18-058.html

Center_X

Real

The longitude coordinate of the center point of the map

Optional

Center_Y

Real

The latitude coordinate of the center point of the map

Optional

Bounds_MinX

Real

The longitude coordinate of the lower left point of the map bounding box

Bounds_MinY

Real

The latitude coordinate of the lower left point of the map bounding box

Bounds_MaxX

Real

The longitude coordinate of the upper right point of the map bounding box

Bounds_MaxY

Real

The latitude coordinate of the upper right point of the map bounding box

FieldTypeDescriptionNotes

Zoom

Boolean

Specifies if zooming is supported

ZoomLevel

Integer

The available zoom levels for the map

refer to OGC API Map Part I: https://docs.ogc.org/is/20-057/20-057.html

Pan

Boolean

Specifies if panning is supported

SpatialBookmark

FieldTypeDescriptionNotes

Name

String

Title or name given to the bookmark

Create

Integer

Specifies if creating bookmarks is supported.

Remove

Boolean

Specifies if removing bookmarks is supported

Rename

Boolean

Specifies if renaming bookmarks is supported

Zoom to

Boolean

Specifies if zooming to bookmark extents is supported

MinX

Real

The longitude coordinate of the lower left point of the spatial extent captured by the bookmark

filled only when the spatial bookmark "Create" is True

MinY

Real

The latitude coordinate of the lower left point of the spatial extent captured by the bookmark

filled only when the spatial bookmark "Create" is True

MaxX

Real

The longitude coordinate of the upper right point of the spatial extent captured by the bookmark

filled only when the spatial bookmark "Create" is True

MaxY

Real

The latitude coordinate of the upper right point of the spatial extent captured by the bookmark

filled only when the spatial bookmark "Create" is True

MapNote

FieldTypeDescriptionNotes

Creator

String

Name or identifier of the use who created the note

Content

String

The content of text of the map note

TimeSatmp

Date

The timestamp indicating when the note was create

Add

Boolean

Specifies if adding a map note is supported

Delete

Boolean

Specifies if deleting a map note is supported

View

Boolean

Specifies if viewing the content of a map note is supported

Visible

Boolean

Specifies if marking a map note on the map supported

X

Real

The longitude coordinate of the map note label on the map display

filled only when the visibility of the map note is True

Y

Real

The latitude coordinate of the map note label on the map display

filled only when the visibility of the map note is True

Measuring

FieldTypeDescriptionNotes

Distance

Boolean

Specifies if measuring distances is supported

Area

Boolean

Specifies if measuring areas is supported

LayerToC

FieldTypeDescriptionNotes

Visible

Boolean

Specifies if ToC is visible or hidden

LayerOrder

Array

Contains the layer IDs or names in the desired order, indicating how the layers should be displayed in the table of contents

The position of each layer in the array determines its placement in the table of contents, with the first element being the topmost layer and the last element being the bottommost layer

Layer

FieldTypeDescriptionNotes

Title

String

Title or name of the theme that the layer presents

Description

String

A summary description of the layer, purpose and contents

refer to OGC API Map Part I: https://docs.ogc.org/is/20-057/20-057.html

Geometry

Object

An object representing the geometric shape and underlying coordinates and rules for point, line, polygon, curve GIS features, or none.

If none, it is considered a non-spatial attribute table

Visible

Boolean

Specifies if the layer is visible or hidden on the map display

Selectable

Boolean

Specifies if the layer is selectable on the map display

Queryable

Boolean

Specifies if the layer can be queried

Editable

Boolean

Specifies if the layer is editable

Attribute 1

"variable"

Represents a descriptive information or characteristic associated with geographic features represented by the layer theme

The data type assigned will depend of the attribute type

.....................

.....................

.....................

.....................

Attribute n

"variable"

Represents a descriptive information or characteristic associated with geographic features represented by the layer theme

the data type assigned will depend on the attribute type

NonSpatialTable

FieldTypeDescriptionNotes

Title

String

Title or name of the theme that the table presents

Description

String

A summary description of the Table, purpose and contents

refer to OGC API Map Part I: https://docs.ogc.org/is/20-057/20-057.html

Queryable

Boolean

Specifies if the table can be queried

Editable

Boolean

Specifies if the table is editable

Attribute 1

"variable"

Represents a descriptive information or characteristic associated with records represented by the layer theme

The data type assigned will depend of the attribute type

.....................

.....................

.....................

.....................

Attribute n

"variable"

Represents a descriptive information or characteristic associated with the records represented by the layer theme

the data type assigned will depend on the attribute type

ScaleLimit

FieldTypeDescriptionNotes

MinScale

Integer

Specifies the minimum scale to show the layer's feature on map display

If set, the layer features disappear from the map display once zoom into beyond the minimum scale limit

MaxScale

Integer

Specifies the minimum scale to show the layer's feature on map display

If set, the layer features disappear from the map display once zoom out beyond the maximum scale limit

Style

FieldTypeDescriptionNotes

Name

String

The name or identifier of the style applied to the layer

Styles define the symbology and map legends assigned to layers

Description

String

Text description of properties or parameters specific to the style

Refer to OGC API Map Part I: https://docs.ogc.org/is/20-057/20-057.html

Type

String (coded_domain)

A keyword or code to call a predefined style of version in defined or served by OGC API Styles

Style codes or identifiers can be fetched through GC API Styles Part I - check https://developer.ogc.org/api/styles/index.html

DataViewer

FieldTypeDescriptionNotes

Type

String (coded_domain)

A domain code specifying whether the client data viewer is desktop, mobile, web browser, or unknown.

The type of client accessing GIS APIs, may have some implications in terms of interactivity and user experience (navigation, layer manipulation, etc.)

LayerMetadata

FieldTypeDescriptionNotes

Name

String

Title of the dataset or feature

Abstract

String

Abstract description of the dataset or feature

Must adheres to ISO 19115:2014 Standard pm GI Metadata https://www.iso.org/standard/53798.html

Author

String

Author description

Must adheres to ISO 19115:2014 Standard pm GI Metadata https://www.iso.org/standard/53798.html

Geometry

String {coded_domain}

Codes representing the geometry type of the layer (point, line, polygon, non-spatial)

Keywords

String

Keywords associated with the dataset or feature

Must adheres to ISO 19115:2014 Standard pm GI Metadata https://www.iso.org/standard/53798.html

Snippet

Object

Snippet or summary of the dataset or feature

SpatialExtent

Array

Coordinates (lat & long) of the points defining the bounding box of the layer

LastUpdated

Date

Timestamp of the last update of the layer

NonSpatialTableMetadata

FieldTypeDescriptionNotes

Name

String

Title of the dataset or feature

Abstract

String

Abstract description of the dataset or feature

Must adheres to ISO 19115:2014 Standard pm GI Metadata https://www.iso.org/standard/53798.html

Author

String

Author description

Must adheres to ISO 19115:2014 Standard pm GI Metadata https://www.iso.org/standard/53798.html

Keywords

String

Keywords associated with the dataset or feature

Must adheres to ISO 19115:2014 Standard pm GI Metadata https://www.iso.org/standard/53798.html

LastUpdated

Date

Timestamp of the last update of the table

GISQuery

FieldTypeDescriptionNotes

Type

String {coded_domain}

Type of the query, either "ad hoc" or "predefined."

QueryFormat

String

Format of the query (e.g., JSON, XML, SQL).

QueryString

String

The query expression (e.g., SQL)

TimeStamp

Date

Date and time when the query was executed or created

Name

String

Title or description of the query

Optional (only required for predefined query)

LocationalQuery

FieldTypeDescriptionNotes

LayerType

Geometry

Type of the queried GIS layers (point, polygon, or line)

SpatialRelation

String {coded_domain}

Indicates the spatial relationship used in the query (e.g., "intersects," "contains," "within").

Longitude

Real

Represents the longitude value for the location in the query.

Optional: Required only if the queried geographic feature is represented by ONE POINT

Latitude

Real

Represents the latitude value for the location in the query.

Optional: Required only if the queried geographic feature is represented by ONE POINT

Distance

Real

Represents the distance used in the spatial query

Optional: Required only if the query requires a specification of a distance (e.g., bugger distance)

AttributeQuery

FieldTypeDescriptionNotes

AttributeName

String

Name of the attribute being queried (e.g., "population," "temperature," "category").

Operator

String

Indicates the comparison operator used in the attribute query (e.g., "=", ">", "<=", "LIKE").

The values for this attribute should follow the standard comparison operators

Value

String or Numeric

Represents the value used in the attribute query for comparison.

The data type of the Value attribute should match the data type of the attribute being queried. For example, if the AttributeName is "population" and the population values are stored as integers, the Value should also be of integer data type.

DiscoveryQuery

FieldTypeDescriptionNotes

AttributeName

String

Contains the keywords or search terms used for discovering metadata information

This attribute will typically store a comma-separated list of keywords or a single string representing the search terms.

QueryResult

FieldTypeDescriptionNotes

QueryType

String {coded_domain}

The type of query that generated this result

Coded values will include "Locational Query," "Attribute Query," and "Metadata Discovery Query,"

QueryStatus

String {coded_domain}

Represents the status of the query result

Possible values could be "Success," "Partial Result," "No Results Found," "Error," etc.

TimeStamp

Date

Represents the date and time when the query result was generated

7.2.3 Group: GIS Data Management

DataStore

FieldTypeDescriptionNotes

Name

String

Name or label of the GIS datastore

Description

String

A detailed description of the GIS data store

Provider

String

Provider or source of the GIS data store

ConnectionString

String

Connection string required to access the GIS data store

AccessRestrictions

Boolean

Enable or disable access restrictions or permissions required to use the GIS data store

UpdateFrequency

String

Description of how often the GIS data store is updated or refreshed with new data

DataStoreMetadata

FieldTypeDescriptionNotes

Name

String

Title of the datastore

Source

String

Source/Publisher of the datastore

Must adheres to ISO 19115:2014 Standard pm GI Metadata https://www.iso.org/standard/53798.html

Description

String

Description of the datastore

Must adheres to ISO 19115:2014 Standard pm GI Metadata https://www.iso.org/standard/53798.html

Keywords

String

Keywords associated with the datastore

Must adheres to ISO 19115:2014 Standard pm GI Metadata https://www.iso.org/standard/53798.html

LastUpdated

Date

Timestamp of the last publishing date of the datastore

UserControl

FieldTypeDescriptionNotes

Username

String

Username for authentication

Password

String

The password associated with the username for authentication to the GIS data store

EditorPermissions

String

{coded_value}

Codes depicting access control level over editing capabilities provided by the service (view, edit, delete, no edits)

EditorTracking

Boolean

Whether or not it should record who created or updated features and when they did it (providing accountability for the edits)

Optional

OwnerControl

Boolean

Limits access to geographic features based on who created them.

Optional

EditorTracking

FieldTypeDescriptionNotes

EditType

String

{coded_value}

Type of editing operation (create, update, delete)

TimeStamp

String

Timestamp indicating when the edit was made

Replica

FieldTypeDescriptionNotes

SourceDataStore

String {url}

Links the replica to the source GIS Datastore.

TargetDataStore

String {url}

Links the replica to the target GIS Datastore.

ReplicaType

String

{coded_value}

Type of replica operation (creation, synchronization, extraction).

7.2.4 Geocoding and Reverse Geocoding

AddressData

FieldTypeDescriptionNotes

Address

String

Address information for geocoding or reverse geocoding.

Longitude

Real

Longitude coordinate for the address

Used for Reverse Geocoding

Latitude

Real

Latitude coordinate for the address

Used for Reverse Geocoding

AddressAlias

FieldTypeDescriptionNotes

Alias

String

Alias or potential alternative address for the Address Data

An address may have 0 to n aliases

AddressFormat

FieldTypeDescriptionNotes

FormatingName

String

Name of the address format

CountryCode

String

{coded_value}

Country code for the address format

Optional

FormatString

String

Format string representing the structure of the address

GeocodingBatch

FieldTypeDescriptionNotes

BatchType

String

{coded_value}

Code representing whether the batch performs geocoding or reverse geocoding

BatchName

String

Name of the geocoding batch

Status

String

{coded_value}

Status of the geocoding batch (e.g., processing, completed)

TimeStamp

Date

Date and time of when the geocoding batch was completed.

7.2.5 Spatial Awareness and Analysis

Geoprocessing

FieldTypeDescriptionNotes

ProcessingName

String

Name of the geoprocessing task

Description

String

Detailed information that describes the geoprocessing task

Parameters

Array

Array of input and output parameters that are needed to execute the geoprocessing job (parameter name, value, code represents whether it is input or output parameter, and default value)

Refer to OGC API Processes: https://ogcapi.ogc.org/processes/

ExecustionStatus

FieldTypeDescriptionNotes

Status

String

{coded_value}

Status of the geoprocessing task execution (e.g., running, completed)

StartTime

Date

Timestamp indicating the start time of the geoprocessing task execution

EndTime

Date

Timestamp indicating the end time of the geoprocessing task execution

Result

Object

Result of the geoprocessing task execution

GIS layers, attributes, or information generated when executed successfully

7.2.6 Reporting

MapReport

FieldTypeDescriptionNotes

Title

String

Title/name of the map report

Abstract

String

A brief summary or abstract of the map report and its purpose

Author

String

The name of the author or creator of the report.

Keywords

String

Keywords or tags associated with the report.

LastUpdated

Date

The date and time when the report was created or last updated.

ReportQueue

FieldTypeDescriptionNotes

Status

String

{coded_value}

Status of the report in the queue (e.g., pending, processing, completed).

Priority

String

{coded_value}

The priority level of the report in the queue (high, normal, low)

Recurring

Boolean

Indicates if the report is a recurring task

Interval

String

Time interval for recurring reports

Active only when Recurring is True

StartTime

Date

Timestamp indicating the start time of the report processing

EndTime

Date

Timestamp indicating the end time of the report processing

ReportResource

FieldTypeDescriptionNotes

ResourceName

String

Name of the Resource

ResourceType

String

{coded_value}

Type of the Resource (e.g., symbology, charts, north arrows, scale bar, etc.)

Symbology

FieldTypeDescriptionNotes

SymbolType

String

{coded_value}

Type of the symbol (e.g., Dot Density Maps, Graduated Color, Graduated/Proportional Symbol, etc.)

SymbolColor

String

{coded_value}

Color code of the symbol

Transparency

Float

Transparency level of the symbol

Label

FieldTypeDescriptionNotes

LabelText

String

Text of the Label

PositionX

Real

X-coordinate position of the Label on the map report

PositionY

Real

Y-coordinate position of the Label on the map report

Font

String

{coded_value}

Font of the Label

Size

Integer

Size of the Label

Color

String

{coded_value}

Color of the Label

Chart

FieldTypeDescriptionNotes

Title

String

Title of the chart

Type

String

{coded_value}

Type of the chart (e.g., bar chart, histogram, etc.)

Data

Blob

Data of the chart

Legend

FieldTypeDescriptionNotes

Title

String

Name of the Legend

PositionX

Real

X-coordinate position of the Legend on the map

PositionY

Real

Y-coordinate position of the Legend on the map

Font

String

{coded_value}

Font of the Legend

Size

Integer

Size of the Legend font

Color

String

{coded_value}

Color of the Legend

ScaleBar

FieldTypeDescriptionNotes

Title

String

Name of the scale bar

Style

String

{coded_value}

Type and style of the scale bar (linear, graphic, etc.)

Length

Float

Length of the scale bar on the map report

Units

String

Units of measurement for the scale bar

PositionX

Real

X-coordinate position of the scale bar on the map

PositionY

Real

Y-coordinate position of the scale bar on the map Legend on the map

Font

String

{coded_value}

Font of the Scale Bar

Size

Integer

Size of the Scale Bar

Color

String

{coded_value}

Color of the Scale Bar

NorthArrow

FieldTypeDescriptionNotes

Title

String

Name of the north arrow

Style

String

{coded_value}

Type and style of the north arrows (simple, arrow with N, etc.)

Length

Float

Length of the North Arrow on the map report

Units

String

Units of measurement for the north arrow

PositionX

Real

X-coordinate position of the north arrow on the map

PositionY

Real

Y-coordinate position of the north arrow on the map

Font

String

{coded_value}

Font of the North Arrow

Size

Integer

Size of the North Arrow

Color

String

{coded_value}

Color of the North Arrow

7.2.7 Gefencing

Geofence

FieldTypeDescriptionNotes

Name

String

Name of the Geofence

Shape

String

{coded_value}

Shape of the Geofence (e.g., circle, polygon).

Size

Float

Size of the Geofence, representing the radius for a circular Geofence or the area for a polygon Geofence

Status

Boolean

Indicates if the Geofence is activated or deactivated

GefenceElement

FieldTypeDescriptionNotes

ElementType

String

{coded_value}

Type of the tracked element (e.g., vehicle, device, asset, person).

TrackingMethod

String

{coded_value}

Method of tracking (GPS Coordinates, RFID tags, etc.)

ActionRule

FieldTypeDescriptionNotes

ActionType

String

{coded_value}

Type of action to be performed (e.g., send notification, execute command).

Action

String

{coded_value}

Description and details or parameters related to the action

Geofence Notification

FieldTypeDescriptionNotes

NotificationType

String

{coded_value}

Type of notification (e.g., push notification, SMS, email).

Recipient

String

Recipient's contact information (e.g., email address, phone number).

RecipientType

String

{coded_value}

Type of recipient (e.g., user, group)

7.2.8 Routing

Route

FieldTypeDescriptionNotes

StartNode

Object

Geographic feature representing the starting point of the route

EndNode

Object

Geographic feature representing the ending point of the route

PassThrough

Boolean

Indicates whether the route should pass through intermediate points

Restrictions

String

Specifies any restrictions or obstacles to avoid along the route

AdditionalParameters

String

Additional routing rules and parameters for the route

RouteNode

FieldTypeDescriptionNotes

Longitude

Real

Longitude coordinate of the node

Latitude

Real

Latitude

Order

Integer

Order of the node in the route sequence

RouteSegment

FieldTypeDescriptionNotes

StartNode

Object

Geographic feature representing the starting point of the route segment

EndNode

Object

Geographic feature representing the ending point of the route segment

Length

Float

Length of the route segment

ServiceArea

FieldTypeDescriptionNotes

Shape

String

{coded_value}

Shape of the service area (e.g., circle, polygon).

Size

Float

Size of the service area, representing the radius for a circular service area or the area for a polygon

Last updated

Copyright © 2024