iOS User Guide | Android User Guide | Indoor Mapping | APH Tech Home

Indoor Mapping for Nearby Explorer™ for iOS

American Printing House for the Blind, Inc.

Indoor Mapping Overview

Nearby Explorer supports two different ways to set up beacons—ad hoc and complete mapping. The ad hoc method is quick and easy, and nearly anyone can do it. The complete mapping method is more robust, provides more features, and is easier to use, but it is harder to set up.

The disadvantages of ad hoc beacons are:

Ad hoc beacons work by providing a signal when the app sees a beacon with default identification.
if a manufacturer does not use a default UUID, it will not work in Ad Hoc mode.
The complete mapping method uses beacons to provide a true location indoors, so all the normal features are available.

The following beacon manufacturers should work in either ad hoc or complete mapping mode:

Ad Hoc Beacon Setup

Ad Hoc Beacon Manager

Enable Ad Hoc beacons through the Ad Hoc Beacon Manager. This setting consumes a lot of power, so it is not recommended to leave Ad Hoc beacons enabled all the time. Mapped beacons, on the other hand, only come on when the app knows there are beacons on the map.

Enable proximity beeps by turning on the Enable Proximity Beeps button. The beeps get higher in pitch as you approach the closest beacon and lower in pitch as you move further away from the beacon.
Nearby Explorer automatically sequentially assigns beacon numbers to successive beacons as you encounter them. Use the Rename functionality to give them identifiers that relate to where you have placed them. Current implementations do not provide a method for sharing names.
Select the Forget All Beacon Names button to clear the names of renamed beacons or even any fitted with automatic names.

Complete Mapping

The American Printing House for the Blind has been working to add indoor features to Nearby Explorer™. The approach relies on three main components: indoor data at OpenStreetMap® (OSM), Bluetooth® location beacons, and the Nearby Explorer™ app itself.


During testing and development, we have been using Estimote™ Long Range Location Beacons. Once physically installed in the building, the device's UUID/major/minor data is established and the beacon is mapped into OSM using the indoormark=beacon tag. This process takes about 15 minutes per beacon (5 minutes each to set and record the beacon's data, physically place it, and map it into OSM). In current testing, beacon settings are turned up (Advertising Interval 100 ms, Transmit Power 0 dBm).


The building's indoor data is entered into OpenStreetMap, which enables an open process for multiple organizations and users to enter publicly-accessible information about building interiors. Currently, especially in the United States, this data must usually be mapped from scratch. Indoor data consists of ordinary OSM nodes, ways, and relations tagged with the Simple Indoor Tagging scheme. Increasingly the browser-based iD editor at the home page has added support for indoor data, but there is a dedicated indoor editor, iD-indoor, and viewer,, which are more useful. Since it is difficult to overlay building blueprints over the map, mapping is largely a process of estimating the location of indoor features by physically examining the space and comparing it to satellite imagery on OSM and blueprints when available. Some buildings that are currently mapped this way include APH, Crescent Hill Public Library, and Louisville's LouieLab civic innovation hub and CNET Smart Apartment.

Nearby Explorer picks up OSM nodes as points of interest, so nodes (especially doors) need descriptive name=* tags (such as "East Conference Room Door", "South Entrance", or "Rear Elevator Door"). Here follow some examples of tagged indoor features:


Simple Indoor Tagging recommends that the building:max_levels=* and building:min_levels=* be used when adding indoor data. This should be added to existing buildings.


Rooms have the indoor=room and level=* tags, among others.


Stairways connect multiple levels, so their level=* tag shows the range of levels they connect. This is an enclosed stairwell.


This is another feature that spans multiple levels.


The door=* tag can describe hinged or sliding doors, or can use door=no to indicate an open doorway. In general, doors should have unique and usefully descriptive names, but open doorways that connect nondescript corridors don't need a generic name=* tag, which can confuse users. The entrance=* and ref=* tags may also be appropriate. Stairwell doors repeated on multiple levels should have the repeat_on=* tag. After placing a door node, drag it onto the room outline to connect them.

Beacon IDs

Our current practice is to assign a unique UUID per each building or area. It's easiest to set the UUID of a beacon and record their data into a spreadsheet, physically place the beacons in the building, then map each beacon's location into OSM. Beacons are currently only used for location.

Other Sources on Labeling

Notice: Accessibility of APH Websites