Introducing the Indoor Maps Program 

Session 245 WWDC 2019

The Indoor Maps Program enables organizations with large public or private spaces to deliver user experiences that leverage precise location information and present stunning indoor maps. Learn the entire enablement workflow including, creation of a standards-based map definition, map validation, testing and calibration, and details on how to use MapKit and MapKit JS to integrate it all into your app or website.

[ Music ]

Hello, I’m Yuval Kossovsky and I’d like to welcome you to the Indoor Maps Program.

Perhaps, you are the owner of a large hospital, office tower, stadium or museum and are looking to add indoor maps and positioning to your own consumer or enterprise apps.

Or perhaps you are the owner of an airport, shopping mall or other facility with large numbers of public visitors and you’d like your indoor map and locations to be part of the Apple Maps’ indoor experience.

This session will have something of interest to each of you.

Outdoor location services have become embedded into our cities, our travel, our daily commutes, and even our social interactivity.

And people are beginning to expect a location experience everywhere, including the indoors.

In addition to a digital version of the well-known You-Are-Here map, there are many compelling consumer, operations and enterprise use cases that have indoor maps and indoor positioning at their core.

Air travel, for example, can be incredibly stressful when you don’t know where to park, where the security line is, where the gates are, or how long it will take to get from where you are to where you want to go.

A map updated in real time that shows you where your gate is, where you are and how much free time you have for shopping or a quick bite before your flight would make for a much more pleasant journey.

Looking at the operation side of the building, a staff member might need to locate a piece of equipment for routine maintenance or to service an outage.

Using indoor maps and indoor positioning, the equipment report can be tagged with an accurate latitude, longitude and floor level.

Then the nearest technician with the right skills to resolve the issue can be guided directly to the location to begin work, providing an incredible boost in operations efficiency.

Finally, consider that first responders have only moments to study a building layout before deciding on a plan of action.

Typically, the only available indoor maps are on paper and are not current.

Using electronically maintained indoor maps to show the location of the incidents, as well as the location of the responders inside the buildings, can greatly reduce response times, and in some cases, even save lives.

These three scenarios are just a few examples of what can be done with indoor maps and indoor positioning through the Apple Indoor Maps Program.

The Indoor Maps Program enables organizations with large public and private spaces to create standard space indoor maps, enable indoor positioning and create stunning indoor maps in their own apps and websites.

This session will discuss the overall workflow for accomplishing these tasks and provide some guidance in the form of best practices for success at each step.

At the core of the program is the Indoor Mapping Data Format, or IMDF.

This is Apple specification for modeling indoor spaces and is represented as a set of GeoJSON files.

Many of your favorite mapping in GIS platforms are already supporting the creation and editing of IMDF as it has quickly become the de facto exchange standard for indoor data.

Let’s take a deeper look at the Indoor Maps Program.

Building and property owners start by converting their CAD, BIM or GIS files to IMDF using industry standard tools.

Then they can use that IMDF map and developer tools from Apple to display indoor maps in their own consumer and enterprise apps.

In this simple case, displaying the IMDF in an app is something that any developer can do easily by themselves using MapKit and MapKit JS tools.

Because building and understanding IMDF can be a bit more complicated, there is the IMDF Sandbox, a tool for visualization, archive inspection, editing and experimentation with an IMDF archive.

Companies that own large public and private spaces, such as airports, shopping centers, arenas, hospitals, universities and private office buildings, are welcome to register their organization for the Indoor Maps Program, create IMDF maps using industry standard tools, validate those IMDF maps in the Sandbox, enable Apple indoor positioning and then use MapKit and MapKit JS to display indoor maps and indoor positioning in their apps and websites.

Highly trafficked locations, such as airports and shopping centers, may also want the public indoor maps of their buildings to be included in Apple Maps.

Any participant in the Indoor Maps Program can activate indoor positioning for their building and use the IMDF maps in their apps and websites.

Let’s go into more detail about the process for joining the Indoor Maps Program, managing your organization’s account and claiming your building locations.

Navigate your browser to to learn more about the program and get links to tools, information and documentation.

Click on Get Started to begin enrolling your organization.

When an organization enrolls for the Indoor Maps Program at Apple Business Register, an in-depth check is done on their business information.

The individuals performing the sign up must have emails connected to the organizational domain, and all of the primary contacts must be employees or registered agents of the company.

Once the organization is validated and approved, the administrator is able to manage their team members through the controls on the right.

Tapping or clicking on team members reveals the list of members, and tapping on the plus sign reveals a dialog for both individuals and entire organizations to participate in this organization.

The invitees can be assigned any number of five different roles and given access to the entire catalog of venues or selected individual locations.

This granular control enables an organization to easily outsource IMDF mapmaking and survey to partners on a venue-by-venue basis or across the organization.

System integrators wishing to make IMDF to survey for indoor positioning or build indoor apps for their clients should get invited to an organization, rather than try to claim a client’s buildings on their behalf.

And that is team management.

Claiming locations for an organization is easy.

Keep in mind that the claims can only be made for your own properties, not on behalf of others.

Click on Indoor Maps under Connected Services, tap the plus button and select your location.

Depending on the categorization of the building, you’ll be presented with different options for how to proceed.

Buildings that are private locations are not eligible to have their indoor maps display in Apple Maps.

Properties such as airports will be asked for permission to display their indoor maps in Apple Maps.

Once the location claim is approved, you can upload an IMDF and the validator will begin analyzing the file automatically.

After a few minutes, you’ll receive an email indicating that validation is complete.

There will be a link to the validation report, where you can see any errors that blocked acceptance of the file or any warnings which indicate conditions that need further examination.

You can use the embedded link to the IMDF Sandbox to view the IMDF file, make quick edits if needed.

Once an IMDF is error free in the validator, it will move to georeferencing and evaluation.

To ensure accurate indoor positioning, the IMDF must have walkable areas for survey and be aligned with the Apple satellite imagery.

The indoor team will manually check the georeferencing of your IMDF and do a cursory check for defects in the IMDF that cannot be surfaced in the validator.

If any changes are made to the file, they will be saved into a new IMDF, which will be made available under Download Georeference to IMDF, along with a report indicating what work was done.

Let’s review the best practices for joining and participating in the Apple Indoor Maps Program.

While anyone can make an IMDF map and display it in their app and website using MapKit and MapKit JS, the Indoor Maps Program and enabling Apple indoor positioning is for owners of large properties.

Some measures of large include 50 square meters, 5 million annual visitors, or entire office buildings.

The individuals enrolling must be part of the organization and must provide enough information to verify the organization details.

If there’s an existing account, the current account admins will be notified of the new enrollees and asked to invite them directly.

This ensures the organization maintains control of all members.

Some locations are eligible for display in Apple Maps.

However, the indoor map will remain private unless permission is given.

IMDF is the basis for the map used to display in your app and website and to enable indoor positioning.

To create an IMDF, work with your facilities team to investigate the offerings available from companies, like Safe Software, Autodesk, Esri, and other GIS and BIM tool platforms.

Let’s take a deeper look at IMDF.

To understand how IMDF is constructed, we should first look at the general components of a building floor plan.

An indoor map like a regular map is comprised of many layers.

Each of these layers may contain several features.

Let’s break down this building map, for example.

Simplistically, the base of an indoor map is the building ground footprint, or the size and shape of the physical building plus the GeoCoordinates, where it sits on the earth.

Indoor locations are still on the earth.

And to handle the movement of people in and out of the building, an indoor data model has to account for this fact.

Georeferencing of the building is the solution.

The next step is to add a level.

Again, simplistically, we can use the ground floor or ordinal zero for our example.

The level is entirely covered by some form of what we call a unit, for example, a room, a walkway, an elevator or an escalator.

Anything that occupies space on the level is defined with geometry and a category of some kind.

Rooms typically have doors or what we call openings.

And then within the units, there are also other objects, such as kiosks.

They’re typically in the walkway unit of a shopping center or mall.

Next, there are labels which are applied to the units, such as the name of a business that occupies a room.

Icons are used to mark the location of amenities of interest, such as an elevator or a restroom.

At the Jurassic Table restaurant, there is also a delimited area that acts as a virtual boundary, which extends outside of the walls of the actual unit.

This could be post security in an airport or the food court in a mall.

And these are some of the constructs that make a good indoor map format, such as IMDF.

Underlying the format are rules on how to consistently capture information about the physical spaces and the business purpose of those spaces into an easy to understand hierarchy.

Let’s take a look at some of the required features and some optional elements that make up an IMDF archive.

There are three core files that provide the base information of the venue, the manifest, which has some administrative detail, the address, which provides the postal address, and the venue layer that describes the overall shape of the location.

The property is then extended by the building layer, and its associated footprint layers which bring details to the physical building.

Working our way deeper in, the levels within the building are defined.

The level is then entirely covered in units, which are associated with openings, such as doorways.

The level also has logical area groupings, like sections and trigger regions like geofences.

Then kiosks and fixtures are placed.

Amenities and their associated data are assigned to the units, and finally, anchors are used for positioning references and unit addresses with additional data blocks, such as the occupant, providing the occupant name and phone number and related data.

And that is how the hierarchy is set up.

You can learn more by reading the Indoor Mapping Data Specification in detail.

But what is IMDF to the developer’s eye?

An IMDF is an archive made up of multiple GeoJSON files and the multiple files we discussed.

This is a GeoJSON file.

And as you can see here, there’s a unique UUID provided to the specific feature type of level.

The public can access this building so the restriction property is set to null and it is indoors.

This is level one in the building.

And what you see printed on the elevator button is L1.

Importantly, we see that this level is associated to a single building ID and it has a good geometrical shape as described here.

All in all, a comprehensive set of information in a simple text file.

Let’s review some of the important elements in understanding and crafting an Indoor Mapping Data Format archive.

It is important to understand how the layers relate and where the data for each element is surfaced.

It is important to ensure that the IMDF is complete, even from proof of concept deliveries and that the units cover the entire building.

Everything on the level is a unit, including walkways which have their own category.

Speaking of categories, they are critical to a good map and good rendering behavior.

Openings are important for both location accuracy and proper routing and should be included to make it easier for those with mobility and site challenges.

Occupants should have unique addresses and IDs for tracking and updates of names.

Finally, when making the IMDF, consider the indoor survey.

Large spaces are hard to get accurate orientation.

Even if your map doesn’t need the information, including notable landmarks or orienting information like columns, will make it much easier for getting proper calibration during the indoor positioning survey, and consequently better accuracy after.

And that’s creating the IMDF.

Next, let’s look at validation.

As I mentioned earlier, when an IMDF is uploaded into the organization’s account, it is electronically validated and a report is provided with a detailed analysis.

While this may be easy for well-schooled GIS professionals to consume, we thought there might be an easier way to work with this sort of information.

The IMDF Sandbox is a browser-based tool for visualizing IMDF, searching the IMDF file, observing the validations and making simple edits.

I have a sample IMDF archive data set opened here.

First of all, you can see the map.

This is rendering the IMDF data to show you how it looks.

There’s a level picker for switching between levels and a compass to show you the orientation.

On the left, you’ll find a directory that will help you browse and navigate the data with quick access to all the businesses and services.

Or browse the data by building or by level.

At the top, there’s a search bar that lets you search for anything and everything within this data set.

At the top of the panel at the Home, you’ll also see a link to all the validation errors and warnings triggered by this data set.

The validation engine is the same tool in use when an IMDF is uploaded to the Indoor Maps Program, but the results are interpreted and visualized by the Sandbox.

In this case, there are no errors, but just warnings.

Warnings are present because the validator identifies a scenario that could be an error or could be ignored.

Depending on your business use case, it is important to have someone with an understanding of the IMDF specification and the business use case review warnings generated by the validator to make a decision on their importance.

Let’s take a look at how the IMDF Sandbox can be used to discover errors and do some light editing.

I’ve introduced a few errors into my sample data to show you how this works.

When I first load the IMDF archive, the Sandbox shows me errors.

The warnings are shown in the other tab.

In order for my IMDF to be accepted into the Indoor Maps Program, it cannot have any errors.

So, let’s take a closer look and get these resolved.

First, we can see that there are overlapping units.

In IMDF, units should never overlap.

So this is an error.

Taking a closer look, the Sandbox tells us that there are two instances of this error in this data set.

By clicking one or the other, the map zooms to that particular location and highlights which units overlap.

Here, it is the blue unit and the yellow unit overlapping with the overlapping areas shown in orange.

The Sandbox provides me with an easy option to remove the overlap by simply removing the overlapping area from one or the other.

I have chosen to remove the overlap from the blue unit, because then both units are nice and rectangular.

And now, it is fixed.

Let’s take a look at the other overlapping units error.

It seems this elevator is too large.

So I’m going to remove that overlap from the elevator unit.

And now, both errors have been fixed.

There is now one other error I need to quickly resolve with the unit being outside the reference level.

You can see the orange area outside the level looks to be some sort of drawing error that was picked up when the file was digitized.

I removed that area from the level and the entire file is now free from errors.

Because all of the work in the Sandbox is done locally in the browser, I will have to click on Download the IMDF at the top right of the screen and save a copy in order to keep these changes for use in register and adding back into my content management system.

To recap, best practices for IMDF validation.

The same validation tools are available when uploading your files to the Indoor Maps Program and the IMDF Sandbox.

They check the accuracy and integrity of your IMDF to the limit of the business use case.

Warnings are surfaced when a condition can apply to multiple use cases.

After validation, the IMDF is checked manually for accurate placement on the earth or georeferencing to ensure accurate indoor positioning when indoor positioning is enabled.

With IMDF Sandbox, you can easily look at complex IMDFs and see the details, identifying fixed errors and then save the files.

All of this work is done locally in your browser and is not shared with Apple.

The IMDF Sandbox is available for anyone with an Apple ID and not just building owners in the Indoor Maps Program.

And that is IMDF validation.

So, now, we know how to join the Indoor Maps Program, create an IMDF and validate it.

The next step is to enable Apple indoor positioning.

But first, we need to understand just how Apple indoor positioning works.

Imagine a still pond and a drop of rain falls on the surface of the water.

The ripples caused by the raindrop are much like the signal coming from an access point.

With one drop, one set of ripples.

But with multiple raindrops, you get many ripples which produce waves that intersect with each other, lay a grid over the waves, and inside each box, there will be a unique texture pattern of ripples or what we call the fingerprint.

The IMDF map provides the latitude, longitude and floor coordinates for each box in the grid, allowing the location service to create a pairing between the coordinates and the fingerprint.

When your iPhone or iPad is entering the building, the fingerprint is downloaded to the device from the core location servers.

Once this is done, while the device Wi-Fi radio must be active, it no longer needs a network connection for positioning to work.

When an app calls location accuracy best, the device passively looks at the fingerprint, does an on-device pattern match, derives the coordinates and plots the location dots.

Local sensors are then used to keep the dot up to date until a threshold at which point the device looks at the fingerprint again.

Apple indoor positioning is incredibly fast, low power and private.

In short, an indoor map plus Wi-Fi gives you the blue dot.

The specific steps to enable indoor positioning are, with an IMDF already loaded into your account, collect the Wi-Fi using the survey app, upload the surveys back to the core location servers for analysis and activation, and then test positioning in the survey app as a reference for quality.

Let’s take a quick look at a demonstration of surveying and testing positioning.

In the survey process, you drop points on a screen as visual markers of where you are standing in the real world.

This is how the positioning algorithm is calibrated to your location.

Here, you can see the surveyor has oriented himself in the room and on the screen and then presses record.

The surveyor then moves the crosshair to the next location five to eight meters out to a point he can verify.

And when in that spot, taps on the screen, registering the point.

Notice his feet crossed the grid lines on the floor as he taps on the screen and calibrates the survey.

At corners, the surveyor makes right angle turns in place, rotates the screen, taps and walks.

The area colored in represents the Wi-Fi signal captured.

When the floor is entirely colored in, the area is fingerprinted and the data is ready for upload.

Once the survey data has been processed, you’ll be notified that the indoor positioning is ready.

Toggle privacy, location services to flush the location cache.

And then you can begin testing the accuracy of indoor positioning.

If positioning is working, the map will display in test mode, the green areas represent all the surveys that were uploaded and successfully processed.

The blue dot is the center point of the positioning estimate with the light blue circle being the range of confidence in accuracy.

Here, you can see the confidence circle is well within the three to five meter expectation of Apple indoor positioning and is following the tester quite well in the smaller environment.

Including fixtures such as the tables in your IMDF will add to the constraints placed on the positioning service and enhance accuracy.

Let’s recap how indoor positioning works and how we enable it.

Apple indoor positioning uses Wi-Fi fingerprinting.

It uses any Wi-Fi signal in the building passively and does not make any impact on the network.

Indoor positioning is enabled using the indoor survey app and the IMDF made available through the Indoor Maps Program.

Surveying isn’t difficult but the steps have to be followed if you are to succeed.

Everyone surveying a location should have the same model of iPhone and same version of iOS.

Drop pins every five to eight meters as you walk and continue in smooth motion.

Keep in the center of walkways to ensure the walls are factored in to your positioning constraints.

Do not use any sort of case on your iPhone while surveying.

And read the help documentation for tips on patterns to walk for enabling specific types of buildings and positioning use cases.

Finally, now that we have an IMDF and indoor positioning, how do we put this in our apps and websites?

MapKit and MapKit JS support decoding and rendering of GeoJSON files.

You can use these frameworks to display IMDF data as overlays and annotations on a map.

Styling your indoor map elements is critical to how the map is perceived and used.

Apply styles that match your app’s theme or your company’s brand.

For a rich indoor experience, you can take advantage of indoor location by enabling Apple indoor positioning within your building and then using APIs from the core location framework to display the user location indoors.

To learn more, check out the video and sample code for our WWDC Session Adding Indoor Maps to your App and Website.

And that’s the Indoor Maps Program.

We look forward to seeing all the wonderful apps you will build.

Thank you so much for your time today.

For more information, visit our website at

Apple, Inc. AAPL
1 Infinite Loop Cupertino CA 95014 US