Mappedin Venue Format (MVF) Writer
The Mappedin Venue Format (MVF) is a fixed-schema GeoJSON- and JSON-based bundle format for describing indoor maps and their surroundings.
MVF organizes venue data into extensions, which are data models that describe particular aspects of a venue, such as geometry, locations, traversability, or styling.
The MVF specification defines the content and relationship requirements that must be satisfied for an MVF dataset to be valid. The specification and MVF Validator links referenced in Resources have more information about these requirements.
Product and System Requirements
|
Format |
Product |
Operating System |
||||
|---|---|---|---|---|---|---|
|
Reader/Writer |
FME Form |
FME Flow |
FME Flow Hosted |
Windows 64-bit |
Linux |
Mac |
|
Writer |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Writer Overview
An MVF dataset is a folder containing the files for one or more MVF extensions. When the output dataset has a .zip extension, the writer creates a ZIP archive containing the MVF bundle. Each extension is represented by one or more GeoJSON or JSON files. Some extensions are represented by a single file, while others are represented by multiple files (one per floor, for example).
The relationship between feature types and MVF output files is not necessarily one-to-one. A single feature type may contribute to multiple files across different extensions, depending on a feature’s attributes and geometry.
MVF stores geometry in a dedicated Geometry extension, separate from much of the descriptive information and relationships associated with it; context is then provided by extensions that reference these geometries using geometry IDs. The writer maintains the link between descriptive data and geometry through ID-reference attributes. For supported feature types, it writes the feature’s geometry to the Geometry extension and automatically populates the corresponding reference. See Identifiers and References and Reference Geometry for more information.
The MVF writer supports Mappedin Venue Format Version 3 (MVF v3) and produces only the extension files required by the features it processes. Supported MVF extensions include:
- Annotations
- Connections
- Default Style
- Entrance Aesthetic
- Facade
- Floor Images
- Floor Stacks
- Floors
- Geometry
- Kinds
- Locations
- Manifest
- Outdoors
- Traversability
The MVF writer reprojects all geometric features to WGS84 when they are written.
Identifiers and References
MVF objects use identifiers (IDs) to enable referencing from other objects or extensions.
For feature types that have an id attribute, the MVF writer generates a unique ID when no value is supplied. Specifying an ID is necessary when another feature should reference that object directly by ID.
Geometry references typically do not require specifying an ID manually. When referenced geometry is supplied directly on a feature, the writer will generate the geometry ID and populate the reference automatically.
The MVF writer normalizes all ID and ID reference attribute values to satisfy the prefix and character requirements of their corresponding MVF identifier type.
For example, a geometryId attribute value of 3c4682caf620c293, which references a GeoJSON feature in the Geometry extension, is normalized to g_3c4682caf620c293. Please refer to the MVF Specification for prefix and character requirements for IDs.
ID Uniqueness
IDs must be unique within their MVF object type. For example:
-
floor IDs must be unique among floor features
-
location IDs must be unique among location features
-
connection IDs must be unique among connection features
-
geometry IDs must be unique among the written GeoJSON features in the Geometry extension
For most feature types, if multiple features use the same ID, the writer writes the first instance and rejects all subsequent features sharing that ID. Duplicate Geometry IDs are accepted when the same referenced geometry is supplied on multiple features. See Reference Geometry for details.
Reference Dependencies
Some MVF feature types contain references to objects written by other feature types. When a feature contains one of these references, the referenced object must also be written in the same MVF bundle.
For example, each MVF geometry is associated with a floor. Therefore when a feature writes geometry for a particular floor, a corresponding floor feature with the same ID must also be supplied to the writer. See Feature Types for more information.
If an ID reference fails to resolve to a written MVF object or GeoJSON feature, the writer logs its origin, identifying the referring feature and the attribute or geometry trait that supplied the reference. An unresolved reference may indicate that:
-
A referenced feature with the specified ID was not supplied to the writer.
-
A referenced feature with the specified ID was rejected by the writer.
-
The referring and defining ID values do not match.
The translation will then fail, depending on the configuration of the Fail Translation on Unresolvable References writer parameter.
Enumerations
All attributes containing invalid enumeration values are written as unknown where the value is supported, or when possible, corrected to one of the allowed values. Please refer to the MVF Specification for the set of allowed values for extension-specific enumerations.