Indoor Mapping Data Format

Indoor Mapping Data Format (IMDF) specification is available here. To create IMDF from your floor plans there are a number of options:

Airports

Apple can create IMDF from your CAD drawings, BIM files or GIS files. You must include details about occupants inside buildings, including suite/unit identifiers. Occupant information can be delivered in a variety of ways. Refer to Occupants.

Large Public Venues

For venues such as stadiums, train stations and museums, Apple may be able to provide assistance to create IMDF from your floor plans. These requests are considered on a case-by-case basis.

It's recommended to leverage third party platforms and tools to make creating and updating IMDF easier. For a list of third party platforms, refer to Frequently Asked Questions

Other Buildings, Facilities and Venues

You will need to create IMDF yourselves. The good news is there are a number of third party platforms and tools that can make creating and updating IMDF easier. For third party platforms, refer to Frequently Asked Questions

Occupants

Occupants of spaces inside buildings can change frequently. In a shopping center or airport, occupants are generally retailers and amenities. In non-public buildings, or non-public areas, these may be people or equipment.

Because Apple is adding indoor maps of airports and shopping centers to Apple Maps, we need basic information about occupants in public areas. For example, the names, suites, phone numbers, websites and operating hours of shops and restaurants, and descriptions of the whereabouts of information desks and restrooms. We also need occupant category information, for example “Shoes” or “Pizza,” to help users search and find relevant information. Apple does not need to know any information about occupants inside private buildings, or private areas inside public buildings.

In all cases, it's important that a distinct room or unit identifier be assigned to each space inside a building. This makes it easier for your organization to provide updates about occupants in each space. For example, on your floor plan you might identify retail spaces as “Unit 101”, “Unit 102”, and so on. You can use this identifier and tie it to the occupant of each space. So, “Unit 101” may currently be occupied by “Joe’s Pizza” and “Unit 102” by “Pete’s Coffee”. Then, next month when the leases change, “Unit 101” may become occupied by “Tony’s Pizza” and “Unit 102” may become occupied by “Phil’s Coffee”.

Occupants may be delivered in two ways:

IMDF Archive

As an occupant.json file, along with all other expected IMDF files

Indoor Occupant CSV File

The CSV file describes occupants and relates them to distinct space identifiers in your floor plans. Using a CSV file, you can provide updated information about occupants without having to redeliver IMDF. The Apple Indoor Maps Occupants Specification, along with sample data, is available here.

For initial map creation, shopping centers and airports may deliver occupant information as part of their floor plans or in a separate document. However, to make updates more efficient, it is essential that distinct space identifiers be defined for each space.

If spaces inside a building are divided or merged, or other significant structural changes occur, then a redelivery of IMDF would be required together with appropriate updates to space identifiers.

Viewing and Testing IMDF

Once you have created or updated an IMDF you can easily view it using IMDF Sandbox. Using IMDF Sandbox, you can also view validation reports, as well as make minor edits to the data.

It is strongly advised to use IMDF Sandbox to test and tweak your data before uploading to Apple Business Register (ABR). Additionally, when you upload an IMDF into your account on ABR, a detailed validation of the IMDF is performed. The resulting report can be used to correct any errors or warnings in the IMDF prior to delivery.

Apple Indoor Survey App

The Indoor Survey app is used to enable indoor positioning on iOS. It can also be used to test the performance of indoor positioning once it has been enabled. This is helpful to identify areas of your building that may require improved Wi-Fi coverage to enhance indoor positioning performance. It can also be used to help debug positioning in any iOS apps or websites you develop. Theoretically, the “blue dot” should appear in the same location in your own app or website as it does in the Indoor Survey app. If they disagree it may mean your indoor map is not correctly geo-referenced to latitude /longitude or it may mean you have a bug in your code.

Performing an indoor survey to enable indoor positioning using the Indoor Survey app is easy and intuitive. However, for best results, surveying requires some specific techniques. Refer to the Indoor Survey Help website for more information.

Once you have an IMDF, the simplest way to display (or “render”) your indoor map in your apps or websites is to use MapKit or MapKit JS. IMDF is stored as GeoJSON and JSON files, and both MapKit and MapKit JS provide APIs to render IMDF as overlays on top of Apple Maps. The APIs also provide methods to customize the overlays, so your indoor maps may follow your specific color and style guidelines.

As your users move around your buildings Core Location provides the CLLocation points that include a value for the current floor. You can use this floor value to automatically display the appropriate floor plan so the user doesn’t have to figure it out themselves. You can also use this value to provide automatic floor switching as the user transitions from one floor to another. For more detail see 2019 WWDC Session 241: Adding Indoor Maps to your Apps and Website.

Once indoor positioning is enabled for your buildings it is easy to add to your iOS apps using the Core Location framework. If you’re developing a website that includes indoor maps then you can enable indoor positioning for iOS users viewing your site in Safari. In Safari, iOS floor is exposed as geolocation.floorNumber.

Indoor Navigation in Your Apps

Indoor positioning (or “blue dot”) provides a foundation for indoor navigation (or “blue line”). Apple does not provide APIs for indoor navigation. However, many organizations provide APIs. For third party platforms, refer to Frequently Asked Questions

Creating IMDF

Developers looking to add IMDF conversion to their tooling, or large firms looking to generate and integrate IMDF with their existing facilities management process should consider working with Safe Software.

Safe Software provides a general purpose platform for data conversion and data pipelines. The platform includes comprehensive data format translation tools and validators for IMDF. To learn more, contact Safe Software.