Ontology objects

The Map application supports Ontology objects with geospatial data attached.

Point geometries

Point geometries can be specified using the geohash property type. The contents of a geohash property should be a string of either:

  • [latitude],[longitude]: For example, 57.64911,10.40744. Coordinates must use the WGS 84 CRS (standard latitude and longitude).
  • A Geohash ↗: For example, u4pruydqqvj. Geohashes will be converted into points, using the bottom-left corner of the Geohash rectangle.

Objects with geohash properties are indexed for geospatial search.

geohash property type in the Ontology Manager

Circles

A circle geometry can be specified on an object type by selecting a Radius property in the Geospatial section of the object type's Capabilities tab. The radius property can be any numeric property measured in meters.

Radius property configuration in the Ontology Manager

The circle geometry is only rendered on the map, not indexed for searching. If you need objects to be geospatially searchable based on a circle geometry, you will need to approximate a circle using a polygon.

Polygon and line geometries

Polygon and line geometries can be specified using the geoshape property type. The contents of a geoshape property must be a GeoJSON Geometry string meeting the following requirements:

  • Must be a GeoJSON LineString, Polygon, MultiLineString, MultiPolygon, MultiPoint, or Point. However, Point geometries should not use the geoshape property type; use the geohash property type for Point geometries.
  • Must not be a Feature, FeatureCollection, or GeometryCollection.
  • Must comply with the GeoJSON Specification (RFC 7946) ↗.
  • Must use WGS 84 coordinates.
  • Polygons and MultiPolygons must be valid according to the GeoJSON Specification. Polygons and MultiPolygons must be closed, use a right-hand/counterclockwise winding order for exterior rings, and have no self-intersection.

This is an example of valid GeoJSON for a geoshape property:

Copied!
1 { "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] }

Objects with geoshape properties are indexed for geospatial search.

Geoshape property type in the Ontology Manager

Choropleths

To render choropleth visualizations, you will need to configure your ontology so that objects can be grouped together into regions. There are two ways to do so, boundary identifiers and linked objects.

Boundary identifiers

Maps support rendering choropleths for objects that are configured with some common region identifier types -- including ISO 3166 country codes, US State abbrevations, and more. The polygon geometry for these boundary types is built into the map application, making your data integration easier if your data already has one of these identifier types attached. These identifiers are configured by attaching a specific Value Type to a property on the object type you want to map.

To configure boundary identifiers, first search for and install the "Choropleth Value Types" product in Marketplace. This product contains the ontology value types that the map application knows how to render as choropleths.

Image of the choropleth value types product in Marketplace

The current supported region types and ways of identifying them are:

  • Admin 0 (global administrative level 0 boundaries)
    • ISO 3166 alpha-2 country codes
    • ISO 3166 alpha-3 country codes
  • US States
    • FIPS codes
    • USPS abbrevations
  • US Counties
    • FIPS codes
    • ANSI codes

If your object type already has a property the contains one of these identifiers, select the corresponding value type in the Value Type dropdown menu for that property in Ontology Manager.

Image of the Value Type dropdown menu in the Ontology Manager

If you want to display choropleths for one of the region types above, but your data has latitude/longitude points instead of one of the supported identifiers, use the "Choropleth Boundary Datasets" product from Marketplace to attach the region identifiers. This product contains datasets that contain the actual geometries and other metadata for the regions. Use Pipeline Builder's Geometry intersection join to find the region that each point lies within and attach the corresponding region identifier, then configure the corresponding value type in ontology manager.

Linked objects

If you want to display a choropleth with a region type is not included above, or otherwise want more control over the region geometries and properties on the regions, you can create an object type with region geometry of your choice. Then create a many-one link from the object type you want to aggregate over to that region object type.

For example, imagine you want to display a choropleth that shows the total value of orders placed for each sales region. A simple way to configure the ontology for this is to have:

  • A "Sales region" object type with a geoshape property containing the geometry of each sales region.
  • An "Order" object type, with the properties:
    • "Sales region" that contains the primary key of the region each order was placed in
    • A "Value" that contains the total value of the order
  • A many-one from "Order" to "Sales region"

To display the choropleth:

  1. Use the search dialog to add your "Order" objects to the map
  2. Add a Choropleth geometry for the "Order" layer
  3. Choose the Linked object option in the Regions section, and select the link type that links from an "Order" object to its associated "Sales region".
  4. Use the "Value" property in styling aggregations to control the color of each region

H3 hexagons

Objects can include string properties containing H3 cell IDs from the H3 geospatial indexing system ↗. These will render as relevant hexagons on the map.

To specify that a string property contains H3 cell IDs, select that property under H3 cell in the Geospatial section of the object type's Capabilities tab.

H3 property configuration in the Ontology Manager

The H3 hexagon is only rendered on the Map, not indexed for searching. If you need objects to be geospatially searchable based on a H3 hexagon, you will need to convert the H3 cell IDs into GeoJSON Polygons and include them in a geoshape property as described above.

Georectified images

An object can have georectified images attached, such as a satellite photo, aerial imagery, or a scan of a physical map. Two properties are required for the georectified image:

  • An image URL String property containing the URL of the image to render. Supported image file extensions include .png, .jpg, .jpeg, .gif, .webp, .bmp, .ico, and .svg. The ID of the image URL property is used to configure the image bounds property.
  • An image bounds geoshape property containing a GeoJSON Polygon of a quadrilateral representing the georectified bounds of the image. The polygon must specify its vertices in clockwise order, beginning with the bottom left corner.
    • The image bounds property must have a type class indicating the ID of the image URL property, in the following format:
      • Kind: geo
      • Value: bounds.<image URL property ID> where <image URL property ID> is the ID of the image URL property.
    • For example, if the image URL property ID is image_url then the typeclass would be: Kind: geo, Value: bounds.image_url

Georectified image property configuration in the Ontology Manager

Objects with georectified images are indexed for geospatial search, as with all geoshape properties.

Tiled imagery from media sets [Beta]

Georeferenced raster imagery can also be displayed in tiles by uploading GeoTIFF imagery in a (.tiff, .tif) to a media set. From there, object types with a media reference property can be added to the map and only the visible portions of the imagery will be loaded as the user pans or zooms around the Map.

Tracks

Objects can have numeric time series properties representing an object's latitude and longitude over time, allowing users to see the path the object traveled over time as well as its location at any point in time.

To configure the track for the object type, select the Track Latitude and Track Longitude properties in the Geospatial section of the object type's Capabilities tab. Both properties must be numeric time series properties representing the object's location over time. See Time series setup for more information on configuration time series, and track geometries for more information on the options in maps for visualizing tracks.

Track latitude and longitude configuration in the Ontology Manager

Events

Events are Ontology objects that occur at a point or period of time. Object types can be configured as events by specifying Event start time and Event end time timestamp properties in the Event section of the object type's Capabilities tab.

Event configuration in the Ontology Manager

Event objects on the map

If event objects are added to the Map, they can be configured to only display when current (that is, when the selected timestamp is within the event period).

Event objects linked to objects on the map

If objects on the map have event objects linked to them, the event objects can be added to the Series panel for temporal analysis, and current event count indicators can be added to object labels. For example, a road object could be represented as lines on the map, and a road object may have linked traffic accident events; a user could then use the indicators to see traffic event counts for each road at any point in time.

For this to be possible, the event object type must be configured with an Event intent indicating the severity of the event in the Event section of the object type's Capabilities tab.