Show User's Location aka. Blue Dot
For a full implementation of this, please see here.
In this tutorial we will show how you can show a blue dot on the map, representing the users location. The position will be served from a mocked positioning provider and displayed on a map in a view controller.
We will start by creating our implementation of a positioning provider.
Create a class MyPositionProvider
that implements MPPositionProvider
.
Add some member variables to MyPositionProvider
.
delegate
: The delegate objectrunning
: A running state boolean flaglatestPosition
: The latest positioning result
Create a method called updatePosition
. This will be our "loop" constantly posting a new position to the delegate.
Check if the provider has a running state
Assign a new
MPPositionResult
tolatestPosition
Assign a new position point
Optionally specify that heading is available and set a heading
Notify the delegate by calling
onPositionUpdate
passing the new position as argumentSchedule a new delayed call of this method
Implement the startPositioning
method. We set the running
boolean to true and call updatePos
.
Implement the stopPositioning
method. We set the running
boolean to false.
Create a view controller displaying a map that shows the user's "mocked" location
Create a class ShowMyLocationController
that inherits from UIViewController
.
Inside viewDidLoad
or any method of your app's lifecycle, generate and apply a random position, you may optionally also override the default icon for blue dot
Inside viewDidLoad
we
Tell
mapControl
to show the users locationAssign your position provider
MyPositionProvider
toMPMapsIndoors.shared.positionProvider
and then finally,Start positioning
Last updated