# Module feature

Package com.here.mom.feature.feature

Features

## MomFeature

abstract feature MomFeature

Module feature

MomFeature is the base base class for all feature types defined by MOM. As the model builds on GeoJSON, it defines the same basic properties id, geometry and bbox known from the standard. In addition It extends the standard definition of the empty properties envelope by a set of standard properties that are common to all MOM features. Additionally, its discriminator mom-type enables dynamic typing when de-serializating from JSON. GeoJSON does not prohibit custom attributes on the root level but some applications may ignore such content. Future versions may therefore change the implementation to keep all information within properties.

Property Type Modifier Description
id string
bbox BoundingBox optional
geometry Geometry
properties Common
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.