Module groups
Package com.here.mom.feature.indoor.groups
Features
Parts
SpaceGroup
feature SpaceGroup
Module groups
Space group can be used for two purposes: 1) to share common occupant(s) and main entrance for navigation, e.g. a multi-floor shop in a shopping mall. 2) to share common properties, e.g. parking spots form a parking section with same space properties.
In 1)-case the main Space is generally suggested by the venue owner or in raw material, it also plays a role in highlighting, search by an occupant, etc kind of things. When adding an occupant to a space which belongs to a group - the occupant will save the reference of mainspace only, and it will be considered to associate with all the spaces of that group for the purposes of display label, navigation landmark etc. We cannot have an occupant associated only with one of the included spaces, but not all. A space group can have multiple occupants and all of them will be visible on all spaces. An Occupant can be associated with multiple space groups.
In 2)-case the group represents a set of spaces that share common space-type-properties, so that the main-space can be used to represent the group. This provides a way to create different kind of hierarchies than can be created with MicroPA's (a sample with MicroPA being an aisle - shelf - bin hierarchy). A typical example is a parking garage with groups of parking spots reserved for drivers with disabilities close to each other but covering only a subset of the spaces in the parking space rows. In that case navigating to a parking section reserved for drivers with disabilities makes more sense than navigating to an individual parking spot (at least without knowing if it happens to be free). Further, common space-type-properties are stored in the main-space, not in the individual spaces. If there are some further details, those can be in individual space properties, e.g. in a group of EV-charging-equipped parking spots, some parking spots could be additionally reserved for drivers with disabilities. The main-space in this case is expected to have a geometry that covers all the individual spaces. Further, there can be super-groups having a list of main-spaces and a new higher-level main-space.
Same space cannot be part of spaces-list of multiple space groups. spaceGroupId is used for maintaining consistent unique id for spaceGroup management at editor application, it is also used at customer end and by Indoor Map SDK.
Property | Type | Modifier | Description |
spaceGroupId | string | | |
mainSpace | Space | | |
spaces | Space | distinct-list |
SpaceGroupProperties
part SpaceGroupProperties extends Common, VenueFeatureProperties
Module groups
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, soif data needs to be JSON schema validated by clients before 2.6 this property must beset 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 beagreed 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 featuresthat 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/servicesof 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) |
spaceGroups | SpaceGroup | list | Space groups that - share occupants and a main entrance (e.g., an anchor store)- comprise spatially related spaces without any other common properties(e.g. a parking section comprising adjacent parking spots) |
commonalityGroups | SpaceGroup | list | Space groups that share the same properties (e.g., a set of nearby parking spots reserved for disabled drivers) |
level | Level | optional | Level to which the spaces referenced by this space-groups feature belong.In case this is absent, the spaces can be from any level/structure, or mix of levels/structures of the indoor map. |
SpaceGroups
feature SpaceGroups extends MomFeature, VenueFeature, VenueGroup
Module groups
Property | Type | Modifier | Description |
momType | "indoor.SpaceGroups" | | |
id | string | | |
bbox | BoundingBox | optional | |
geometry | Point | | Centroid of the venue |
properties | SpaceGroupProperties | | |
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. Oneexample 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. |
VenueGroup
abstract feature VenueGroup extends MomFeature, VenueFeature
Module groups
Subtypes SpaceGroups
Property | Type | Modifier | Description |
id | string | | |
bbox | BoundingBox | optional | |
geometry | Geometry | | |
properties | VenueFeatureProperties | | |
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. Oneexample 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. |