Indoor Location Provider <<Generic>>
When some location providers provide a location update (lat/lon/alt), they override the altitude component to determine the floor within the building. This is done by predefining certain altitudes to match certain floors. For example:
|Floor name||Altitude (meters)|
Each floor, within the Visioglobe map, has a name and a predefined altitude height and range. By default the altitude starts at 0m for the first floor and increments by 10m for each floor thereafter.
Within VisioMove (Visioglobe’s SDK) it’s possible to determine what floor a position (lat/lon/alt) falls in using the following method:
It’s also possible to determine a floors altitude range using:
The simplest method for connecting a location provider and a Visioglobe map together is to ensure that the altitude component, sent in the location update, corresponds with the Visioglobe map floor altitude. When the two altitudes corresponds, then the method getLayerForPosition() can be used to retrieve directly the current floor.
Calibrating Visioglobe floor altitudes
It’s possible to change the default floor altitude associations of a Visioglobe map using VisioMapEditor.
To do this, follow the below instructions:
We can now edit directly the altitude field for each floor to correspond with that sent by the location provider system.
The thickness field determines the range of each floor. For example, a floor that has an altitude of 25 meters and a thickness of 8 meters will have an altitude range between 21 and 29 meters. In general, the value of the thickness field shouldn’t be twice as large as the difference between two floors.