For installation and initialization, see the SDK Quickstart.
Receiving live positions
The session’sonPosition callback delivers the user’s coordinates. It fires independently of server uploads, up to 4 times per second.
Coordinates are in meters (m).
- SwiftUI
- UIKit
Displaying the floor plan
Show the user the floor plan they are being positioned on.You need a building ID and a floor ID to render it. To draw the user’s position on top of it, map the
onPosition coordinates onto the plan.
- SwiftUI
- UIKit
hasPlan == false means no floor plan has been set up for that floor.See Guide — Floor plan placement · clusters.
locators(_:_:).
When positioningReady is false, that floor has no locator or session data and positioning cannot start.
Zone events
Enter, exit and dwell arrive as separate callbacks. The decision is made on the device, so there is no server round trip.- SwiftUI
- UIKit
Zones for each floor are configured in Space management.
Refreshing zone data
After you change and save zones in the console, refresh them from your code.Creating and connecting a profile
To collect a customer’s movement, issue a profile for each account and keep the ID in your own storage.The issued profile ID must be stored by you. A lost profile ID cannot be recovered, so handle it with care.
Selecting a building and floor
To collect positioning data you must set a building and a floor. One building can have several floors.setFloorMap sets the locator data used for positioning and the map together with the zone data shown to the user.
Building and floor data requires
geoSdkKey at initialization — without it you cannot look them up.Handling unsupported devices
Using the OneS1ght SDK requires the device to meet the minimum requirements. SDK QuickstartEven when it is installed on an unsupported device, the app keeps working without any impact from the SDK.
isDeviceAvailable is the short form for checking whether the device can use the SDK, and it returns a Boolean (true/false).Controlling data upload
The OneS1ght SDK uploads collected positioning data on its own schedule, but you can flush or drop the buffer immediately when you need to.Resetting the session
Discards the accumulated session and starts a new one.Using API keys per environment
In the OneS1ght console you can issue keys as Development or Production.The two environments are isolated and cannot reach into each other.
Set the API key per environment so that test traffic does not mix into production data.
Because of an iOS platform restriction, real positioning cannot be verified in the simulator. Build to a real device and test there.
Troubleshooting
How to collect logs
How to work with logs during development.
SDK error codes
What the errors you hit during development mean.