# Introduction

This document describes the HERE Map Objects Data Model.

These sections give a developer view on how to use Indoor MOM data and reflect the current status of Indoor MOM data format:

The remaining sections describe the Indoor Map data specification as a specification of the software model (SW model) that we use to generate Indoor MOM data. The serialization of the data to JSON does not follow the SW model specification exactly

## Definitions

A "Map Object" in the scope of this document stands for the abstraction of a real-world object with attributes that are relevant for geographical applications and adhering to certain conventions. One Map Object can be represented as one GeoJSON feature. MOM further distinguishes certain Feature Types (momType): Map Objects that represent the same class of real-world feature and thus carrying the same set of attributes share the same momType. Due to the close alignment with GeoJSON concepts, all MOM feature classes have an Id, geometry and properties.

The MOM data model also defines various re-usable/shared component classes. In contrast to MOM features, such objects do not have an ID. These are the building blocks for MOM features. Due to their lack of identifier, they are valid only within a feature definition.

For the terms and conditions covering this documentation, see the HERE Documentation License.

## Differences in data model definitions

Some data structures have a slightly different definition in the data model than in the serialized JSON data. One example is a point class, with type, longitude, latitude, and elevation properties. However, GeoJSON specifies a point with two properties: type and coordinates, where coordinates is an array of longitude, latitude and optionally altitude, as numbers. For example:

"geometry": { "type": "Point", "coordinates": [120.68093, 24.2114] } Other GeoJSON types are defined similarly in GeoJSON, but the Indoor Map Data Specification specifies them using the point class as a basis, instead of extending the coordinates-array dimension like the GeoJSON does. Still when serialized into JSON data, the indoor MOM follows GeoJSON definitions, as is visible in the shared indoor maps, and also in the sample data included in this guide. However, point class may also be serialized directly to a plain number array of coordinates, without any sub-properties. So it is not a generic GeoJSON point, but directly the coordinates in an array, such as “point”: [45.2433, 11.4332]. This is because it is not a generic geolocation, but we know the type is always a point. This is a case at least with ElevationPoint.

The target audience is expected to be familiar with general concepts of geospatial data models used in context of map rendering, route calculation, route guidance, location search and related use-cases. Metadata required for converting other map data models to Map Objects Model is either provided as part of the Map Objects schema or through further HERE reference documentation.

The default persistence representation complies with the GeoJSON standard. While the model is defined in a target-agnostic DSL (Domain Specific Language), JSON Schema is one available reference specification against which clients can verify their content.

This specification is a specification of the SW model that we use to generate Indoor MOM data. The serialization of the data to JSON is not exactly following the SW model specification.

Then, some data structures have a slightly different definitions in the data model than in the serialized JSON data. One example is a point class, with type, longitude, latitude, and elevation properties. However, GeoJSON specifies a point with two properties: type and coordinates, where coordinates is an array of longitude, latitude and optionally altitude, as numbers. For example:

"geometry": { "type": "Point", "coordinates": [120.68093, 24.2114] }


Other GeoJSON types are defined similarly in GeoJSON, but this document specifies them using the point class as a basis, instead of extending the coordinates-array dimension like the GeoJSON does. Still when serialized into JSON data, the Indoor MOM follows GeoJSON definitions, as is visible in the shared indoor maps, and also in the sample data included in this Data Specification.