== Positioning ==
{{UBIK}} clients use a [[Location_Manager|Location Manager]] in order to gain knowledge about their position, so it can help the user navigate to his/her target.
The user can [[HowTo:Switch_Positioning_Mode_(UBIK_Android)|choose one of different positioning modes]] optimized for different environments.
Most of them incorporate multiple technologies for calculating positions or checking their reliability.
=== Positioning modes ===
* ''Outdoor mode'' - used for outdoor positioning
* ''Indoor mode'' - used for indoor positioning
* ''LLA only mode'' - used for positioning using markers only
* ''Beacon Trilateration mode'' - uses iBeacon triangulation only
* ''Beacon Proximity mode'' - uses iBeacon proximity only
=== Technologies ===
==== GPS ====
GPS is used as a primary positioning input source for outdoor areas. Its precision depends on the environment and satellite availability. With good circumstances, the accuracy varies between 1 and 10 meters.
==== LLA markers ====
LLA markers basically are QR codes with location data encoded into them - which can be used for positioning when they are scanned. LLA-Markers are configured as follows (Note that the altitude is described as the elevation from ground in meters):
<source lang="xml">
<UBIK>
<LLA>Latitude;Longitude;Altitude</LLA>
</UBIK>
</source>
[[Category:Client|UBIK Client Basics]]
==== Dead Reckoning ====
Dead Reckoning uses a device's magnetic & acceleration sensor in order to estimate the movement the device undergoes. This way, the current location can be calculated based on an earlier known location and the movement that happend in between.
==== Edge plausibility ====
An "edge" in this context means the description of a path section inside an area, e.g. a corridor in a building.
Since positioning is not perfectly accurate, a location candidate has to be judged whether it can be relied on or not. This can be done using an edge model describing the ways the device can possibly take. If the alleged position is, let's say, inside a wall, then it is probably wrong. Such an edge model can also be used for optimizing a wrong position by snapping it onto the nearest edge.
==== Speed plausibility ====
Another way to judge a position's quality is to check how fast the device would have to move in order to get to it from its previous location. If the necessary speed is too fast, the position is deemed implausible.
==== Object Proximity Positioning ====
The location of nearby Geo-Objects can be used for positioning.
The position of a Geo-Object can be used manually by pushing the button {{key press|Use Location}} in the [[UBIK Client Basics#Context Menu|Context Menu]].
The geo information of an object gets used automatically if exactly one single object is found through scanning. If more objects are found, their geo information doesn´t get used. Scanning includes [[UBIK Client Basics#ID Marker|ID Marker]], [[UBIK Client Basics#Bar Code|Bar Code]], [[UBIK Client Basics#QR Code|QR Code]], [[UBIK Client Basics#OCR|OCR]], [[UBIK Client Basics#RFID|RFID]], [[UBIK Client Basics#Markerless|Markerless]] and [[UBIK Client Basics#ID Marker 3D|ID Marker 3D]]. The automatic use of Geo-Object´s location can be turned off by disabling the "EnableObjectProximityPositioning" setting.
==== iBeacon-Trilateration Positioning ====
iBeacons are small, battery-powered devices, which are sending an unique identifier via Bluetooth Low Energy. iBeacons have to be mounted on known positions inside a building. If more than three beacons are in reach of the mobile device, the position of the user can be calculated.
In order to use iBeacon-Trilateration as a Positioning System, Bluetooth Low Energy has to be available and enabled on the mobile device.
If a new environment should be equipped with iBeacon-Positioning, an expert has to mount iBeacons on known positions and calibrate the transmission behaviour of these beacons. Trilateration beacons can be configured using [[SYSCLS_TRILATERATION_BEACON]].
==== iBeacon-Proximity Positioning ====
The iBeacon Proximity Mode detects if the user is in the proximity of a beacon. The proximity region is defined by a proximity distance which creates a sphere around the beacon. Whenever the calculated distance to a beacon is smaller than the proximity distance, the user is supposed to be at the position of the beacon. If multiple regions intersect the user is supposed to be at the position of the nearest beacon.
In order to use iBeacon Proximity as a Positioning System, Bluetooth Low Energy has to be available and enabled on the mobile device. If a new environment should be equipped with iBeacon-Positioning, an expert has to mount iBeacons on known positions and calibrate the propagation factor of these beacons. Proximity beacons can be configured using [[SYSCLS_PROXIMITY_BEACON]]. {{Version/AndroidSince|2.5.5}}
[[Category:Client|UBIK Client Basics]]