Releases: wemap/wemap-sdk-sample-apps-ios
Releases · wemap/wemap-sdk-sample-apps-ios
0.18.2
0.18.1
0.15.7
0.18.0
Breaking changes
- MapSDK
- Now by default it is possible to select only one POI at a time. To enable multiple POIs selection, you have to change
selectionMode
to.multiple
inPointOfInterestManager
. WemapMapViewDelegate
renamed toMapViewDelegate
:func map(_ map: MapView, didTouchAtPoint point: CGPoint)
renamed tofunc mapView(_ mapView: MapView, didTouchAtPoint point: CGPoint)
BuildingManagerDelegate
changed:func map(_ map: MapView, didChangeLevel level: Level, ofBuilding building: Building)
changed tofunc buildingManager(_ manager: BuildingManager, didChangeLevel level: Level, ofBuilding building: Building)
func map(_ map: MapView, didFocusBuilding building: Building?)
changed tofunc buildingManager(_ manager: BuildingManager, didFocusBuilding building: Building?)
MapConstants
properties moved toCoreConstants
:itineraryRecalculationEnabled
userLocationProjectionOnItineraryEnabled
MapView
changed:let pointOfInterestManager
changed type fromPointOfInterestManager
toMapPointOfInterestManaging
let navigationManager
changed type fromNavigationManager
toMapNavigationManaging
isSelectionEnabled
changed toisUserSelectionEnabled
. Also changed its logic. Previously this property was used to disable all ways to selecting POIs - programmatically and by user clicking on POI on the map.
Now this property applies only to user actions - ifisUserSelectionEnabled = false
- user will not be able to select POI, but POI can still be selected programmatically.func startNavigation(origin: Coordinate?, destination: Coordinate, travelMode: TravelMode, options: NavigationOptions, searchOptions: ItinerarySearchOptions, timeout: DispatchTimeInterval) -> Single<Itinerary>
changed tofunc startNavigation(origin: Coordinate?, destination: Coordinate, travelMode: TravelMode, options: NavigationOptions, searchOptions: ItinerarySearchOptions, timeout: DispatchTimeInterval) -> Single<Navigation>
func startNavigation(_ itinerary: Itinerary, options: NavigationOptions, searchOptions: ItinerarySearchOptions) -> Single<Itinerary>
changed tofunc startNavigation(_ itinerary: Itinerary, options: NavigationOptions, searchOptions: ItinerarySearchOptions) -> Single<Navigation>
func stopNavigation() -> Result<Itinerary, NavigationError>
changed tofunc stopNavigation() -> Result<Navigation, Error>
- Removed
BuildingData
- Moved from
WemapMapSDK
toWemapCoreSDK
:Category
Tag
UseTags
SimulatorLocationSource
SimulationOptions
Extras
moved toMapData.Extras
PointOfInterestManager
class changed to protocolPointOfInterestManaging
PointOfInterestManagerDelegate
PointOfInterestWithInfo.info: ItineraryInfo
changed toPointOfInterestWithInfo.info: ItineraryInfo?
MapData
let bounds: MLNCoordinateBounds
changed tolet bounds: BoundingBox
let maxBounds: MLNCoordinateBounds?
changed tolet maxBounds: BoundingBox?
NavigationManager
class changed to protocolNavigationManaging
var updateTimeInterval: DispatchTimeInterval
renamed tovar infoUpdatesTimeInterval: DispatchTimeInterval
NavigationManagerDelegate
func navigationManager(_ manager: NavigationManager, didStartNavigation itinerary: Itinerary)
changed tofunc navigationManager(_ manager: NavigationManager, didStartNavigation navigation: Navigation)
func navigationManager(_ manager: NavigationManager, didStopNavigation itinerary: Itinerary)
changed tofunc navigationManager(_ manager: NavigationManager, didStopNavigation navigation: Navigation)
func navigationManager(_ manager: NavigationManager, didArriveAtDestination itinerary: Itinerary)
changed tofunc navigationManager(_ manager: NavigationManager, didArriveAtDestination navigation: Navigation)
func navigationManager(_ manager: NavigationManager, didFailWithError error: NavigationError)
changed tofunc navigationManager(_ manager: NavigationManager, didFailWithError error: Error)
func navigationManager(_ manager: NavigationManager, didRecalculateItinerary itinerary: Itinerary)
changed tofunc navigationManager(_ manager: NavigationManager, didRecalculateNavigation navigation: Navigation)
NavigationError
- Removed
failedToAddItineraryToMap
failedToRemoveItineraryFromMap
renamed tofailedToRemoveNavigation
- Removed
NavigationOptions
let userTrackingMode: MLNUserTrackingMode?
removed. You can usemap.userTrackingMode
insteadlet itineraryOptions: ItineraryOptions
removed. Now it should be provided as independent parameter toMapNavigationManaging.startNavigation()
- Now by default it is possible to select only one POI at a time. To enable multiple POIs selection, you have to change
- CoreSDK
ItineraryService
class changed to protocolItineraryServicing
. Now you can't create it yourself, but you can request it throughServiceFactory.getItineraryService()
PointOfInterestService
class changed to protocolPointOfInterestServicing
. Now you can't create it yourself, but you can request it throughServiceFactory.getPointOfInterestService()
PointOfInterest
let imageUrl: String
renamed tolet imageURL: String
LocationSourceDelegate
func locationSource(_ locationSource: any LocationSource, didUpdateLocation coordinate: Coordinate)
renamed tofunc locationSource(_ locationSource: any LocationSource, didUpdateCoordinate coordinate: Coordinate)
- PosSDK(VPS)
VPSARKitLocationSource
changed:ScanReason
renamed toNotPositioningReason
State
cases changed accordingly:scanRequired(reason: ScanReason)
renamed tonotPositioning(reason: NotPositioningReason)
limited(reason: ARCamera.TrackingState.Reason)
changed todegradedPositioning(reason: DegradedPositioningReason)
limited(reason: ARCamera.TrackingState.Reason)
moved toDegradedPositioningReason.session(reason: ARCamera.TrackingState.Reason)
normal
renamed toaccuratePositioning
- Removed
noTracking
- Removed
VPSServiceError
Added
- PosSDK(VPS): Enhancement of lifecycle
- MapSDK: Make PoIs loaded before returning Map
- CoreSDK: add single PoI selection mode and it is used by default (instead of multiple PoIs selection)
- MapSDK: throw an error if BuildingData is corrupted
- MapSDK: Make the camera zoom when user tracking mode is changed to follow/tracking
- MapSDK: Set userTrackingMode to None when BuildingManager.setLevel is called
- PosSDK(VPS): Trigger the reason of rescan necessary. Ex.: because of conveying detected
- MapSDK: add map view callback mapViewLoaded
Changed
- PosSDK(VPS): rename VPS states
Fixed
- CoreSDK: handle sorting by graph distance/duration error in BE response
- CoreSDK: memory issue on resource deallocation
- MapSDK: initial coordinate bounds are too small
- Sample Map+Positioning(VPS): user position is not updated after closing scanning view
Starting iOS 18, there is a bug where ARSession is automatically stopped by ARView when the view is dismissed/hidden.
Because of this, the positioning process stops after a few seconds.
If you are using ARView, we suggest a workaround in our sample application
Dependencies
- Core
- Turf 2.8.0 -> 3.1.0
- RxSwift 6.7.1 -> 6.8.0
- Alamofire 5.9.1 -> 5.10.1
- Map
- MapLibre 6.5.2 -> 6.7.1
- Polestar
- NAOSDK 4.11.16 -> 4.11.17
Compatibility
- Xcode 16.0
- Swift 6 (effective 5.10)
0.15.6
0.14.4
0.17.0
Breaking changes
LocationSource
var isAvailable: Bool
changed tostatic var isAvailable: Bool
Added
- PosSDK: Add static "isAvailable" method to LocationSource
Fixed
- MapSDK: Some navigation instructions have a "null" suffix
- MapSDK: Multi-level itinerary segments are shown for all levels
- PosSDK(VPS): VPS session is not reset when the application returns from background
- PosSDK(VPS): Switch to SCAN_REQUIRED state when user is static in an elevator or escalator in navigation mode
Dependencies
- Map
- MapLibre 6.4.2 -> 6.5.2
- Polestar
- NAOSDK 4.11.15.2 -> 4.11.16
Compatibility
- Xcode 15.4
- Swift 5.10