Installation
Before starting to develop your application with the WemapSDKs, you’ll need to configure your credentials and add the SDK as a dependency.
Add the dependency
Add the WemapSDKs to your app
The code examples below show how to configure the
WemapPositioningSDK
to work with theWemapMapSDK
, but it can be used independently of theWemapMapSDK
.
In your
Podfile
, add the WemapSDK pods that you want to use in your app.use_frameworks! target 'TargetNameOfYourApp' do # Add the dependency for the WemapPositioningSDK library pod 'WemapPositioningSDKPolestar', '<version>' # Polestar Location Source pod 'WemapPositioningSDK/VPSARKit', '<version>' # Wemap VPS ARKit Location Source # Optionally, add the dependency for the WemapMapSDK library pod 'WemapMapSDK', '<version>' end
Make sure that your project target this platform version or later:
platform :ios, '12.0'
Install the pods, then open your
.xcworkspace
file to see the project in Xcode:AWS_ACCESS_KEY_ID=*** \ AWS_SECRET_ACCESS_KEY=*** \ AWS_REGION=*** \ bundle exec pod install --repo-update
open your-project.xcworkspace
Location Sources
Wemap provides a set of different location sources to manage the user’s location on the map. By default, WemapMapSDK
uses Apple’s LocationProvider to obtain raw location updates.
To set a specific location source, you need to add a specific WemapPositioningSDK
library to your project dependencies and assign it to the map.
override func viewDidLoad() {
super.viewDidLoad()
setupLocationSource()
}
If you want the camera to follow the user’s direction, you can do this by changing
userTrackingMode
of the map as shown belowmap.userTrackingMode = .followWithHeading
Polestar location source
func setupLocationSource() {
let source = PolestarLocationSource(apiKey: "emulator")
map.userLocationManager.locationSource = source
}
Wemap VPS ARKit location source
To make VPS service work, you need to know VPS service endpoint. For additional information contact Wemap team.
func setupLocationSource() {
let source = VPSARKitLocationSource(serviceURL: URL(string: "https://your-wemap-vps-endpoint")!)
source.vpsDelegate = self
map.userLocationManager.locationSource = source
}
You will also need to react to changes in the state of VPSARKitLocationSourceDelegate
due to the need to allow the user to scan their environment.
extension ViewController: VPSARKitLocationSourceDelegate {
func locationSource(_ locationSource: VPSARKitLocationSource, didChangeState state: VPSARKitLocationSource.State) {
if state == .scanRequired {
// ask user to scan his environment and show camera
}
}
func locationSource(_ locationSource: VPSARKitLocationSource, didChangeScanStatus status: VPSARKitLocationSource.ScanStatus) {
...
}
func locationSource(_ locationSource: VPSARKitLocationSource, didFailWithError error: VPSARKitLocationSourceError) {
...
}
}
Examples
You can find additional examples for the WemapSDKs on GitHub. Clone the repository and run the example application following the instructions in the README.