Partager via


MapUserLocation Class

Note

Bing Maps SDK for Android and iOS retirement

Bing Maps SDK for Android and iOS is deprecated and will be retired. Free (Basic) account customers can continue to use Bing Maps SDK for Android and iOS until June 30th, 2025. Enterprise account customers can continue to use Bing Maps SDK for Android and iOS until June 30th, 2028. To avoid service disruptions, all implementations using Bing Maps SDK for Android and iOS will need to be updated to use Azure Maps Web SDK by the retirement date that applies to your Bing Maps for Enterprise account type.

Azure Maps is Microsoft's next-generation maps and geospatial services for developers. Azure Maps has many of the same features as Bing Maps for Enterprise, and more. To get started with Azure Maps, create a free Azure subscription and an Azure Maps account. For more information about azure Maps, see Azure Maps Documentation. For migration guidance, see Bing Maps Migration Overview.

Allows to track the user's location and display it on the map with an accuracy radius and a directionality cone.

Look here for more information on how this class can be used with examples.

Android

public class MapUserLocation

iOS

@interface MSMapUserLocation : NSObject

Overview

There is no direct way to construct a UserLocation class. Instead, MapView holds a UserLocation instance which should be accessed in order to use user location features.

See also: MapView

Android

public class Mapview {
  MapUserLocation getUserLocation()
}

iOS

@interface MSMapView : UIView
@property(nonatomic, readonly) MSMapUserLocation* userLocation
@end

Properties

Visible

Sets user location icon's visibility while tracking continues. If called before tracking was started, setting will be saved but nothing will show until tracking is started. The default value is true.

Android

boolean getVisible()
void setVisible(boolean visible)

iOS

@property(nonatomic) BOOL visible

Tracking Mode

Sets user tracking mode to None or centeredOnUser. Default value is none. If tracking mode is set to centeredOnUser, once the user interrupts the map, it will change back to none. Add tracking interrupted event listeners to be notified once the user interrupts the map. See events section below for more information.

See also: MapUserLocationTrackingMode

Android

MapUserLocationTrackingMode getTrackingMode()
void setTrackingMode(MapUserLocationTrackingMode mode)

iOS

@property(nonatomic) MSMapUserLocationTrackingMode trackingMode

Orientation

Sets user location orientation to be used by the directionality cone. Default value is heading. If called before tracking is started, the setting will take effect next time tracking is started. If called after tracking is started, the orientation will be switched immediately.

See also: MapUserLocationOrientation

Android

MapUserLocationOrientation getOrientation()
void setOrientation(MapUserLocationOrientation orientation)

iOS

@property(nonatomic) MSMapUserLocationOrientation orientation

Signal Lost Alert Action

Sets the action that should be taken for future signal lost alerts. Default value is ignore. If the alert is currently being shown, setting this action will not affect the current alert.

See also: MapUserLocationSignalLostAlertAction

Android

MapUserLocationSignalLostAlertAction getSignalLostAlertAction()
void setSignalLostAlertAction(MapUserLocationSignalLostAlertAction action)

iOS

@property(nonatomic) MSMapUserLocationSignalLostAlertAction signalLostAlertAction

Last Location Data

Gets last location retrieved or null(Android) / nil(iOS) if no locations were ever recorded.

See also: MapLocationData

Android

@Nullable MapLocationData getLastLocationData()

iOS

@property(nonatomic, readonly, nullable) MSMapLocationData* lastLocationData

Last Heading

Gets last heading retrieved where heading is the direction the phone is pointing at. This value is relative to true North. The value 0 means the device is pointed toward true North, 90 means it is pointed east, 180 means it is pointed south, and 270 means it is pointed west.

Android

Returns null if no headings were ever recorded.

@Nullable Double getLastHeading()

iOS

Returns -1 if no headings were ever recorded.

@property(nonatomic, readonly) CLLocationDirection lastHeading

Methods

Start Tracking

Starts tracking and returns ready state if location permission were granted. Returns permissionDenied state if no location permissions were granted and tracking will not start. Returns disabled state if all providers were disabled. If permissionDenied was returned, developer should request for location permissions and then call this method again. If called multiple times, tracking will restart with the new locationProvider.

See also: MapUserLocationTrackingState

Android

MapUserLocationTrackingState startTracking(MapLocationProvider mapLocationProvider)

See also: MapLocationProvider, and GPSMapLocationProvider

iOS

- (MSMapUserLocationTrackingState)startTrackingWithLocationProvider:(MSMapLocationProvider*)locationProvider

See also: MSMapLocationProvider

Stop Tracking

Will stop tracking and hide the user location if it was already active. If called when user location was not active, nothing happens.

Android

void stopTracking()

iOS

- (void)stopTracking

Events

Tracking Interrupted

Fired when tracking mode was in CenteredOnUser state and the user interrupts the map and changes it back to tracking mode None.

Android

void addOnMapUserLocationTrackingInterruptedListener(OnMapUserLocationTrackingInterruptedListener listener)
void removeOnMapUserLocationTrackingInterruptedListener(OnMapUserLocationTrackingInterruptedListener listener)

See also: OnMapUserLocationTrackingInterruptedListener

iOS

- (MSMapHandlerId)addUserDidInterruptTrackingHandler:(MSMapUserLocationTrackingInterruptedHandler)handler
- (BOOL)removeUserDidInterruptTrackingHandler:(MSMapHandlerId)handlerId

See also: MSMapUserLocationTrackingInterruptedHandler