PWMapView Class Reference
| Inherits from | MKMapView |
|---|---|
| Declared in | PWMapView.h |
Overview
A PWMapView object provides an embeddable map interface. It is similar to the one provided by the maps application but is specifically tailored to indoor maps. PWMapView subclasses MKMapView to provide a convenient interface that downloads, stores and displays indoor maps and associated points of interest (POIs). Usage of this class is optional but recommended for basic indoor map implementations.
delegate
The delegate for the map. The PWMapViewDelegate inherits from MKMapViewDelegate.
@property (nonatomic, weak) id<PWMapViewDelegate> delegateDeclared In
PWMapView.h
locationSharingDelegate
The location sharing delegate.
@property (nonatomic, weak) id<PWLocationSharingDelegate> locationSharingDelegateDeclared In
PWMapView.h
campus
The PWCampus object associated with the current map. If no campus is associated with the PWMapView, the campus will be nil.
@property (nonatomic) PWCampus *campusDeclared In
PWMapView.h
building
The PWBuilding object associated with the current map. If no building is associated with the PWMapView, the building will be nil.
@property (nonatomic) PWBuilding *buildingDeclared In
PWMapView.h
currentFloor
Returns the currently displayed PWFloor object. This property may be nil if no floor is displayed. Attempts to change to the same floor are ignored. When the floor change is complete, the delegate will receive a mapView:didChangeFloor: callback.
@property (nonatomic) PWFloor *currentFloorDeclared In
PWMapView.h
currentBuilding
Returns the currently displayed PWBuilding object. This property may be nil if no floor is displayed. Attempts to change to the same floor are ignored. When the floor change is complete, the delegate will receive a mapView:didChangeFloor: callback.
@property (nonatomic) PWBuilding *currentBuildingDeclared In
PWMapView.h
currentRoute
The current PWRoute object plotted on the map. This property will be nil if no route is displayed.
@property (nonatomic, readonly) PWRoute *currentRouteDeclared In
PWMapView.h
indoorUserLocationVisible
A Boolean value indicating whether the device’s current indoor location is visible in the map view. (read-only)
@property (nonatomic, readonly, getter=isIndoorUserLocationVisible) BOOL indoorUserLocationVisibleDiscussion
This property tells you whether the icon used to represent the user’s current indoor location is visible in the map view. When determining whether the current indoor location is visible, this property factors in the horizontal accuracy of the location data.
Specifically, if the rectangle represented by the user’s current location plus or minus the horizontal accuracy of that location intersects the map’s visible rectangle, this property contains the value YES.
If that location rectangle does not intersect the map’s visible rectangle, this property contains the value NO.
If the user’s indoor location cannot be determined, this property contains the value NO.
Declared In
PWMapView.h
showsIndoorUserLocation
A Boolean value indicating whether the map should try to display the user’s indoor location. In order to display the user’s indoor location, a PWLocationManager object must be registered with the map view.
@property (nonatomic) BOOL showsIndoorUserLocationDiscussion
This property only indicates whether the map view should try to display the user’s indoor position, not whether the user’s indoor position is actually visible on the map. Setting this property to ‘YES’ causes the map view to use the specified PWLocationManager object to find the current indoor location and to try displaying it on the map. As long as this property is ‘YES’, the map view will continue to track the user’s indoor location and update it periodically. The default value of this property is ‘NO’.
Showing the user’s indoor location does not guarantee that the location is visible on the map. The user might have scrolled the map to a different point, causing the current location to be offscreen. To determine whether the user’s location is currently displayed on the map, use the indoorUserLocationVisible property.
When setting this property to NO, PWTrackingMode will be set to PWTrackingModeNone.
Declared In
PWMapView.h
floorTransitionModeEnabled
A Boolean value indicating whether the map should hide blue dot when atmospheric pressure changes indicate a floor transition. Not recommended for most setups and disabled by default.
@property (nonatomic) BOOL floorTransitionModeEnabledDeclared In
PWMapView.h
indoorUserLocation
The object representing the user’s current indoor location. (read-only)
@property (nonatomic, readonly) PWUserLocation *indoorUserLocationDiscussion
If blue dot smoothing is active, this property will report an interpolated position and will thus be very volatile.
Declared In
PWMapView.h
trackingMode
The mode used to track the user’s indoor location.
@property (nonatomic) PWTrackingMode trackingModeDiscussion
Possible values are described in PWTrackingMode. It’s important to note that this property replaces the userTrackingMode property of type MKUserTrackingMode on MKMapView. Setting this value will have no effect if an indoor location manager has not been registered with the map view.
Declared In
PWMapView.h
blueDotSmoothingEnabled
Determines whether or not blue dot smoothing is used to provide a better visual experience when displaying the user’s location.
@property (nonatomic) BOOL blueDotSmoothingEnabledDiscussion
When based on information supplied by location providers, normal blue dot behavior is “jumpy” because location updates are received several times per second (at most). This feature “conditions” the user’s reported location by first using a rolling average of the reported locations, then interpolating between average locations. This feature is turned on by default.
Declared In
PWMapView.h
routeSnappingTolerance
Determines the route snapping behavior of the user’s displayed location.
@property (nonatomic) PWRouteSnapTolerance routeSnappingToleranceDiscussion
This value is only used while in routing mode and is used to configure the route snapping feature. The possible values of this property are as follows:
- PWRouteSnappingOff: no route snapping will be performed at all
- PWRouteSnapToleranceNormal: the user’s location will be “snapped” to the nearest point on the route if the route is within the horizontal accuracy of the location being used (this is the default value)
- PWRouteSnapToleranceMedium: the user’s location will be “snapped” to the nearest point on the route if the route is within 1.5 times the horizontal accuracy of the location being used
- PWRouteSnapToleranceHigh: the user’s location will be “snapped” to the nearest point on the route if the route is within twice (2.0 times) the horizontal accuracy of the location being used
Declared In
PWMapView.h
pointOfInterestCustomizingEnabled
Determines whether or not the point-of-interest(PWPointOfInterest, PWCustomPointOfInterest) is able to be customized.
@property (nonatomic) BOOL pointOfInterestCustomizingEnabledDiscussion
The SDK shows all the internal annotations without asking for their annotation views by calling - mapView: viewForAnnotation:, those internal annotation types includes: PWPointOfInterest, PWCustomPointOfInterest.
If pointOfInterestCustomizingEnabled is set to YES, you are responsible to provide annotation views for the point-of-interests by implementing - mapView: viewForAnnotation:, but it will keep using the one provided by SDK if you don’t or provide an invalid one. This feature is turned off by default.
Declared In
PWMapView.h
userTrackingBarButtonItem
A property to access the map view user tracking bar button.
@property (nonatomic) UIBarButtonItem *userTrackingBarButtonItemDeclared In
PWMapView.h
sharedLocationDisplayName
The display name when sharing location
@property (nonatomic, strong) NSString *sharedLocationDisplayNameDeclared In
PWMapView.h
sharedLocationUserType
The user type when sharing location
@property (nonatomic, strong) NSString *sharedLocationUserTypeDeclared In
PWMapView.h
trackingModeSwitchInterval
The time interval the user stays in PWTrackingModeNone mode before the map view will automatically change back to the tracking mode set by user.
@property (nonatomic) NSInteger trackingModeSwitchIntervalDiscussion
Set to -1 if you don’t want enable this feature, and 10 seconds is used by default.
Declared In
PWMapView.h
__deprecated
Determines whether or not the waypoints are displaying as dots on route lines. This feature is turned off by default.
@property (nonatomic) BOOL displayWaypointDotsOnRouteLine __deprecatedDiscussion
Use PWRouteUIOptions.showJoinPoint' instead when displaying a route withnavigateWithRoute: options:`.
Declared In
PWMapView.h
displayDebugLocationDots
For internal use only.
@property (nonatomic) BOOL displayDebugLocationDotsDeclared In
PWMapView.h
managedCompassEnabled
Managed compass is an optional capability of PWLocation that improves the user experience while viewing the map by improving the alignment of the compass heading. The managed compass takes operating system readings and processes them prior to returning it to PWMapKit – so there is no further coding required for developers once using this mode. Set to true to enable this feature (disabled by default). Note - results may vary by location, so please evaluate the performance for a given location prior to enabling this feature.
@property (nonatomic) BOOL managedCompassEnabledDeclared In
PWMapView.h
– initWithFrame:
Initializes and returns a newly allocated map view object with the specified frame rectangle.
- (instancetype)initWithFrame:(CGRect)frameParameters
frame |
The frame rectangle for the view, measured in points. The origin of the frame is relative to the superview in which you plan to add it. This method uses the frame rectangle to set the center and bounds properties accordingly. |
|---|
Return Value
A new PWMapView object.
Discussion
After initialization you can set building property or call setBuilding: animated: onCompletion: to display the building on the map. If you choose to load with setBuilding: animated: onCompletion: you will get result from the completion block once it’s done. In both cases, the delegate will receive a mapView:didFinishLoadingBuilding:error: callback.
Declared In
PWMapView.h
– setBuilding:animated:onCompletion:
- (void)setBuilding:(PWBuilding *)building animated:(BOOL)animated onCompletion:(void ( ^ ) ( NSError *error ))completionParameters
building |
The building to load into the |
|---|---|
animated |
Animate the camera zoom into the |
completion |
A block to indicate if the building is successfully displayed or not. |
Discussion
Proper use of this method will kick off by fetching the building data, points of interest and assets and display the building indoor map. This data will then be cached and displayed in the PWMapView.
Declared In
PWMapView.h
– setCampus:animated:onCompletion:
- (void)setCampus:(PWCampus *)campus animated:(BOOL)animated onCompletion:(void ( ^ ) ( NSError *error ))completionParameters
campus |
The campus to load into the ‘PWMapView’ |
|---|---|
animated |
Animate the camera zoom into the |
completion |
A block to indicate if the building is successfully displayed or not. |
Declared In
PWMapView.h
– setTrackingMode:animated:
Sets the mode used to track the user’s indoor location with optional animation. This method will have no effect if an indoor location manager has not been registered with the map view.
- (void)setTrackingMode:(PWTrackingMode)trackingMode animated:(BOOL)animatedParameters
trackingMode |
The mode used to track the user’s location. Possible values are described in |
|---|---|
animated |
If |
Discussion
Setting the tracking mode to PWTrackingModeFollow or PWTrackingModeFollowWithHeading causes the map view to center the map on that location. If the map is zoomed out, the map view automatically zooms in on the user’s indoor location, effectively changing the current visible region.
Declared In
PWMapView.h
– registerLocationManager:
Register an indoor location manager provider with the map view. This location provider is started immediately and used when modifying the indoorUserTrackingMode.
- (void)registerLocationManager:(id<PWLocationManager>)locationManagerParameters
locationManager |
The location manager to register with the map view. The location manager must conform to the |
|---|
Declared In
PWMapView.h
– unregisterLocationManager
Unregister any indoor location manager that is registered with the map view.
- (void)unregisterLocationManagerDiscussion
If the user’s location is being displayed, it will not be hidden.
Declared In
PWMapView.h
– navigateWithRoute:options:
Load a PWRoute object into the map view with specified color for the paths. This method will plot a basic route line on the map view. The route object must not be nil.
- (void)navigateWithRoute:(PWRoute *)route options:(PWRouteUIOptions *)optionsParameters
route |
The |
|---|---|
options |
The |
Declared In
PWMapView.h
– setRouteManeuver:
Highlight the specified PWRouteInstruction on the map. If needed, this will change the current floor to the floor of the instruction.
- (void)setRouteManeuver:(PWRouteInstruction *)instructionParameters
instruction |
The |
|---|
Discussion
This method will not reposition the map to display the instruction
Declared In
PWMapView.h
– setRouteManeuver:animated:
Display the specified PWRouteInstruction on the map and animates to its position. If needed, this will change the current floor to the required floor for the instruction.
- (void)setRouteManeuver:(PWRouteInstruction *)instruction animated:(BOOL)animatedParameters
instruction |
The |
|---|---|
animated |
Specify |
Declared In
PWMapView.h
– currentRouteInstruction
Returns the current PWRouteInstruction being highlighted. If no route is displayed, this method will return nil.
- (PWRouteInstruction *)currentRouteInstructionReturn Value
The current PWRouteInstruction. Can be nil if no PWRoute is loaded or if turn-by-turn routing is not being used.
Declared In
PWMapView.h
– cancelRouting
Cancel the route displayed in the map view. This method will remove the route from the map view and set the PWRoute property to nil.
- (void)cancelRoutingDeclared In
PWMapView.h
– startSharingUserLocation
Starts sharing the user’s current location
- (void)startSharingUserLocationDeclared In
PWMapView.h
– startRetrievingSharedLocations
Starts retrieving other user’s shared locations
- (void)startRetrievingSharedLocationsDeclared In
PWMapView.h
– stopSharingUserLocation
Stops sharing the user’s current location
- (void)stopSharingUserLocationDeclared In
PWMapView.h
– stopRetrievingSharedLocations
Stops retrieving other user’s shared locations
- (void)stopRetrievingSharedLocationsDeclared In
PWMapView.h
– setCenterCoordinate:zoomLevel:animated:
Positions the map to the supplied center coordinate with the given zoom level and optional animation. (Deprecated: Use setCamera:animated:, setRegion:animated:, setVisibleMapRect:animated: or setVisibleMapRect:edgePadding:animated: instead, since v3.2.0)
- (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate zoomLevel:(NSUInteger)zoomLevel animated:(BOOL)animatedParameters
centerCoordinate |
A CLLocationCoordinate2D object representing the latitude and longitude the map should zoom to. |
|---|---|
zoomLevel |
An |
animated |
A |
Declared In
PWMapView.h
– setFloor:
A convenient method to set current floor, it’s working exactly the same as setCurrentFloor:. (Deprecated: Use currentFloor instead, since v3.2.0)
- (void)setFloor:(PWFloor *)floorParameters
floor |
A |
|---|
Declared In
PWMapView.h
– startUpdatingHeading
Starts heading updates. (Deprecated: Create your own CLLocationManager for heading service, since v3.2.0)
- (void)startUpdatingHeadingDeclared In
PWMapView.h
– stopUpdatingHeading
Stops heading updates. (Deprecated: Create your own CLLocationManager for heading service, since v3.2.0)
- (void)stopUpdatingHeadingDeclared In
PWMapView.h
– navigateToCustomLocation:
Repositions the map’s view to a custom location. (Deprecated: Use setCamera:animated: or setCenter:animated: instead, since v3.2.0)
- (void)navigateToCustomLocation:(PWCustomLocation *)locationParameters
location |
A custom location reference where the map should navigate to. |
|---|
Declared In
PWMapView.h
– navigateToPointOfInterest:
Repositions the map’s view to an specific point-of-interest. (Deprecated: Use setCamera:animated: or setCenter:animated: instead, since v3.2.0)
- (void)navigateToPointOfInterest:(PWPointOfInterest *)poiParameters
poi |
A point-of-interest reference where the map should navigate to. |
|---|
Declared In
PWMapView.h
– viewForPointOfInterest:
Returns the annotation view of a PointOfInterest. (Deprecated: Use viewForAnnotation: or setCenter:animated: instead, since v3.2.0)
- (PWBuildingAnnotationView *)viewForPointOfInterest:(PWPointOfInterest *)poiParameters
poi |
The point-of-interest. This parameter must not be nil. |
|---|
Declared In
PWMapView.h
– showPointsOfInterest:
Displays the array of Points of Interest, causing the map view to zoom in/out to contain all of the points of interest. (Deprecated: Use showAnnotations:animated: instead, since v3.2.0)
- (void)showPointsOfInterest:(NSArray *)poisParameters
pois |
An array of |
|---|
Declared In
PWMapView.h
– selectPointOfInterest:animated:
Selects a PointOfInterest on the map. (Deprecated: Use selectAnnotations:animated: instead, since v3.2.0)
- (void)selectPointOfInterest:(PWPointOfInterest *)poi animated:(BOOL)animatedParameters
poi |
A |
|---|---|
animated |
A |
Declared In
PWMapView.h
– deselectPointOfInterest:animated:
Deselects a PointOfInterest on the map. If the POI is not selected, this method does nothing (Deprecated: Use deselectAnnotations:animated: instead, since v3.2.0)
- (void)deselectPointOfInterest:(PWPointOfInterest *)poi animated:(BOOL)animatedParameters
poi |
A |
|---|---|
animated |
A |
Declared In
PWMapView.h