Standards
What is IMDF? The indoor map format, explained
Short answerIMDF (Indoor Mapping Data Format) is a data model for indoor maps, delivered as a ZIP archive of GeoJSON files that describe a venue’s buildings, floors, rooms, doors and amenities. Apple created it, and the Open Geospatial Consortium (OGC) adopted version 1.0.0 as a Community Standard in February 2021.
IMDF at a glance
Facts from the OGC and Apple specification pages, checked 24 October 2026.
The standard
- Full name
- Indoor Mapping Data Format
- Version
- 1.0.0, the only value the manifest allows
- Written by
- Apple
- OGC status
- Community Standard, document 20-094, approved 2 February 2021 and published 18 February 2021
- Cost
- Free to download and implement
The data
- Encoding
- GeoJSON (RFC 7946): longitude and latitude on WGS 84
- Packaging
- One ZIP archive with a
manifest.jsonand one.geojsonfile per feature type - Feature IDs
- Version 4 UUIDs, unique and never reassigned
- Precision
- At least seven decimal places recommended
- Names
- Labels keyed by language tag, so one room can carry an English and an Arabic name
- Extensions
- Allowed, declared in the manifest, and they may not change the meaning of core features
Where IMDF came from
Apple developed IMDF so that venue owners could describe the inside of a building in one consistent way, then show those maps in apps and websites through its MapKit framework. It was submitted to the OGC in July 2020 and approved as a Community Standard in February 2021.
A Community Standard is a specification written outside the OGC that the OGC adopts as it stands. The OGC document says so directly: the originating party may keep updating its own work, while the OGC text stays fixed. In practice that means two copies, and when a tool says it supports IMDF it is worth asking which one.
What is inside an IMDF archive
An IMDF dataset is a single ZIP file. Inside it, each feature type has its own GeoJSON file, and a small manifest says which version of IMDF the archive follows and which language its names default to.
| File | Geometry | What it holds |
|---|---|---|
| manifest.json Required | n/a | IMDF version, creation time, default language, extensions used |
| address.geojson Required | none | Postal addresses the other features point to |
| venue.geojson Required | Polygon | The one venue: the whole site, its name and hours |
| building.geojson | none | Each building; its outline lives in the footprint |
| footprint.geojson | Polygon | Building outlines: ground, aerial or subterranean |
| level.geojson | Polygon | Each floor, with an ordinal for stacking order |
| unit.geojson | Polygon | Rooms, walkways, lifts, stairs, restrooms |
| opening.geojson | LineString | Doors and entrances on unit edges |
| fixture.geojson | Polygon | Fixed objects inside units, such as counters |
| section.geojson | Polygon | Areas within a level, such as a food court |
| geofence.geojson | Polygon | Virtual boundaries that can cross units and levels |
| kiosk.geojson | Polygon | Physical directory and map structures |
| amenity.geojson | Point | Services such as first aid, information, ATMs |
| anchor.geojson | Point | A point inside a unit that occupants hang from |
| occupant.geojson | none | Tenants and businesses, with hours and contacts |
| detail.geojson | LineString | Extra linework drawn on a level |
| relationship.geojson | varies | Traversals: lifts, ramps, escalators, one-way doors |
How features point at each other
- unit.level_id points to level
- opening.level_id points to level
- level.building_ids points to building
- footprint.building_ids points to building
- amenity.unit_ids points to unit
- occupant.anchor_id points to anchor → unit
Three of the files are required: the manifest, the addresses and the venue. Everything else is optional, which is why two IMDF exports of the same building can look very different. One might stop at levels and units; another might add every door, counter and shop tenant.
How a floor plan maps onto IMDF features
The easiest way to read IMDF is to lay it over a floor you know. Here is the ground floor of a fictional hospital, with each part labelled by the feature type and category it becomes.
-
1
Level
ordinal 0The ground floor itself, as one polygon -
2
Unit
roomPharmacy, named in English and Arabic -
3
Opening
pedestrianThe pharmacy door: a line on the unit edge -
4
Unit
walkwayThe main corridor -
5
Unit
restroomRestrooms -
6
Opening
pedestrian.principalThe main entrance -
7
Unit
elevatorThe lifts
The level is the outline of the whole floor. Units fill it: rooms, the corridor, the restrooms, the lift lobby, each with a category from IMDF’s fixed list. Openings are lines, not shapes, and they sit on the edge between two units, which is how a reader knows that the pharmacy opens onto the corridor. Occupants such as a pharmacy operator or a café brand have no geometry of their own; they hang from an anchor point inside a unit.
What one feature looks like
This is a single unit from unit.geojson, the pharmacy in the drawing above. The coordinates are illustrative.
{
"id": "8c5e6a72-3f1d-4b8e-9a47-2d61c0f3b915",
"type": "Feature",
"feature_type": "unit",
"geometry": {
"type": "Polygon",
"coordinates": [[
[77.2310421, 28.6395118],
[77.2311733, 28.6395118],
[77.2311733, 28.6393956],
[77.2310421, 28.6393956],
[77.2310421, 28.6395118]
]]
},
"properties": {
"category": "room",
"restriction": null,
"accessibility": null,
"name": { "en": "Pharmacy", "ar": "الصيدلية" },
"alt_name": null,
"level_id": "1f0b9d34-7c2a-4e65-b8d1-5a93e2c47f08",
"display_point": {
"type": "Point",
"coordinates": [77.2311077, 28.6394537]
}
}
}
Three things to notice. The feature_type member says what the feature is, on top of ordinary GeoJSON. The level_id points to a level by its UUID, which is how features are tied together across files. And the name is a set of labels by language, so a bilingual directory does not need two maps.
What IMDF is used for
| Use | Who does it | What IMDF does there |
|---|---|---|
| Indoor maps in iPhone apps and websites | Venue owners in Apple’s Indoor Maps Program | The map is built in IMDF and shown with MapKit or MapKit JS. Apple’s IMDF Sandbox lets you view a file and make minor edits. |
| Apple indoor positioning | The same programme | A separate radio survey of the building with Apple’s Indoor Survey app, using your existing Wi-Fi access points, on top of the IMDF map. |
| Moving a map between tools | GIS teams, CAD converters, wayfinding vendors | A shared format, so the map is not locked inside one vendor’s system. |
| Tender deliverables | Public-sector and hospital buyers | Asking for an IMDF export makes the map a file you hold, not just a screen you rent. |
If you are writing a specification, require that the venue can be exported in an open format such as IMDF at any time, without a fee or a support ticket. Our vendor-neutral tender specification has a clause for it.
What IMDF does not cover
IMDF describes the building. It does not describe how people move through it, or what is happening in it today.
| Topic | In IMDF? | Notes |
|---|---|---|
| Shapes of floors, rooms and doors | Yes | Levels, units and openings |
| Names in several languages | Yes | Labels keyed by language tag |
| Hours, phone numbers, websites | Yes | On the venue, amenities and occupants |
| Accessibility attributes | Yes | Categories on units, openings and amenities |
| Connections between floors | Partly | Relationships describe lifts, escalators, ramps and one-way doors. Routes are still calculated by the app reading the file. |
| A walking network and route rules such as step-free | No | Lives in the routing engine: in DigiMaps, the navigation graph and routing profiles |
| Live closures, notices, emergencies | No | Lives in the wayfinding system’s live layer |
| Who changed what, and who approved it | No | Lives in the CMS release history |
So an IMDF file is a good starting point for a wayfinding map, and a good way to get a map out again. It is not a finished wayfinding map on its own: someone still has to build and check the route network.
How DigiMaps works with IMDF
| Direction | What happens | What to know |
|---|---|---|
| Export | Studio exports any venue as an IMDF archive, and also as GeoJSON or KML, at any time. | The map you author in DigiMaps is yours to take elsewhere. |
| Import | Our team brings an IMDF or GeoJSON dataset in as a new venue, which you then edit in Studio. | There is no IMDF upload button in Studio itself. Exports from GIS tools come in the same way, as IMDF or GeoJSON. |
| Routes after import | Studio generates a first route network from the doors, and your team reviews it. | IMDF carries no walking network, so this step is always needed. |
| Validation | DigiMaps does not run Apple’s IMDF validation. | If Apple is the destination, load the export into Apple’s IMDF Sandbox and fix what it flags before you submit it. |
If your plans are in CAD rather than IMDF, start with the floor plan import formats instead. DXF is read directly, and our DWG to interactive map guide walks through the whole conversion.
Checking an IMDF file before you hand it over
Whether you are receiving IMDF from a contractor or sending it to Apple, a few checks catch most problems.
- Open the ZIP and confirm that
manifest.json,address.geojsonandvenue.geojsonare there. - Check that the manifest version is
1.0.0and that its language tag matches the language most of your names are in. - List the levels and their ordinals. They should stack in the order a visitor would ride the lift, with basements below the ground floor.
- Spot-check that units sit inside their level, and that neighbouring units do not overlap or leave slivers between them.
- Pick five rooms visitors need to reach and confirm that each has an opening on its edge.
- If the archive was merged from several sources, look for repeated IDs. Every ID must be a unique UUID that is never reused.
- Read the names in every language you will publish. Arabic names should not fall back to Latin room codes from the drawing.
- If the file is going to Apple, load it into the IMDF Sandbox and work through the errors and warnings it reports.
Sources
Checked 24 October 2026.
- OGC, Indoor Mapping Data Format 1.0.0, document 20-094 (status, dates, feature types, archive and manifest rules)
- Apple, Indoor Mapping Data Format (Apple’s current copy of the specification)
- Apple, Indoor Maps Program (MapKit, the IMDF Sandbox and the Indoor Survey app)
- IETF, RFC 7946: The GeoJSON Format (coordinates on WGS 84)
Related questions
Is IMDF an open standard?
Yes. IMDF 1.0.0 is an OGC Community Standard, document 20-094, and it is free to download and implement. Apple wrote it and still publishes its own copy, which Apple may update. The OGC document is fixed at version 1.0.0.
Does exporting IMDF put our building on Apple Maps?
Not by itself. An IMDF file is only the map data. Using it with Apple means joining Apple’s Indoor Maps Program through Apple Business Register, which Apple describes as indoor maps in your own apps and websites through MapKit, plus indoor positioning after a Wi-Fi survey of the building.
Can DigiMaps import an IMDF file?
Yes, through our team rather than an upload button in Studio. Send us the archive and we bring it in as a venue that you then edit in Studio. IMDF does not carry a walking network, so the route network is generated and checked in Studio before anything is published.
Is IMDF the same as GeoJSON?
No. GeoJSON is a general format for geographic features. IMDF is a set of rules written on top of it, saying which files an archive contains, which feature types exist and which properties each one must have.
Does IMDF include routes or turn-by-turn directions?
No. IMDF describes spaces, doors and some connections, such as lifts, ramps and one-way doors. It has no routing network and no directions. The application that reads the file calculates routes itself.