Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[7.1.22.31.C4AB7AB1] - 2022-08-04

Changed

  • GEMKit SDK now contains the following architectures: ios-arm64, ios-arm64_x86_64-maccatalyst, ios-arm64_x86_64-simulator. This means that the Sdk can run now on iPhone Simulators and also on Mac Catalyst projects.

  • New method available in MapViewController.h:

    (CGRect)getViewport;

    (MapViewPerspective)getPerspective

    (void)centerOnPolygonArea:(nonnull PolygonGeographicAreaObject *)area zoomLevel:(int)level animationDuration:(NSTimeInterval)duration completionHandler:(nonnull void(^)(BOOL success))handler

    • New method available in CameraRenderViewController.h:

    (BOOL)isRenderActive

  • New methods available in MapViewControllerDelegate:

    (void)mapViewController:(nonnull MapViewController *)mapViewController didRender:(ViewDataTransitionStatus)dataStatus cameraTransitionStatus:(ViewCameraTransitionStatus)cameraStatus

  • New methods available in PathObject:

    (instancetype)initWithDataBuffer:(nonnull NSData *)data format:(PathFileFormat)format

    (nullable NSData *)exportAs:(PathFileFormat)format

  • New methods available in RouteObject:

    (nullable NSData *)exportAs:(PathFileFormat)format

    (nullable RoutePreferencesObject *)getPreferences

  • New methods available in SoundContext:

    (void)setUseTtsWithLanguage:(nonnull NSString *)language completionHandler:(nonnull void(^)(BOOL success))handler

  • New classes available: PolygonGeographicAreaObject

  • Renamed class ExceptionHandler.h into GEMExceptionHandler.

  • Deprecated class GeoLocation.h. Please use CoordinatesObject instead.

[7.1.22.18.D57E5A51] - 2022-06-30

Changed

  • New method available in GEMSdk.h:

    (BOOL)initSdk:(nonnull NSString *)authorizationKey language:(nonnull NSString *)language languageTTS:(nonnull NSString *)languageTTS

  • Deprecated methods in MapViewController.h:

    (void)centerOnGeoLocation:(nonnull GeoLocation *)location zoomLevel:(int)level animationDuration:(NSTimeInterval)duration

    (void)centerOnGeoLocation:(nonnull GeoLocation *)location zoomLevel:(int)level mapAngle:(double)mapAngle viewAngle:(double)viewAngle animationDuration:(NSTimeInterval)duration

    (void)centerOnGeoLocation:(nonnull GeoLocation *)location zoomLevel:(int)level point:(CGPoint)point mapAngle:(double)mapAngle viewAngle:(double)viewAngle animationDuration:(NSTimeInterval)duration

  • Deprecated methods in LandmarkObject.h:

    (nonnull GeoLocation*)getLandmarkGeoLocation

    (void)setLandmarkGeoLocation:(nonnull GeoLocation *)location

  • New method available in ContentStoreObject.h:

    (BOOL)isNightStyle

  • New methods available in GenericCategoriesContext.h:

    (nullable LandmarkCategoryObject *)getCategory:(GenericCategoryType)categoryType

    (nonnull NSArray <LandmarkCategoryObject *> *)getPoiCategories:(int)genericCategory

    (nullable LandmarkCategoryObject *)getGenericCategory:(int)poiCategory

    (int)getLandmarkStoreId

  • Removed method in `GenericCategoriesContext.h:

    (nonnull LandmarkCategoryObject *)getLandmarkCategoryObjectWithType:(GenericCategoryType)categoryType

  • New method available in LogBookmarksContext.h:

    (BOOL)isMetadataAvailable:(nonnull NSString *)filePath

  • New methods available in MapViewController.h:

    (BOOL)isRenderActive

    (void)stopFollowingPositionWithRestoreCameraMode:(BOOL)restoreCameraMode

    (void)centerOnCoordinates:(nonnull GeoLocation *)location zoomLevel:(int)level animationDuration:(NSTimeInterval)duration

    (void)centerOnCoordinates:(nonnull GeoLocation *)location zoomLevel:(int)level mapAngle:(double)mapAngle viewAngle:(double)viewAngle animationDuration:(NSTimeInterval)duration

    (void)centerOnCoordinates:(nonnull GeoLocation *)location zoomLevel:(int)level point:(CGPoint)point mapAngle:(double)mapAngle viewAngle:(double)viewAngle animationDuration:(NSTimeInterval)duration

  • New enum available in MapViewHeader.h:

    MapViewTouchGestures

  • New methods available in MapViewPreferencesContext.h:

    (nullable LandmarkStoreContextCollection *)getLandmarkStoreCollection

    (BOOL)getTrafficVisibility

    (SDKErrorCode)setTrafficVisibility:(BOOL)state

    (SDKErrorCode)enableTouchGesture:(MapViewTouchGestures)gesture enable:(BOOL)state

    (SDKErrorCode)enableTouchGestures:(NSInteger)gestures enable:(BOOL)state

    (BOOL)isTouchGestureEnabled:(MapViewTouchGestures)gesture

    (NSInteger)getEnabledTouchGestures

  • New methods available in TrafficContext.h:

    (TrafficOnlineRestrictions)getOnlineServiceRestrictions:(nonnull GeoLocation *)location

    (nonnull TransferStatisticsContext*)getTransferStatistics

    (nullable TrafficEventObject *)addPersistentRoadblock:(nonnull NSArray <GeoLocation *> *)array startTime:(nonnull TimeObject *)startUTC expireTime:(nonnull TimeObject *)expireUTC transportMode:(RouteTransportMode)transportMode

    (void)removePersistentRoadblock:(nonnull GeoLocation *)location

    (void)removeAllPersistentRoadblocks

    (nonnull NSArray < RouteTrafficEventObject *> *)getPersistentRoadblocks

    (void)removeUserRoadblock:(nonnull TrafficEventObject *)event

    (void)startPersistentRoadblockNotification

    (void)stopPersistentRoadblockNotification

  • New classes available:

    DriverBehaviourContext

    DriverBehaviourAnalysisObject

    DrivingScoresObject

    LandmarkPositionObject

    LandmarkStoreContextCollection

    LandmarkStoreContextService

    MappedDrivingEventObject

    PersistentRoadblockDelegate

    OverlayCollectionObject

    OverlayHeader

    OverlayInfoObject

    OverlayItemPositionObject

    OverlayServiceContext

    SocialReportsOverlayInfoObject

    TrafficEventObject

    TransferStatisticsContext

[7.1.22.18.0A8870F1] - 2022-05-04

Changed

  • New method available in CameraRenderViewController.h:

    (BOOL)isRenderingDriverAssistance;

  • New methods available in DataSourceContext.h:

    (DataSourceOrigin)getOrigin

    (TemperatureLevel)getTemperatureLevel

    (double)getTemperatureDegrees

    (SDKErrorCode)setMockDataWithPosition:(nullable MockPositionObject *)positionObject

    (BOOL)isMockData:(DataType)type

  • New method available in DataSourceContextDelegate.h:

    (void)dataSourceContext:(nonnull DataSourceContext *)dataSourceContext onTemperatureChanged:(TemperatureLevel)level degreee:(double)degree

    (void)dataSourceContext:(nonnull DataSourceContext *)dataSourceContext onDeviceMountedChanged:(BOOL)isMounted isPortraitMode:(BOOL)isPortrait

  • New classes available: LandmarkStoreCollectionObject, MapViewRouteObject, MapViewRouteRenderSettings.h, MockPositionObject.

  • New methods available in GeoLocation.h:

    (nonnull instancetype)coordinatesWithLatitude:(double)latitude longitude:(double)longitude altitude:(double)altitude

    (double)getAzimuth:(nonnull GeoLocation*)point

  • New methods available in LandmarkStoreContext.h:

    (instancetype)initWithIdentifier:(int)identifier

  • New methods available in LandmarkStoreContext.h:

    (CGPoint)transformWgsToScreen:(nonnull GeoLocation *)location

    (nonnull NSArray <RectangleGeographicAreaObject *> *)transformScreenRectToWgs:(CGRect)rect

  • New methods available in MapViewPreferencesContext.h:

    (nullable LandmarkStoreCollectionObject *)getLandmarkStores

    (nullable PathCollectionObject *)getPaths

    (nullable MarkerCollectionObject *)getMarkers

    (nonnull MapViewRouteRenderSettings *)getRenderSettings:(nonnull RouteObject *)routeObject

    (void)setRenderSettings:(nonnull MapViewRouteRenderSettings *)settings route:(nonnull RouteObject *)routeObject

  • New methods available in PathObject.h:

    (nullable GeoLocation *)getCoordinateAtPercent:(double)percent

  • New methods available in RoutePreferencesObject.h:

    (int)getMinimumTransferTimeInMinutes

    (void)setMinimumTransferTimeInMinutes:(int)value

    (unsigned int)getMaximumTransferTimeInMinutes

    (void)setMaximumTransferTimeInMinutes:(unsigned int)value

[7.1.22.8.A6D2863A] - 2022-04-01

Changed

  • New method available in GEMSdk.h:

    (void)logMessage:(nonnull NSString*)string

  • New methods available in MapViewController.h:

    (nonnull GeoLocation *)getCursorWgsPosition

    (BOOL)isFollowingPositionTouchHandlerModified

    (nullable PathCollectionObject *)getPaths

    (void)setFlatPositionTracker

    (void)setPositionTrackerScaleFactor:(double)factor

    (double)getPositionTrackerScaleFactor

    (double)getPositionTrackerMaxScaleFactor

    (void)customizePositionTrackerGlTF:(nonnull NSData *)data

  • New methods available in MapViewPreferencesContext:

    (int)routesCollectionSize

    (nullable RouteObject *)getRoute:(int)index

    (int)indexOf:(nonnull RouteObject *)route

    (BOOL)isMainRoute:(nonnull RouteObject *)routeObject

    (nullable RouteObject *)getMainRoute

    (void)setMainRoute:(nonnull RouteObject *)routeObject

    (void)setRouteLabel:(nonnull RouteObject *)routeObject label:(nonnull NSString *)string

    (nullable NSString *)getRouteLabel:(nonnull RouteObject *)routeObject

    (nonnull NSArray <ImageObject *> *)getRouteImages:(nonnull RouteObject *)routeObject

    (void)setRouteImages:(nonnull RouteObject *)routeObject images:(nonnull NSArray <UIImage *> *)images

    (BOOL)addRoute:(nonnull RouteObject *)routeObject isMainRoute:(BOOL)isMainRoute label:(nullable NSString *)label images:(nullable NSArray <UIImage *> *)images

    (void)hideRouteLabel:(nonnull RouteObject *)routeObject

    (void)removeRoute:(nonnull RouteObject *)routeObject

    (BOOL)containsRoute:(nonnull RouteObject *)routeObject

    (void)clearRoutes

  • New method available in NavigationContext:

    (void)calculateRouteWithWaypoints:(nonnull NSArray<LandmarkObject *> *)array statusHandler:(nonnull void(^)(RouteStatus))statusHandler completionHandler:(nonnull void(^)(NSArray<RouteObject *> *array))completionHandler

  • New method available in PathObject:

    (instancetype)initWithCoordinates:(nonnull NSArray <GeoLocation *> *)coordinates

  • New method available in RecorderContext:

    (BOOL)isAudioRecording

  • New methods available in RouteBookmarksObject:

    (instancetype)initWithFileName:(nonnull NSString *)file folderName:(nullable NSString *)folder

    (nullable LandmarkObject *)setWaypointTrackData:(nonnull LandmarkObject *)landmarkObject path:(nonnull PathObject *)pathObject

  • Removed method from RouteBookmarksObject:

    (instancetype)initWithName:(nonnull NSString *)name

  • New method available in RouteObject:

    (nullable RouteObject *)toPTRoute

  • New method available in RouteSegmentObject:

    (nonnull NSArray<PTRouteInstructionObject *> *)getPTInstructions

  • New method available in LogBookmarksContext.h:

    (void)exportLogToPhotos:(nonnull NSString *)filePath albumName:(nonnull NSString *)albumName completionHandler:(nonnull void(^)(SDKErrorCode code))handler

  • New methods available in DriverAssistanceContextDelegate:

    (void)driverAssistance:(nonnull DriverAssistanceContext *)context ttsWarning:(nonnull NSString *)string severity:(AlertSeverity)severity

    (void)driverAssistance:(nonnull DriverAssistanceContext *)context audioWarning:(DriverAssistanceAudioFile)audioFile severity:(AlertSeverity)severity

[7.1.22.8.A17891D0] - 2022-02-21

Changed

  • New methods available in FollowPositionPreferencesContext:

    (void)setMapRotationMode:(FollowPositionMapRotationMode)mode angle:(double)angle objectFollowMap:(BOOL)followMap

    (FollowPositionMapRotationMode)getMapRotationMode

    (BOOL)isTrackObjectFollowingMapRotation

    (void)setAccuracyCircleVisibility:(BOOL)value

    (BOOL)isAccuracyCircleVisible

  • New methods available in LandmarkObject:

    (void)setExtraInfo:(nonnull NSArray <NSString *> *)array

    (nonnull NSString *)findExtraInfo:(nonnull NSString *)string

  • New methods available in LogBookmarksContext:

    (nonnull NSArray < NSDictionary <NSString *, NSObject *> *> *)getSoundMarks:(nonnull NSString *)filePath;

  • New methods available in MapViewController:

    centerOnGeoLocation:(GeoLocation *)location zoomLevel:(int)level mapAngle:(double)mapAngle viewAngle:(double)viewAngle animationDuration:(NSTimeInterval)duration

    centerOnGeoLocation:(GeoLocation *)location zoomLevel:(int)level point:(CGPoint)point mapAngle:(double)mapAngle viewAngle:(double)viewAngle animationDuration:(NSTimeInterval)duration

    (void)presentHighlights:(nonnull NSArray<LandmarkObject *> *)highlights settings:(nonnull HighlightRenderSettings *)settings

    (void)presentHighlights:(nonnull NSArray<LandmarkObject *> *)highlights settings:(nonnull HighlightRenderSettings *)settings highlightId:(int)highlightId

    (void)removeHighlight:(int)highlightId

    (nullable RectangleGeographicAreaObject *)getHighlightArea

    (nullable RectangleGeographicAreaObject *)getHighlightArea:(int)highlightId

    • New methods available in RecorderContext:

    (void)startAudioRecording

    (void)stopAudioRecording

    • New methods available in SoundContext:

    (void)updateSessionWithAudioCategory:(AudioCategory)audioCategory

  • The following methods are now deprecated in MapViewController:

    (void)presentHighlight:(nonnull LandmarkObject *)landmark contourColor:(nullable UIColor*)color centerLayout:(BOOL)center animationDuration:(NSTimeInterval)duration

    (void)presentHighlights:(nonnull NSArray<LandmarkObject *> *)highlights animationDuration:(NSTimeInterval)duration

    (void)setHighlightPinImage:(nonnull UIImage *)image

    (void)setHighlightPinSize:(NSInteger)size

[7.1.22.6.44F1F5EF] - 2022-02-08

Changed

  • New methods available in GEMSdk:

    (nonnull NSArray <NSNumber *> *)getCapabilities

    (BOOL)isWiFiConnected

    (BOOL)isMobileDataConnected

  • New methods available in MapViewController:

    (void)setDefaultPositionTracker

    (void)customizePositionTracker:(nonnull NSData *)textureData

    (void)customizePositionTracker:(nonnull NSData *)objData material:(nonnull NSData *)matData

    (nonnull MapViewPreferencesContext *)getPreferences

  • Removed methods from MapViewController:

    (int)getZoomLevelWithFollowMode:(CameraFollowMode)mode

    (void)setZoomLevel:(int)level point:(CGPoint)point followMode:(CameraFollowMode)mode animationDuration:(NSTimeInterval)duration

    (double)getTiltAngleWithFollowMode:(CameraFollowMode)followMode

  • New methods available in RecorderContext:

    (NSUInteger)getDiskSpaceUsedPerSecond

  • New methods available in RecorderConfigurationObject:

    (void)setDeviceModel:(nonnull NSString *)model

  • New methods available in RecorderContextDelegate:

    recorderContext:(nonnull RecorderContext *)recorderContext recordingCompleted:(nonnull NSString *)path

  • New classes available: FollowPositionPreferencesContext, MapViewPreferencesContext, DataSourcePlaybackContext, ExceptionHandler, DriverAssistanceContext.

[7.1.22.1.89E158C4] - 2022-01-07

Changed

  • New methods available in DataSourceContext:

    (instancetype)initWithFilePath:(nonnull NSString *)filePath

    (BOOL)setConfiguration:(nonnull DataSourceConfigurationObject *)configutation forType:(DataType)type

    seekTo:(NSInteger)valueMs

    (NSInteger)getCurrentPosition

    (NSInteger)getDuration

  • New methods available in DataSourceContextDelegate:

    (void)dataSourceContext:(nonnull DataSourceContext *)dataSourceContext onProgressChanged:(NSInteger)progress

    (void)dataSourceContext:(nonnull DataSourceContext *)dataSourceContext onPlayingStatusChanged:(DataType)type status:(PlayingStatus)playingStatus

  • New method available in MapViewController:

    (nullable LandmarkObject *)getClosestAddress:(nonnull GeoLocation *)location radius:(int)radius

    (MapDetailsQualityLevel)getMapDetailsQualityLevel

  • New methods available in PositionContext:

    (BOOL)startProcessingLocationServicesDataWithDataSourceConfigurationObject:(nonnull DataSourceConfigurationObject *)configutation

    (BOOL)clean

    (BOOL)startProcessingLogData:(nonnull DataSourceContext *)context

    (BOOL)stopProcessingLogData

    (BOOL)isProcessingLogData

  • The following methods are now deprecated in PositionContext:

    (BOOL)startProcessingLocationServicesDataWithAllowBackgroundLocationUpdates:(BOOL)allowBackgroundLocationUpdates

  • New methods available in RoadSafetyAlertsContext:

    (instancetype)initWithContext:(nonnull DataSourceContext *)context

    (instancetype)initWithContext:(nonnull DataSourceContext *)context useMapMatchedPosition:(BOOL)useMapMatchedPosition type:(ProcessorExecutionType)processorType

  • Implemented support for CameraRenderViewController.

  • Implemented support for DataSourceConfigurationObject.

  • Implemented support for LogPlayingContext, LogUploadContext, LogUploadDelegate, LogUploadHeader.

  • Implemented support for RecorderConfigurationObject, RecorderContext, RecorderContextDelegate, RecorderHeader

  • Removed the following file ImageDrawerController.

[7.1.21.47.6C765E74] - 2021-11-24

Changed

  • Removed deprecated methods from PositionContext, NavigationContext, MapViewController and RouteInstructionObject.

  • The following methods are now deprecated in NavigationContext:

    simulateRouteWithRoute:(nonnull RouteObject *)route speedMultiplier:(float)speed completionHandler:(nonnull void(^)(BOOL success))handler

    navigateRouteWithRoute:(nonnull RouteObject *)route completionHandler:(nonnull void(^)(BOOL success))handler

  • New methods available in MapViewController:

    setMapDetailsQualityLevel:(MapDetailsQualityLevel)level

    (MapDetailsQualityLevel)getMapDetailsQualityLevel

  • New methods available in NavigationContext:

    (void)simulateWithRoute:(nonnull RouteObject *)route speedMultiplier:(float)speed completionHandler:(nonnull void(^)(BOOL success))handler

    (void)navigateWithRoute:(nonnull RouteObject *)route completionHandler:(nonnull void(^)(BOOL success))handler

  • New methods available in MapViewControllerDelegate:

    (void)mapViewController:(nonnull MapViewController *)mapViewController didSelectOverlays:(nonnull NSArray<OverlayItemObject *> *)overlays

  • New method available in PositionContext:

    (nullable PositionObject*)getPosition:(PositionType)type;

  • New case in RouteType enum available:

    RouteTypeEconomic

  • New profile available in RoutePreferencesObject:

    EBikeProfile

    EBikeProfileDetails

  • New methods available in SocialOverlayContext:

    (nonnull NSArray < SocialReportsOverlayCategoryObject *> *)getCategoriesWithIsoCode:(nonnull NSString *)isoCode

    (nullable SocialReportsOverlayCategoryObject *)getCategoryWithIdentifier:(int)categoryId isoCode:(nonnull NSString *)isoCode

  • New classes available: MapDetailsContext.h, OverlayCategoryObject.h, SocialReportsOverlayCategoryObject DataSourceContext, DataSourceContextDelegate, RoadSafetyAlertsContext, RoadSafetyAlertsContextDelegate

[7.1.21.43.FAFF5D4E] - 2021-10-29

Changed

  • Fixed app crash for custom map style.

  • Removed methods from ImageDatabaseObject:

    (int)import:(nonnull NSString *)filePath

    (BOOL)removeImageObject:(nonnull ImageObject *)object

  • New methods available in OverlayItemObject:

    (nonnull NSString *)getPreviewData:(ExtendedDataType)type

    (nullable NSValue *)searchInPreviewData:(SocialReportParameterType)parameterType

[7.1.21.43.B28E7C7F] - 2021-10-25

Changed

  • Fixed typo in methods available for MapViewController:

    (void)searchAroundWithCompletionHandler:(nonnull void(^)(NSArray<LandmarkObject *> *array))handler

    (void)searchAroundWithCategory:(nonnull LandmarkCategoryObject *)category completionHandler:(void(^)(NSArray<LandmarkObject *> *array))handler

  • Fixed typo in methods available for SearchContext:

    (void)searchAroundWithLocation:(nonnull GeoLocation *)location completionHandler:(nonnull void(^)(NSArray<LandmarkObject *> *array))handler;

  • New methods available in AlarmContext:

    (void)enableSafetyCameraOfflineDataGrabber

    (void)disableSafetyCameraOfflineDataGrabber

    (BOOL)isSafetyCameraOfflineDataGrabberEnabled

    (BOOL)isSafetyCameraOfflineDataGrabberSupported

    (void)enableSocialReportsOfflineDataGrabber

    (void)disableSocialReportsOfflineDataGrabber

    (BOOL)isSocialReportsOfflineDataGrabberEnabled

    (BOOL)isSocialReportsOfflineDataGrabberSupported

    (void)setOverSpeedThreshold:(double)threshold insideCityArea:(bool)inside

    (double)getOverSpeedThreshold:(BOOL)insideCityArea

    (nonnull NSArray <RectangleGeographicAreaObject *> *)getCrossedBoundaries

    (nonnull NSArray <LandmarkObject *> *)getLandmarkAlarms

    (nonnull NSArray <OverlayItemObject *> *)getOverlayItemAlarmsPassedOver

  • Make AlarmContextDelegate optional.

  • New methods available in AlarmContextDelegate:

    (void)alarmContextOnBoundaryCrossed:(nonnull AlarmContext *)alarmContext

    (void)alarmContextOnMonitoringStateChanged:(nonnull AlarmContext *)alarmContext

    (void)alarmContextOnTunnelEntered:(nonnull AlarmContext *)alarmContext

    (void)alarmContextOnTunnelLeft:(nonnull AlarmContext *)alarmContext

    (void)alarmContextOnLandmarkAlarmsUpdated:(nonnull AlarmContext *)alarmContext

    (void)alarmContextOnOverlayItemAlarmsUpdated:(nonnull AlarmContext *)alarmContext

    (void)alarmContextOnLandmarkAlarmsPassedOver:(nonnull AlarmContext *)alarmContext

    (void)alarmContextOnOverlayItemAlarmsPassedOver:(nonnull AlarmContext *)alarmContext

    (void)alarmContextOnEnterDayMode:(nonnull AlarmContext *)alarmContext

    (void)alarmContextOnEnterNightMode:(nonnull AlarmContext *)alarmContext

  • New enums available for LandmarkCategoryObject:

    DefaultLandmarkCategory

  • New methods available for LandmarkObject:

    (nullable ImageObject*)getImage

    (void)setImage:(nonnull ImageObject *)object

    (nullable ImageObject*)getExtraImage

    (void)setExtraImage:(nonnull ImageObject *)object

  • New methods available for LandmarkStoreContext:

    (BOOL)updateCategory:(nonnull LandmarkCategoryObject *)category

    (BOOL)removeCategory:(nonnull LandmarkCategoryObject *)category

    (BOOL)removeCategoryWithAllContent:(nonnull LandmarkCategoryObject *)category

  • New methods available for RectangleGeographicAreaObject:

    (nonnull GeoLocation *)getCenterPoint

    (BOOL)isDefault

    (BOOL)isEmpty

    (void)reset

[7.1.21.41.741983E3] - 2021-10-15

Changed

  • New methods available in ContactInfoObject:

    (void)setField:(int)index type:(ContactInfoFieldType)fieldType value:(nonnull NSString *)value name:(nonnull NSString *)name

    (void)addField:(ContactInfoFieldType)fieldType value:(nonnull NSString *)value name:(nonnull NSString *)name

    (void)removeField:(int)index

  • New methods available in GEMSdkDelegate:

    (BOOL)shouldUpdateWorldwideRoadMapForStatus:(ContentStoreOnlineSupportStatus)status

    (void)updateWorldwideRoadMapFinished:(BOOL)success

    (void)onWorldwideRoadMapSupportEnabled

    (void)onWorldwideRoadMapSupportDisabled:(ReasonType)reason

  • Removed methods from GEMSdkDelegate:

    (BOOL)shouldUpdateWorldMapForStatus:(ContentStoreOnlineSupportStatus)status

    (void)updateWorldMapDisabled:(ReasonType)reason

  • New methods available in LandmarkObject:

    (void)setLandmarkDescription:(nonnull NSString *)description

    (void)setAuthor:(nonnull NSString *)value

    (void)setProviderId:(int)value

    (void)setTimeStamp:(nullable TimeObject*)object

    (void)setLandmarkGeoLocation:(nonnull GeoLocation *)location

    (void)setContactInfo:(nullable ContactInfoObject *)object

    (nonnull NSString*)getLandmarkNameFormatted

    (nonnull NSString*)getLandmarkDescriptionFormatted

    • Removed methods from LandmarkObject:

    (void)setCurrentPositionMark:(BOOL)state

    (BOOL)isCurrentPositionMarked

  • New methods available in MapViewController:

    (void)setCursorPosition:(CGPoint)point

    (nonnull NSArray <LandmarkObject *> *)getCursorSelectionLandmarks

    (nonnull NSArray <LandmarkObject *> *)getCursorSelectionStreets

    (nonnull NSArray <LandmarkObject *> *)getCursorSelectionOverlayItems

    (nonnull NSArray <LandmarkObject *> *)getCursorSelectionTrafficEvents

    (nonnull NSArray <LandmarkObject *> *)getCursorSelectionRoutes

    (nullable RouteInstructionObject *)getCursorSelectionRouteInstruction:(nonnull RouteObject *)routeObject

    (nonnull NSArray <LandmarkObject *> *)getNearestLocations:(nonnull GeoLocation *)location

    (void)startFollowingPositionWithAnimationDuration:(NSTimeInterval)duration zoomLevel:(int)level viewAngle:(double)angle completionHandler:(nonnull void(^)(BOOL success))handler

    (void)restoreFollowingPositionWithAnimationDuration:(NSTimeInterval)duration completionHandler:(nonnull void(^)(BOOL success))handler

    (void)setViewAngle:(double)value

    (double)getViewAngle

    (void)setTiltAngle:(double)angle followMode:(CameraFollowMode)mode

    (double)getTiltAngle

    (double)getTiltAngleWithFollowMode:(CameraFollowMode)followMode

  • Make MapViewControllerDelegate optional.

  • New methods available in MapViewControllerDelegate:

    (void)mapViewController:(nonnull MapViewController *)mapViewController onFollowingPositionModifyByTouchHandler:(BOOL)isModify

    (void)mapViewController:(nonnull MapViewController *)mapViewController onLongTouchPoint:(CGPoint)point

    (void)mapViewController:(nonnull MapViewController *)mapViewController didSelectStreets:(nonnull NSArray<LandmarkObject *> *)streets onTouchPoint:(CGPoint)point

    (void)mapViewController:(nonnull MapViewController *)mapViewController didSelectStreets:(nonnull NSArray<LandmarkObject *> *)streets onLongTouchPoint:(CGPoint)point

  • Removed methods from MapViewControllerDelegate:

    (void)mapViewController:(nonnull MapViewController *)mapViewController didSelectStreets:(nonnull NSArray<LandmarkObject *> *)streets

  • New methods available in PositionObject:

    (NSInteger)getSatelliteTime

    (PositionProvider)getProvider

    (double)getLatitude

    (double)getLongitude

    (nonnull GeoLocation*)getCoordinates

    (double)getAltitude

    (double)getSpeedAccuracy

    (double)getCourse

    (double)getCourseAccuracy

    (double)getHorizontalAccuracy

    (double)getVerticalAccuracy

    (PositionFixQuality)getFixQuality

    (BOOL)isValid

    (BOOL)hasCoordinates

    (BOOL)hasAltitude

    (BOOL)hasSpeedAccuracy

    (BOOL)hasCourse

    (BOOL)hasCourseAccuracy

    (BOOL)hasHorizontalAccuracy

    (BOOL)hasVerticalAccuracy

  • Removed methods from PositionObject:

    (nullable GeoLocation*)getPositionGeoLocation;

  • The following method is now deprecated in RouteInstructionObject:

    (nullable UIImage *)getTurnImage:(CGSize)size colorActiveInner:(nonnull UIColor*)colorActiveIn colorActiveOuter:(nonnull UIColor*)colorActiveOut colorInactiveInner:(nonnull UIColor*)colorInactiveIn colorInactiveOuter:(nonnull UIColor*)colorInactiveOut

  • New methods available in TurnDetailsObject:

    (nullable UIImage *)getTurnImage:(CGSize)size colorActiveInner:(nonnull UIColor*)colorActiveIn colorActiveOuter:(nonnull UIColor*)colorActiveOut colorInactiveInner:(nonnull UIColor*)colorInactiveIn colorInactiveOuter:(nonnull UIColor*)colorInactiveOut

    (int)getTurnImageId

[7.1.21.38.F7EA52F0] - 2021-09-20

Changed

  • New method available in GEMSdk:

    (nonnull NSString *)getVersion

  • New classes available: PathObject, RouteBookmarksObject, RoutePreferencesObject.h

  • New methods available in MapViewController:

    (nonnull NSArray < RouteObject *> *)getPresentedRoutes

    (CGFloat)getScaleFactor

    (NSInteger)getPpiFactor

    (void)centerOnRouteInstruction:(nonnull RouteInstructionObject *)routeInstruction zoomLevel:(int)level animationDuration:(NSTimeInterval)duration completionHandler:(nonnull void(^)(BOOL success))handler

    (void)centerOnRouteTrafficEvent:(nonnull RouteTrafficEventObject *)trafficEvent zoomLevel:(int)level animationDuration:(NSTimeInterval)duration completionHandler:(nonnull void(^)(BOOL success))handler

    (void)centerOnArea:(nonnull RectangleGeographicAreaObject *)area zoomLevel:(int)level animationDuration:(NSTimeInterval)duration completionHandler:(nonnull void(^)(BOOL success))handler

  • New methods available in MapViewControllerDelegate:

    (void)mapViewController:(nonnull MapViewController *)mapViewController onPinch:(CGPoint)startPoint1 startPoint2:(CGPoint)startPoint2 toPoint1:(CGPoint)endPoint1 toPoint2:(CGPoint)endPoint2

  • New method available in NavigationInstructionObject:

    (nonnull NSString*)getCurrentStreetSpeedLimitFormatted

  • New methods available in PositionObject:

    (BOOL)hasSpeed

    (double)getSpeed

    (nonnull NSString *)getFormattedSpeed

    (nonnull NSString *)getFormattedSpeedUnit

  • New methods available in RouteObject:

    (nullable GeoLocation *)getCoordinateOnRoute:(int)distance

    (int)getDistanceOnRoute:(nonnull GeoLocation*)location activePart:(BOOL)activePart

    (nullable PathObject*)getPath:(int)start end:(int)end

  • New methods available in TimeObject:

    (BOOL)isValid

    (void)milliSecondSleep:(unsigned int)msec

    (NSUInteger)getEpoch

    (nonnull TimeObject *)getLocalTime

    (nonnull TimeObject *)getUniversalTime

    (void)setUniversalTime

    (void)setLocalTime

    (NSUInteger)asInt

    (void)fromInt:(NSInteger)timestamp

    (int)getYear

    (void)setYear:(int)value

    (int)getMonth

    (void)setMonth:(int)value

    (int)getDay

    (void)setDay:(int)value

    (int)getDayOfWeek

    (int)getHour

    (void)setHour:(int)value

    (int)getMinute

    (void)setMinute:(int)value

    (int)getSecond

    (void)setSecond:(int)value

    (int)getMillisecond

    (void)setMillisecond:(int)value

    (nonnull NSString *)toStr:(BOOL)utcTime

    (NSInteger)getTimeZoneMilliseconds

  • The following methods are now deprecated in NavigationContext:

    setTransportMode:(RouteTransportMode)mode

    (RouteTransportMode)getTransportMode

    setBuildTerrainProfile:(BOOL)state

    setRouteType:(RouteType)type

    setAvoidMotorways:(BOOL)state

    setAvoidTollRoads:(BOOL)state

    setAvoidFerries:(BOOL)state

    setAvoidTurnAroundInstruction:(BOOL)state

    setAvoidUnpavedRoads:(BOOL)state

    setAvoidCarpoolLanes:(BOOL)state

    setUseWheelchair:(BOOL)state

    setUseBikes:(BOOL)state

    setMaximumWalkDistance:(unsigned int)distance

    setAvoidTraffic:(BOOL)state

    setResultDetails:(RouteResultDetails)details

[7.1.21.35.6B2C9079] - 2021-08-30

Changed

  • New method available in MapViewController:

    (void)setHighlightPinSize:(NSInteger)size

  • New methods available in MapViewControllerDelegate:

    (void)mapViewController:(nonnull MapViewController *)mapViewController onFollowingPositionStateChanged:(BOOL)isFollowingPosition

    (void)mapViewController:(nonnull MapViewController *)mapViewController onMapStyleChanged:(NSInteger)identifier

  • New method available in GeoLocation:

    (double)getDistance:(nonnull GeoLocation*)point

  • New methods available in NavigationContext:

    (RouteTransportMode)getTransportMode

    (void)setResultDetails:(RouteResultDetails)details

  • New enums available for NavigationContext:

    RouteResultDetailsFull

    RouteResultDetailsTimeDistance

    RouteResultDetailsPath

  • New methods available in SoundContext:

    (BOOL)isPlaying

    (void)cancel

    • New method available in PositionContext:

    (PositionDataType)getPositionDataType

  • New enums available for PositionContext:

    PositionDataTypeLive

    BuildingsVisibilityHide

    PositionDataTypePlayback

    PositionDataTypeUnavailable

  • New method available in ContentStoreObject:

    (ContentStoreOnlineType)getType

  • New enums available for ContentStoreObject:

    ContentStoreOnlineTypeViewStyleHighRes

    ContentStoreOnlineTypeViewStyleLowRes

    ContentStoreOnlineTypeRoadMap

    ContentStoreOnlineTypeHumanVoice

    ContentStoreOnlineTypeComputerVoice

  • New method available in HumanVoiceContext:

    (nonnull NSString*)getCountryName:(nonnull NSString*)code

    (nonnull NSString*)getNativeLanguage:(nonnull ContentStoreObject *)object

    (nullable UIImage*)getGenderImage:(HumanVoiceGender)gender size:(CGSize)size

[7.1.21.32.1CFA7043] - 2021-08-13

Changed

  • Fixed bug related to no network connection.

  • Faster search results with MapViewController search Api and more controller over search preferences.

  • The following methods are now deprecated in MapViewController:

    addPolylinesWithCoordinates

    removePolylines

  • The following methods are now deprecated in PositionContext:

    startProcessingLocationSevicesData

Added

  • New delegate method available in MapViewControllerDelegate:

    (void)mapViewController:(nonnull MapViewController *)mapViewController onRotatePoint:(CGPoint) startPoint2:(CGPoint) toPoint1:(CGPoint) toPoint2:(CGPoint) center:(CGPoint) delta:(double)

  • New methods available in MapViewController:

    setZoomLevel:(int)level animationDuration:(NSTimeInterval)duration

    (void)setCompassFollowUserInterfaceStyle:(BOOL)value

    (NSInteger)getStyleIdentifier

    (void)setMaxMatches:(int)value

    (void)setExactMatch:(BOOL)value

    (void)setSearchAddresses:(BOOL)value

    (void)setSearchMapPOIs:(BOOL)value

    (void)setSearchOnlyOnboard:(BOOL)value

    (void)setThresholdDistance:(int)threshold

    (BOOL)setCategory:(nonnull LandmarkCategoryObject*)category

    (void)setAllowFuzzyResults:(BOOL)value

    (void)cancelSearch

    (void)stopFollowingPosition

  • New methods available in ContentStoreObject:

    (nullable UIImage *)getAsyncImagePreview:(CGFloat)width completionHandler:(nonnull void(^)(UIImage* _Nullable image) )handler

  • New methods available in PositionContext:

    (BOOL)startProcessingLocationSevicesDataWithAllowBackgroundLocationUpdates:(BOOL)allowBackgroundLocationUpdates;

[7.1.21.30.47C453AA] - 2021-07-30

Changed

  • Fixed polyline outer size.

  • Fixed issue related to map style on fresh app install.

Added

  • New method and new enum available in GEMSdk:

    (void)verifySdk:(nonnull NSString*)authorizationKey completionHandler:(void(^)(BOOL success))handler

    AuthorizationKeyStatusValid

    AuthorizationKeyStatusExpired

    AuthorizationKeyStatusInvalidInput

    AuthorizationKeyStatusAccessDenied

    AuthorizationKeyStatusConnectionRequired

    AuthorizationKeyStatusError

  • New method available in GEMSdkDelegate:

    (void)authorizationKeyRejected

  • New methods available in AlarmContext:

    (void)enableSafetyCamera

    (void)disableSafetyCamera

    (BOOL)isSafetyCameraEnabled

    (void)enableSocialReports

    (void)disableSocialReports

    (BOOL)isSocialReportsEnabled

  • New methods available in PositionContext:

    (BOOL)startProcessingLocationSevicesData

    (BOOL)stopProcessingLocationSevicesData

    (BOOL)isProcessingLocationSevicesData

  • New methods available in MarkerCollectionObject:

    (void)setInnerColor:(nonnull UIColor *)color

    (void)setOuterColor:(nonnull UIColor *)color

    (void)setInnerSize:(double)size

    (void)setOuterSize:(double)size

    (void)setFillColor:(nonnull UIColor *)color

    (nonnull UIColor *)getInnerColor

    (nonnull UIColor *)getOuterColor

    (double)getInnerSize

    (double)getOuterSize

    (nonnull UIColor *)getFillColor

[7.1.21.30.F8FD4DB3] - 2021-07-27

Added

  • New methods available in GeoLocation:

    (BOOL)isValid

  • New methods available in LandmarkObject:

    (int)getLandmarkStoreIdentifier

  • New methods available in MapViewController:

    (void)showLandmarksFromAllCategories:(nonnull LandmarkStoreContext*)landmarkStore

    (void)hideLandmarksFromAllCategories:(nonnull LandmarkStoreContext*)landmarkStore

    (void)showLandmarksFromCategory:(nonnull LandmarkCategoryObject*)landmarkCategory context:(nonnull LandmarkStoreContext*)landmarkStore

    (void)hideLandmarksFromCategory:(nonnull LandmarkCategoryObject*)landmarkCategory context:(nonnull LandmarkStoreContext*)landmarkStore

  • New methods available in LandmarkStoreContext: (void)updateCategory:(nonnull LandmarkCategoryObject *)category

Changed

  • Methods signature changed in LandmarkStoreContext:

    (nonnull LandmarkCategoryObject *)getCategoryById:(int)categoryId

    (BOOL)addLandmark:(nonnull LandmarkObject*)landmark

    (BOOL)removeLandmark:(nonnull LandmarkObject*)landmark

    (void)removeAllLandmarks

    (BOOL)addLandmark:(nonnull LandmarkObject*)landmark toCategoryId:(int)categoryId

    (BOOL)removeLandmark:(nonnull LandmarkObject*)landmark fromCategoryId:(int)categoryId

    (nullable LandmarkObject *)getLandmark:(int)landmarkId

    (int)getLandmarkCount

    nonnull NSArray <LandmarkObject *> *)getLandmarks

    (int)getLandmarkCount:(int)categoryId

    (nonnull NSArray <LandmarkObject *> *)getLandmarks:(int)categoryId

[7.1.21.29.F6977F8B] - 2021-07-22

Changed

  • Fix app crash when switching between multiple MapViewController with polylines on the map view.

  • Removed deprecated methods from MapViewController.

Added

  • New methods available in RectangleGeographicAreaObject:

    (GeographicAreaType)getType

    (void)setTopLeft:(nonnull GeoLocation*)location

    (void)setBottomRight:(nonnull GeoLocation*)location

    (BOOL)intersects:(nonnull RectangleGeographicAreaObject *)rectangle

    (BOOL)contains:(nonnull RectangleGeographicAreaObject *)rectangle

  • New methods available in LandmarkCategoryObject:

    (instancetype)initWithName:(nonnull NSString *)

    (void)setName:(nonnull NSString *)

    (void)setImage:(nonnull UIImage *)

  • New methods available in LandmarkObject:

    (void)setLandmarkName:(nonnull NSString *)

    (void)setLandmarkImage:(nonnull UIImage *)

  • New methods available in LandmarkStoreContext:

    (void)addCategory:(nonnull LandmarkCategoryObject *)category

    (void)removeCategory:(nonnull LandmarkCategoryObject *)category

    (nullable LandmarkCategoryObject *)getCategoryByName:(nonnull NSString *)categoryString

    (int)getId

    (LandmarkStoreType)getType;

    (nonnull NSArray <LandmarkCategoryObject *> *)getCategories

    (int)getLandmarkCount:(nonnull NSString*)category

    (nonnull NSArray <LandmarkObject *> *)getLandmarks:(nonnull NSString*)category

    (nullable LandmarkObject *)getLandmarkWithIdentifier:(int)identifier

    (nonnull NSArray <LandmarkObject *> *)getLandmarksWithRectangleGeographicArea:(nonnull RectangleGeographicAreaObject*)area

[7.1.21.27.F104E3C4] - 2021-07-06

Added

  • New classes available ContactInfoObject, LandmarkStoreContext

  • New methods available in LandmarkObject:

    (nonnull NSArray <NSString *> *)getExtraInfo

    (nonnull NSArray <LandmarkCategoryObject *> *)getCategories

    (nullable RectangleGeographicAreaObject *)getGeographicArea

    (nullable ContactInfoObject *)getContactInfo

  • New enums available for BuildingsVisibility:

    BuildingsVisibilityDefault

    BuildingsVisibilityHide

    BuildingsVisibility2D

    BuildingsVisibility3D

  • New methods available in SearchContext:

    setAllowFuzzyResults:(BOOL)value

[7.1.21.26.FD631602] - 2021-07-02

Added

  • New methods available in MapsContext and MapStyleContext:

    (BOOL)isUpdateStarted

[7.1.21.25.FB8DC20C] - 2021-07-01

Added

  • New protocol ContentUpdateDelegate.

  • New methods available in GEMSdkDelegate:

    updateWorldMapDisabled:(ReasonType)reason

    updateWorldMapFinished:(BOOL)success

    (void)onlineConnectionStatusChanged:(OnlineConnectionStatus)status

  • New methods available in MapsContext and MapStyleContext:

    (nonnull NSString *)getWorldMapVersion

    checkForUpdateWithCompletionHandler:(nonnull void(^)(ContentStoreOnlineSupportStatus status))handler

    updateWithAllowCellularNetwork:(BOOL)allowCellularNetwork completionHandler:(nonnull void(^)(BOOL success))handler

    (void)cancelUpdate

    (NSInteger)getUpdateProgress

    (nonnull NSArray <ContentStoreObject *> *)getUpdateItems

    (nonnull NSString *)getUpdateSizeFormatted

  • New methods available in MapViewController:

    setBuildingsVisibility:(BuildingsVisibility)visibility

    (BOOL)isCameraMoving

Changed

  • Fix app crash when using more than one MapViewController.

  • Implemented support for map update on request.

[7.1.21.25.DDC98F41] - 2021-06-23

Added

  • Implemented support for GEMSdk delegate.

  • Implemented support to update the world map with SDK client approval.

  • New methods available in GEMSdk:

    (void)setAllowConnection:(BOOL)state

    (BOOL)getAllowConnection

  • New methods available in MapViewController:

    (int)getZoomLevelWithFollowMode:(CameraFollowMode)mode

    (void)setZoomLevel:(int)level point:(CGPoint)point followMode:(CameraFollowMode)mode animationDuration:(NSTimeInterval)duration

    (void)setEdgeAreaInsets:(UIEdgeInsets)insets

  • New methods available in RouteObject:

    (nullable RectangleGeographicAreaObject *)getGeographicArea

    (nullable TimeDistanceObject *)getTimeDistanceWithActivePart:(BOOL)activePart

  • New methods available in MapViewController:

    (void)set2DPerspectiveWithAnimationDuration

    (void)set3DPerspectiveWithAnimationDuration

[7.1.21.24.51C956AF] - 2021-06-17

Added

  • Implemented support for custom map style data buffer.

  • Implemented support for route profile ( new RouteTerrainProfileObject class )

  • Implemented support for calculating a route from a gpx file.

  • New methods available in MapViewController:

    (void)applyStyleWithStyleBuffer:(nonnull NSData *)styleBuffer smoothTransition:(BOOL)smooth;

  • New methods available in RouteObject:

    (nullable RouteTerrainProfileObject *)getTerrainProfile;

  • New methods available in NavigationContext:

    (void)calculateRouteWithStartWaypoints:(nonnull NSArray<LandmarkObject *> *)startArray buffer:(nonnull NSData*)data endWaypoints:(nonnull NSArray<LandmarkObject *> *)endArray completionHandler:(nonnull void(^)(NSArray<RouteObject *> *array))handler;

[7.1.21.23.9E891AB0] - 2021-06-11

Added

  • Implemented support for map view customization.

  • New methods available in MapViewController:

    (nullable GeoLocation *)transformScreenToWgs:(CGPoint)point

    (void)setFollowPositionCameraFocus:(CGPoint)point

    (CGPoint)getFollowPositionCameraFocus

    (void)setMinimumAllowedZoomLevel:(int)level

    (void)setMaximumAllowedZoomLevel:(int)level

    (void)setHighlightPinImage:(nonnull UIImage *)image

[7.1.21.23.7A56AE1E] - 2021-06-10

Added

  • Implemented support for public transit route description.

  • Implemented support for PTRouteSegmentObject class.

  • Implemented support for RectangleGeographicAreaObject class.

[7.1.21.22.0F756BC9] - 2021-06-04

Added

  • Implemented support for GenericCategoriesContext class.

  • Implemented support for LandmarkCategoryObject class.

  • New methods available:

    SearchContext: (BOOL)setCategory:(nonnull LandmarkCategoryObject*)category

    SearchInterface: (BOOL)setCategory:(gem::LandmarkCategory)category

Changed

ApplicationContext renamed to GEMSdk

[7.1.21.22.82497343] - 2021-05-31

Added

  • Implemented support for HumanVoiceContext class.

  • Implemented support for SoundObject class.

  • New methods available:

    SoundContext: setUseTtsWithCompletionHandler

    SoundContext: setUseHumanVoiceWithIdentifier

    SoundContext: playSound:(nonnull SoundObject *)object

    SoundContext: playText:(nonnull NSString *)text

Changed

ContentStoreObject: getImagePreview

MapViewController: applyStyleWithStyleIdentifier

[7.1.21.22.811AFB6] - 2021-05-24

Added

  • Implemented support for road codes information.

  • Implemented support for safety camera notification.

  • New classes available:

    AlarmContext

    AlarmContextDelegate

    OverlayItemObject

    RoadInfoObject

[7.1.21.19.7F5A4140] - 2021-05-11

Added

  • Implemented support for route instructions.

  • New classes available:

    RouteSegmentObject

    RouteInstructionObject

    SignpostDetailsObject

    TimeDistanceObject

    TurnDetailsObject

[7.1.21.19.227B51FF] - 2021-05-10

Added

  • Implemented support for download maps.

  • New classes:

    MapsContext

    ContentStoreObjectStatus

Changed

  • ContentStoreObject: (nonnull NSArray<NSString *> *)getCountryCodes

[7.1.21.17.3F055C56] - 2021-04-26

Added

  • Implemented support for map compass.

[7.1.21.16.2861B264] - 2021-04-19

Added

  • Implemented support for Address Search.

  • Implemented support for get/set map view zoom level.

  • Implemented support for map view pan direction ( CarPlay support )

Changed

  • New map view controller init method. Add support for scale factor parameter.

  • (instancetype)initWithPpi:(NSInteger)ppi scale:(CGFloat)scale

[Unreleased]

[7.1.21.15.C3A6EDFA]: Initial release