# Module level-connector

Package com.here.mom.feature.indoor.level-connector

Features

Parts

## LevelConnector

feature LevelConnector extends MomFeature, VenueFeature

Module level-connector

Level connector is a feature that allows definition of physically traversable connections between levels in a structure. Examples are vehicle ramps, escalators or elevators. A level connector maintains a set of spaces that are associated with the connector. They form the physical structure and define access and traversal characteristics of the connector. The level membership of each of the spaces defines the connectivity between levels. A connector can carry simplified ramp attributes to define navigability restrictions.

Property Type Modifier Description
momType "indoor.LevelConnector"
id string
bbox BoundingBox optional
geometry Point Two-dimensional reference point for the level connector.

The physical representation of the overall feature is formed by the associated spaces, and the reference point

is the centroid of the convex hull of the spaces.
properties LevelConnectorProperties
referencePoint Point optional This is the location of this feature, collapsed to a single point.

This is for any application where an approximate, but deterministic and consistent, location is useful. One

example is deciding where to "anchor" a feature within a tiled map database.

Any Reference to this feature should include this point.
nonSpatialPartitionKey string optional The partition id for a generically partitioned feature.

Generically partitioned features fall into two categories:

1. Features that have a spatial component but may not make sense to partition based on that geometry.

2. Features that don't have a strong spatial component.

How keys will be assigned and what value ranges will be used are not specified.

Examples of generically partitioned features are admin, zone, postal, phonetics, metadata, etc.
Constraint Expression Description
atMostOneDefinedProperty (is-empty(.referencePoint) is-empty(.nonSpatialPartitionKey)) At most one of non-spatial-partition-key and reference-point can be defined.

## LevelConnectorProperties

part LevelConnectorProperties extends Common, VenueFeatureProperties

Module level-connector

Property Type Modifier Description
@ns:com:here:mom:meta Metadata optional
@ns:com:here:mom:rmob string optional Currently not specified - may be specified by each Feature individually in future
featureType FeatureType optional Deprecated. This property is redundant to MomFeature.momType and should not be used.

MOM clients before 2.6 release had this deprecated property set to required, so

if data needs to be JSON schema validated by clients before 2.6 this property must be

set by the writer.
isoCountryCode Country optional Deprecated. This indicates which country a Feature is in, with a couple caveats.

- It may be unknown ("NONE" is a valid value, in addition to "UNDEFINED" like all MOM enums) simply because the

writer has not tried to figure it out or has otherwise not had the means to do so.

- It may be outright incorrect or a simplification of reality, specifically when a Feature is close to a country

border or in a disputed area (e.g., two or more countries claim the same area).

In all cases, writers and readers of this data should understand that the semantics of this property must be

agreed upon (if it is used at all). The preferred method of relating a Feature to a Country is through a

(direct or transitive) Reference from the Feature to an Admin.
@ns:com:here:mom:delta Branch optional
@ns:com:here:mom:mapcreator MapCreator optional
@ns:com:here:xyz Xyz optional Generic Data Hub namespace
extensionOSM MomOsm optional Optional extension for OSM (Open Street Map) metadata,

in case the object came from OSM
@ns:com:here:groundTruth GroundTruth optional Ground truth namespace
confidence ConfidenceData optional Confidence of a feature, optional only for the features

that are not participating in Quality Index.
venueId string optional Deprecated. Id of the venue. Venue Id is generated outside of MOM, and is used by the different components/services of venues.

There is no venue object, hence this is not a reference to any object,

but conceptually venue is a collection of objects of momType "indoor.{Site, Structure, Level, Space, Occupant}".

This id is linking every object to the venue.

It may have the same value as the Site object, but it doesn't have to have.

Each feature could be considered to be identifiable by a 2-level id: the venueId + feature id.

The feature id is also unique by itself.
indoorMapId string Id of the indoor map. The id is generated outside of MOM, and is used by the different components/services

of the indoor map.

Indoor map is a collection of objects of momType "indoor.{Site, Structure, Level, Space, Occupant, ...}".

This id is linking every object to the specific indoor map.

It may have the same value as the Site object, but it doesn't have to have.

Each feature could be considered to be identifiable by a 2-level id: the indoor map id + feature id.

The feature id is also unique by itself.
renderProperties RenderProperties optional optional object, will appear only for following objects Site, Structure, Level, Space (Vectors)
names Name list Names of the connector, can be empty.
spaces Space set Spaces which make up the level connector.

This set contains physical spaces such as ramps or stairs. Level connectivity provided by the connector

is defined via the level membership of each space. The spaces also define access characteristics for

the connector such as vehicle only ramps, or pedestrian only escalators, and enable routing to the connector

via their address properties. A connector must be composed of at least one space.
rampAttributes RampAttributes optional Ramp attributes for connectors that contain spaces with vehicle access characteristics.

Attributes limit navigability and are valid for a connector as a whole. If specified, they define the most

restrictive set of values across the feature. ADAS properties of the topologies intersecting the spaces

of the connector can provide additional detail, if present.
Constraint Expression Description
spacesNonEmpty non-empty(.spaces)

## RampAttributes

part RampAttributes

Module level-connector

Generic ramp attributes which can be used as a simplified representation of ADAS attributes.

Property Type Modifier Description
pitchAngle integer Pitch angle at the bottom of the ramp in degrees * 10^3.

This can be the same as the slope angle of the first adas-point, but in case the ramp is not uniform, this can

be also the largest slope angle of adas-points. Can be compared against car's approach/departure angle

with length-cm to see if the car can use this ramp.
rampAngle integer optional Ramp over angle at the top of the ramp in degrees 10^3.

Sets the limit for a car's clearance when navigating the ramp. If the levels before and after the ramp are

horizontal or have the same slope, then this is (180 - pitch-angle)
10^3.Can be compared against car's ramp-over

angle with length-cm to see if the car can use this ramp.
lengthCm integer optional Length of the ramp in centimeters; this is relevant with the pitch-angle and ramp-angle.

However it is relevant only if it is shorter than vehicle's wheelbase, so in most cases

for ramps that connect levels the length can be considered "long enough" and needs not be present in the data.
curvature integer optional Extreme (maximal) horizontal curvature of any portion of the ramp in

units of 1/(radius of curvature in meters) x 10^6.

E.g. a radius of curvature of 50 m, is a curvature of 0.02/m, and coded as 20000.

Can be optionally provided in case the intersecting topologies are not defining curvature, and an extreme

possible curvature needs to be provided. Curvature direction is not specified as it depends on traversal direction,

and is therefore specified as an absolute value only.
clearanceHeightCm integer optional Clearance height of the ramp in centimeters, if relevant.
clearanceWidthCm integer optional Clearance width of the ramp, in centimeters, if relevant.
Constraint Expression Description
pitchAngleMin0 (.pitchAngle >= 0)
pitchAngleMax90000 (.pitchAngle <= 90000)
rampAngleMin90000 (non-empty(.rampAngle) -> (head(.rampAngle) >= 90000))
rampAngleMax180000 (non-empty(.rampAngle) -> (head(.rampAngle) <= 180000))
curvatureMin0 (non-empty(.curvature) -> (head(.curvature) >= 0))
clearanceHeightCmMin1 (non-empty(.clearanceHeightCm) -> (head(.clearanceHeightCm) >= 1))
clearanceWidthCmMin1 (non-empty(.clearanceWidthCm) -> (head(.clearanceWidthCm) >= 1))