VisioMove Essential (iOS)  1.27.8
Change Log

v1.27.8 - November 28, 2023

Updated
  • Replace Minizip framework by a ZIP swift package

v1.27.8 - November 28, 2023

Updated
  • fix issue with secret code

v1.27.8 - November 28, 2023

Updated
  • Use a new VisioMove version with color on poi fix

v1.27.5 - August 01, 2023

Updated
  • Use a new VisioMove version with MoltenVK 1.2.4

v1.27.4 - May 09, 2023

Updated
  • better GPS example with offset when too far from scene
Added
  • added attribution information in routing results
Fixed
  • better display when floor has no description on floor selector list

v1.27.3 - October 14, 2022

Warning
Fixed
  • Fixed recompute route when location is too far from edge.

v1.27.2 - September 15, 2022

Updated
  • Updated VisioMove, now using [v2.1.39]:
    • Fixed background (non-skybox) does not appear and display blue background.
Warning

v1.27.1 - April 12, 2022

Updated
  • Updated VisioMove, now using v2.1.38.
  • Mac M1 support
  • Metal support

v1.27.0 - November 02, 2021

Added
Updated
  • The places labels will not appear above buildings and walls.

v1.26.3 - September 03 2021

No change.

v1.26.2 - August 26 2021

Fixed
  • Fixed memory leak that occurred when application creates multiple instances of VMEMapView.
  • Fixed an issue that caused route recalculation to fail when the accuracy of the position was greater than the VisioMapEditor settings "Recompute when lost distance".

v1.26.1 - March 11, 2021

Added
  • Possibility to customise the colours of the building pins via the theme file.

v1.26.0 - March 08, 2021

Added
  • Allows the integrators to handle the colorisation of the theme, markers and icons within the SDK.
  • The new theme system can also handle dark and light mode, for system colors only. The system colours will only work on devices using iOS 13 and greater. Lower versions will use the default colours. Dark/Light mode system is not customisable by integrators. Dark mode can be enabled in the theme file. Dark/Light mode will work along with the settings of the phone. There is currently no API to control directly the dark/light mode.
Fixed
  • Fixed an issue that caused the performance being reduced when moving the camera.
  • Fixed an issue that caused the setPlaceID:data: (VMEMapView) not updating correctly the place with the new data.
  • Fixed an issue that caused the performance being reduced when loading the data for maps that contain many places.
Migration
  • This note concerns only the integrators overriding the SDK icons and markers. Custom icons and markers will now need to be only using 3 colors : Red->#ff0000, Green->#00ff00, Blue->#0000ff. We use red as stroke color, green as foreground color and blue as background color. Please see the changing resources section in the FAQ for more details.
  • All icons and markers are impacted by the new design.
  • The previous routing markers (marker_track_base_current, marker_track_base_past and marker_track_base_future) are now merged in only one marker called : marker_track_base
  • The previous compass icons (icon_compass_enabled, icon_compass_disabled) are now merged in only one icon called : icon_compass

v1.25.1 - January 05, 2021

Updated
  • Updated VisioMove, now using [v2.1.37]:
    • Added support for "persistent" models. It's now possible, within VisioMapEditor, to set the visibility attribute of a model to "force visible". Doing this will ensure the model is always visible when its layer is visible.
Fixed
  • Fixed an issue in the search view that caused the floor name (associated with a place) to be vertically truncated when the building name wasn't present.
  • Fixed an issue when we pause and resume MapView and camera stats logging is enabled

v1.25 - December 18, 2020

Added
Updated
  • Updated VisioMove, now using [v2.1.36].
Fixed
  • Fixed a selector view behavior which caused the camera to move when changing floors in the currently focused building.
  • Fixed an issue that caused the building's model to return to the ground after having clicked it or opened it via the selector view.
Migration
  • A new swift example replaces the ObjectiveC one for iOS.

v1.24 - November 23, 2020

Added
Updated
  • Updated building markers to be less obtrusive within the map.
Fixed
  • Fixed support for Right To Left (RTL) languages.

v1.23 - October 6, 2020

Added
Updated
  • Updated the VisioMoveEssential SDK to be delivered as VisioMoveEssential.xcframework instead of VisioMoveEssential.framework.
  • Updated the minimum deployment target from iOS 9 to iOS 11.
  • Updated the VisioMoveEssential SDK to be a dynamic library.
  • Updated VisioMove, now using [v2.1.35].
  • Updated the wait duration before displaying the navigation items. The navigation items are now displayed as soon as they are generated. Previously there was a time delay of 1.5 seconds.
Fixed
  • Fixed an issue that caused the instructions to scroll when tilting the telephone during a navigation.
Migration
  • Verify that your Xcode project's deployment info is set to at least iOS 11. Anything below this will no longer build with this new version of VisioMoveEssential.

v1.22 - September 18, 2020

Added
Fixed
  • Fixed a crash that occurred when the map's venue layout is invalid and the user interacts with the map.

v1.21 - July 6, 2020

Added
Updated
  • Updated VisioMove, now using [v2.1.34]
    • Bitcode support added.
  • Updated the resolution of the location accuracy circle so it doesn't appear so pixelated when stretched.
Fixed
  • Fixed an issue that occasionally prevented a recently published map from being downloaded by the SDK.

v1.20 - May 20, 2020

Updated
  • Updated the SDK to support the best practices of user interface design proposed by material design.
  • Updated the map view layout to better support the device's safe area.
  • Updated VisioMove, now using [v2.1.33]:
    • Bug fixes.
Fixed
  • Fixed an issue where remote icons were sometimes associated with the incorrect place within the search view.

v1.19 - March 11, 2020

Added
Updated
  • Updated the "location tracking invalid" image for the location tracking button. A question mark is now displayed until the SDK receives a valid location from updateLocation: (VMEMapView).

v1.18 - February 4, 2020

Added
Updated
Fixed
  • Fixed an occasional issue where the SDK would arrive in an endless state trying to enter the map.
Migration

v1.17.3 - September 25, 2019

Fixed
  • Fixed the recompute route when lost feature (broken in v1.17).

v1.17.2 - August 30, 2019

Updated
  • Updated VisioMove, now using [v2.1.28]:
    • Fixed an issue that caused setPlaceColor to miss some color updates when called during a layer change.
Fixed
  • Fixed an issue where an VMECameraUpdate's min/max altitudes were being overridden when the target contains either a single VMEPosition or a place that's associated with an icon.

v1.17 - July 11, 2019

Added
Fixed

v1.16 - June 14, 2019

Added
Updated
  • Updated the recompute route when lost algorithm to be more intelligent. The route will only get recomputed if there is a "better" alternative to the current route.

v1.15 - April 04, 2019

Added
Updated
  • Updated VisioMove, now using [v2.1.27]:
    • Improved performance when setting place color.
  • Updated the map view so that it stops rendering when it's removed from it's super view.

v1.14 - March 28, 2019

Added
Updated
  • Updated the navigation's change floor maneuver markers:
    • now camera facing (previously was flat on the ground).
    • has an associated animated label that indicates the floor to change to.
  • Updated the min deployment version to iOS v9.0 (previously v8.0).
Fixed
  • Fixed an issue where an overlay view wasn't being animated together with it's associated layer.

v1.13.2 - February 22, 2019

Updated
  • Updated the updateLocation: (VMEMapView) so that it filters unnecessary location updates. A location update is filtered if:
    • it's received less than a second since the previous update
    • it's the same as the previous update
    • it falls outside of the map's limits
Fixed
  • Fixed a delay that occurred the first time the place info view was displayed.

v1.13.1 - January 31, 2019

Fixed

v1.13 - December 21, 2018

Added
  • Added new API that allows the map's style to be customized. Currently, it provides setMapFont: (VMEMapView) to allow the map's font to be modified. This might be desirable for a couple of reasons; firstly, to change the style of the map and secondly to support a character set that isn't support by default (for example Simplified Chinese characters).
  • Added support for country codes (or region tags) within the map bundle's localisation. It's now possible to represent the linguistic variations associated with a language. For example; zh-Hans (Chinese, Simplified) and zh-Hant (Chinese, Traditional).
Updated
  • Updated the language resolution strategy to better reflect the iOS strategy. This provides more robust and improved language fallback options.
Migration

v1.12.1 - December 14, 2018

Updated
Fixed
  • Fixed an issue were the camera wasn't zooming on selected icons.
  • Fixed a crash when a route is computed and the origin and destination contain the same position.

v1.12 - October 12, 2018

Added
Updated
  • Updated VMEMapListener so that it's more aligned with events driven from VMEMapView. A lot of the methods that were previously in this interface have been relocated to one of the new listeners mentioned above. See their deprecated notice or the migration notes below for more info.
  • Updated the SDK to be more tolerant of where descriptor.json is located within the map bundle. Previously it needed to be in the root directory, now it can be anywhere within the directory hierarchy.
  • Updated the camera update mechanism to better handle floor IDs. When a floor doesn't have an associated surface within the map, then the building surface will be used to determine camera focus.
  • Updated the location tracker behavior so that it's no longer disabled when the selector view is opened.
  • Updated the connected floor behavior so that when changing buildings, the connected floor of the new building remains in focus. Previously, in this scenario, the default floor was given focus.
Fixed
  • Fixed an issue where place id's containing special characters weren't clickable.
Migration
  • Certain methods were relocated from VMEMapListener. Please see the migration hints below:
    • Relocate VMEMapListener::map:didSelectPlace:withPosition: to map:didSelectPlace:withPosition: (VMEPlaceListener-p)
      // Old code
      @interface SampleViewController : UIViewController <VMEMapListener>
      -(void)viewDidLoad {
      // ..
      [self.mapView setMapListener:self];
      }
      #pragma mark - VMEMapListener
      -(BOOL) map:(VMEMapView*)mapView didSelectPlace:(NSString*)placeID withPosition:(VMEPosition*)position {
      // ...
      return YES;
      }
      // New code (replaces above)
      @interface SampleViewController : UIViewController <VMEPlaceListener>
      -(void)viewDidLoad {
      // ..
      [self.mapView setPlaceListener:self];
      }
      #pragma mark - VMEPlaceListener
      -(BOOL) map:(VMEMapView*)mapView didSelectPlace:(NSString*)placeID withPosition:(VMEPosition*)position {
      // ...
      return YES;
      }
      A VMEPosition object represents a position incorporating the geographical coordinates,...
      Definition: VMEPosition.h:20
      Map listener to be notified of map related events occuring on the VMEMapView object.
      Definition: VMEMapListener.h:42
      Interface definition of methods that are invoked when place related events occur.
      Definition: VMEPlaceListener.h:34
    • Relocate VMEMapListener::mapReadyForPlaceUpdate: to mapReadyForPlaceUpdate: (VMELifeCycleListener-p).
    • Relocate VMEMapListener::mapDidLoad: to mapDidLoad: (VMELifeCycleListener-p).
      // Old code
      @interface SampleViewController : UIViewController <VMEMapListener>
      -(void)viewDidLoad {
      // ..
      [self.mapView setMapListener:self];
      }
      #pragma mark - VMEMapListener
      -(void) mapDidLoad:(VMEMapView*)mapView {
      // ...
      }
      -(void) mapReadyForPlaceUpdate:(VMEMapView *)mapView {
      // ...
      }
      // New code (replaces above)
      @interface SampleViewController : UIViewController <VMELifeCycleListener>
      -(void)viewDidLoad {
      // ..
      [self.mapView setLifeCycleListener:self];
      }
      #pragma mark - VMELifeCycleListener
      -(void) mapDidLoad:(VMEMapView*)mapView {
      // ...
      }
      -(void) mapReadyForPlaceUpdate:(VMEMapView *)mapView {
      // ...
      }
      Interface definition of methods that are invoked when life cycle events occur.
      Definition: VMELifeCycleListener.h:31

v1.11 - September 14, 2018

Updated
  • Updated VisioMove, now using v2.1.25.
Fixed

v1.10 - July 20, 2018

Added
Updated
  • Updated how the map is loaded to improve performance. Maps containing a large number of places will now load much faster.
  • Updated the search view behavior so that any changes to place data will automatically be reflected in the table. Previously, it was necessary to change the search text for the modified place data to appear.
Fixed

v1.9.1 - July 5, 2018

Fixed
  • Fixed an issue that caused a NSLayoutConstraint VMESelectorTableView warning to appear in the console.

v1.9 - June 29, 2018

Added
  • Added new API in VMEMapView to encapsulate map bundle methods. It contains a new method VMEMapView::setPromptUserToDownloadMap: for controlling whether the user prompt that requests permission before downloading online map is displayed or not.
  • Added It's now possible to hide the selector view using setSelectorViewVisible: (VMEMapView).
  • Added map:sceneDidUpdate:withMode: (VMEMapListener-p) to notify the listener when the map's scene and/or view mode has changed.
  • Added the VMESceneContext model class to encapsulate the combination of building and floor id.
Updated
  • Updated the VMEPosition constructor to take a VMESceneContext parameter instead of building and floor IDs. Please see migration notes for more info.
Migration
  • The VMEMapView::setMapSecretCode: parameter type has changed from NSString* to int. The change was made in order to be coherent with the VisioMove Essential (Android). The change impacts two areas:
    • VMEMapView's "User Defined Runtime Attributes" within the builder. It may be necessary to re add the map's secret code to the xib file.
    • Any code that references the map secret code, see below for an example:
      // Old
      [self.mapView setMapSecretCode:@"0"];
      // New (replaces the above)
      [self.mapView setMapSecretCode:0];
  • The VMEPosition constructor has been updated:
    // Old
    VMEPosition* lPosOutside = [[VMEPosition alloc] initWithLatitude:45.74156
    longitude:4.88192
    altitude:0
    buildingID:nil
    floorID:nil];
    // New (replaces the above)
    VMEPosition* lPosOutside = [[VMEPosition alloc] initWithLatitude:45.74156
    longitude:4.88192
    altitude:0
    scene:[[VMESceneContext alloc] initOutside]];
    A VMESceneContext object represents a physical location within the map.
    Definition: VMESceneContext.h:15

v1.8.1 - June 7, 2018

Updated
  • Updated VisioMove, now using v2.1.21.
Fixed
  • Fixed an issue in v1.8 where the "limits" footprint wasn't updating the camera's bounding box.
  • Fixed a crash that occurred when using the selector view to change floors on single floored buildings.

v1.8 - April 27, 2018

Added
Updated
Fixed
  • Fixed an undefined behavior when VMECameraUpdate is used with an invalid place ID.

v1.7 - April 13, 2018

Added
Updated
  • Updated VisioMove, now using v2.1.20. What's new:
    • The camera manipulator now has inertia.
  • Updated the VMECameraUpdate construction. The telescoping constructor pattern has been replaced with a builder pattern. The builder pattern provides a single API for creating a VMECameraUpdate object, while also providing more options. See Migration notes for more detail.
  • Updated available APIs. All items deprecated since v1.2 have been removed.
Fixed
  • Fixed an issue where using the base constructor for VMERouteRequest made adding destinations impossible.
  • Fixed a crash that occurred when updating the scene of a VMEMapView object that's not in the window hierarchy.
  • Fixed an issue where overlay views added to the map view weren't handling certain events. For example, UIScrollView views weren't scrollable.
Migration
  • The way that VMECameraUpdate objects are created has been improved. Please see below for an example of the modification:
    // Old
    VMECameraUpdate* lUpdate = [VMECameraUpdate cameraUpdateForPositions:[NSArray arrayWithObjects:lPos1, lPos2, lPos3, nil]
    heading:[VMECameraHeading cameraHeadingCurrent]
    paddingTop:50
    paddingBottom:50
    paddingLeft:50
    paddingRight:50];
    // New (replaces the above)
    VMECameraUpdate* lUpdate = [VMECameraUpdate cameraUpdateWithBuilderBlock:^(VMECameraUpdateBuilder *builder) {
    builder.targets = [NSArray arrayWithObjects:lPos1, lPos2, lPos3, nil];
    builder.heading = [VMECameraHeading cameraHeadingCurrent];
    builder.paddingTop = 50;
    builder.paddingBottom = 50;
    builder.paddingLeft = 50;
    builder.paddingRight = 50;
    }];
    VMECameraHeading represents a heading element that may be associated with a VMECameraUpdate object.
    Definition: VMECameraHeading.h:20
    NSArray * targets
    An array of targets for the camera to focus on.
    Definition: VMECameraUpdate.h:69

v1.6.1 - February 28, 2018

Added
  • Added skywalk/ramp management. On multi-building maps, buildings connected to current floor by skywalks or ramps will now be automatically activated and the connected floor will be displayed.
Updated
  • Updated the camera's behavior. It now ignores any requests to move outside of it's boundaries. Previously, the camera would animate to a requested position that was outside of it's allowed boundaries, then it would immediately correct itself by jumping back within it's boundaries.
  • Updated the VMEMapView documentation to indicate at what point in the map life cycle these methods can be called.
Fixed
  • Fixed an unexpected behavior that occurred when passing an invalid building ID to VMECameraUpdate::cameraUpdateForViewMode:heading:buildingID:
  • Fixed an issue within the route setup view where the outside name wasn't appearing below the place's name.

v1.6 - January 31, 2018

Added
  • Added new APIs to provide more control over which modalities and attributes are excluded when a route is requested.
Updated
  • Updated the route summary text, displayed within the route setup view, to improve it's readability. Improvements include:
    • Displayed text is now more natural. Here are some examples:
      • 0mins, 28m => 1 min (28m)
      • 66mins, 10561m => 1 h 6min (10.6 km)
    • The units are now localized. Please see migration notes below for how to customize.
    • The color of the distance indication within the route summary, for example "(10.6 km)", has been assigned the theme's secondary color. The idea is to draw the user's attention more towards the time indication.
  • Updated the current navigation segment so it's arrows are animated.
Fixed
  • Fixed an issue where the camera's minimum altitude (defined within the map bundle's vg_config.xml) was being incorrectly set to zero when the map defines a "limits" footprint.
  • Fixed an issue where a cluster of 3D building models that share the same building ID weren't being animated together when entering the building.
  • Fixed an issue where the location tracker button was missing an ipad version.
Migration
  • If you've customized the localization, then you should add following keys to your version of VisioMoveEssential.strings:
    "Unit.Minutes" = "min";
    "Unit.Hours" = "h";
    "Unit.Meters" = "m";
    "Unit.Kilometers" = "km";

v1.5 - December 15, 2017

Added
  • Added statistic collection. Collect relevant statistics and upload them to Visioglobe's statistics server for analysis. For information about what statistics can be collected, please see VMEMapView.
  • Added modules support to the VisioMoveEssential framework. Using modules with VisioMoveEssential alleviates the integration by removing the need to add VisioMoveEssential dependencies (frameworks and libraries) to the application. See migration notes for how to benefit from modules.
Fixed
  • Fixed an issue where the map's min data format version required by VisioMove Essential wasn't being correctly checked.
  • Fixed an issue where the heading passed to placeOrientationFixedWithHeading: (VMEPlaceOrientation) wasn't been taken into consideration.
  • Fixed an issue in the OverlayViewDemoFragment sample code where the overlay's place id sometimes wasn't being updated.
Migration
  • If you've customized the localization, then you can remove the following key from your version of VisioMoveEssential.strings:
    "BundleUpdater.Internet" = "Unable to connect to map server. Please check your network connection and try again.";
  • Migrate your application to benefit from modules (optional)
    1. Update the Project.xcconfig file so that it enables modules and removes redundant linker flags.
      // Enable modules
      CLANG_ENABLE_MODULES = YES
      // Disable the now redundant linker flags
      // OTHER_LDFLAGS = -ObjC -lz -lc++
    2. Update the way the VisioMoveEssential framework is imported into your *.swift or *.m files:
      // Replace the umbrella file import mechanism
      // #import <VisioMoveEssential/VisioMoveEssential.h>
      // With the following import declaration
      @import VisioMoveEssential;
    3. From the application target which uses VisioMoveEssential, the following linked libraries are no longer required:
      - CoreLocation
      - CoreGraphics
      - Foundation
      - OpenGLES
      - QuartzCore
      - UIKit
      - CoreData (<- this dependency was introduced in v1.5)
  • If you don't migrate your application to benefit from modules then the CoreData.framework must be added to the Build Phases->Link Binary With Libraries section. A dependency to Core Data was added in this version.

v1.4.3 - October 20, 2017

Added
  • Added more control over the behavior of the camera driven explorer. It's now possible to:
    • define whether the camera driven explorer is enabled/disable. If disabled, then panning or zooming the camera will not result in a change of mode or building. This means that to enter a building, the end user may either touch the building or select it from the selector view.
    • define the camera's distance threshold where the mode toggles between floor and global.
    • define whether a building can be explored into using the camera.
    • define whether a building can be explored from using the camera.
  • Added more control over the camera's bounding box. If a footprint with the id "limits" is defined within the map, then the camera's focus point will be restricted to within the calculated bounding box of this surface.
Updated
  • Updated VisioMove, now using v2.1.18.
  • Updated some of the camera driven explorer's existing behavior:
    • previously, when the camera was below a certain distance threshold, the mode was always set to floor. Now, the camera must be below the distance threshold AND the camera's focus point must fall within the building's footprint.
    • it's now possible, when viewing an underground floor, to zoom out to global mode.

v1.4.2 - October 4, 2017

Added
  • Added Recompute route when lost feature. When the user is a certain lost distance from the route (defined within vg_app_params.json), the route will be recalculated.
Updated
  • Updated the minimum supported iOS version to iOS 8.0
  • Updated the font DPI to be more adaptive to the devices DPI. This results in smoother text rendering within the map.
  • Updated the [documentation] (https://my.visioglobe.com/docs/VisioMoveEssential-iOS/Doc/VisioMoveEssential-iOS/html/faq.html#place) to talk about the new "Automatically generate place names" feature available within VisioMapEditor's Edit places localization view.
  • Updated the place APIs so that the imageURL of the addPlaceID:imageURL:data:position: (VMEMapView) will accept an image name that resides within the main bundle's Assets.car archive. This is necessary because when using a deployment target > iOS 7, all images within Images.xcassets are packaged and it's no longer possible to retrieve their path names.
Fixed
  • Fixed an issue where the camera would zoom too close to the map whilst clicking next instruction during a navigation.
Migration
  • If you've customized the localization, then you will need to update your version of VisioMoveEssential.strings:
    "NavigationView.GeneratingRoute" = "Displaying route";
    "NavigationView.RegeneratingRoute" = "Refreshing route";
  • Be sure to copy VisioMoveEssential.bundle as there have been some updates.

v1.4.1 - September 14, 2017

Updated
  • Updated the behavior so that turn instructions are now also generated for datasets that do not contain intersection nodes. To reduce the number of turn instructions generated, you can use intersection nodes within VisioMapEditor.
Fixed
  • Fixed an issue where navigation instructions were only updating if the current location was on the ground floor.
  • Fixed an issue where the user's location marker would sometimes "bounce" after receiving a new location update.

v1.4 - July 12, 2017

Added
Updated
  • Updated VisioMove, now using v2.1.16.
  • Updated some french locale
  • The navigation drag bar now accepts single tap events to open/close the instruction list view.
  • Updated the navigation instructions to read "Arrive at waypoint" or "Arrive at destination" instead of simply "Continue".
  • Updated the navigation instructions to be coherent between iOS and Android.
  • Updated the navigation instructions to better handle VMEPosition start and waypoint objects.
  • Updated the behavior of the camera when focusing on POI's that don't have bounding boxes (icons and models). The camera is given a maximum height limit to ensure the POI is easily visible.
  • Updated the FAQ with a new section, Integrating location services.
  • Updated the demo map bundle (Visio Island) used by the sample.
Fixed
  • Fixed a crash when updateLocation: (VMEMapView) was called before the SDK was ready. Calls to updateLocation: (VMEMapView) before the VMEMapListener::mapDidLoad: will be ignored.
  • Fixed an issue where, on certain devices, the initial camera view point didn't correspond with it's target footprint.
  • Fixed an issue where building models would sometimes disappear.
  • Fixed how dynamic places are handled if they're removed from the map but still referenced within an existing route.
  • Fixed an issue where navigation instructions were only updating if the current location was on the ground floor.
Migration
  • If you've added custom localization, then you will need to update your version of VisioMoveEssential.strings to include the the locale for the following new keys:
    "RouteSetupView.PlaceNotAvailable" = "Place not available";
    "Navigation.Leave" = "leave";
    "Navigation.ArriveAt" = "arrive at";

v1.3 - April 24, 2017

Added
  • Added new API for updating the camera, VMECameraUpdate::cameraUpdateForPosition:heading:minAltitude:maxAltitude:.
Fixed
  • Fixed a crash if the camera was moved (directly or indirectly) while the application was not active.
  • Fixed an issue where it wasn't possible to exit the search view after having clicked on a dynamic place whose place icon path was invalid.
  • Fixed an issue where place's without names were clickable. Place's without names should not be clickable.
  • Fixed an english locale spelling mistake in the VisioMoveEssentialString.bundle.
  • Fixed an issue where the origin couldn't be removed from within the RouteSetupView.
Updated
  • Updated VisioMove, now using v2.1.15.
  • Updated dynamic place icon so they are loaded asynchronously.
  • Updated where icons can be accessed from. Now possible to load from the main bundle and the map bundle. Check out Place and category icon paths for more info.
  • Updated the splash view so that it no longer inherits from the color theme.
  • Updated the FAQ with more details on how to theme the VMEMapView. Check out Theme the VMEMapView for more info.
  • Updated how CLLocation objects are treated when passed to VMEMapView::createLocationFromLocation(CLLocation). When verticalAccuracy is -1, then location will be assumed to be outside, independent of whether it falls within a building's geo-fence.
  • Updated the behavior of the location tracker. It will continue to keep the current camera altitude, unless it's above 100m, at which point, it will lower it to this height.

v1.2.1 - February 24, 2017

Fixed

v1.2 - February 17, 2017

Added
  • Added new methods to VMERouteRequest to allow position as a destination.
  • Added a mechanism to receive the computed route information, via the VMERouteResults object passed to the method computeRouteDidFinish:parameters:result: (VMEComputeRouteCallback-p).
  • Added new VMELocation object to give more control when integrating a position system easier.
  • Added a new attribute, "optionsButtonAvailable", within the vg_app_params.json file. When set, will hide the "Options" button visible from the navigation view.
Updated
  • Updated VisioMove, now using v2.1.14.
  • Updated VMERouteRequest to accept ids of Dynamic Place objects.
  • Updated the documentation style and Visioglobe logo
  • Updated the "zoom into building" feature so that it's deactivated when viewing underground floors.
  • Updated the route path so the rendering of corners is smoother.
  • Updated how legends labels are managed. They will now be coherent within the scene, meaning they will appear behind surfaces that are in front of them within the scene.
  • Updated the place info view, so that when there is no place icon, the place name is centered within the view.
  • Updated the dynamic place marker so that when it's display mode is set to VMEPlaceDisplayMode::VMEPlaceDisplayModeOverlay, it will appear above the route markers.
Fixed
  • Fixed an issue where the route path and maneuvre icons would sometimes have incorrect z ordering.
  • Fixed an issue where the location overlay would sometimes be incorrectly animated.
  • Fixed an issue where underground floors were appearing in lego mode. Now underground floors are display individually.
  • Fixed an issue that prevented accessible routes from being created.
  • Fixed a crash when addPlaceID:imageURL:data:position:size:anchorMode:altitudeMode:displayMode:orientation:visibilityRamp: (VMEMapView) is called within VMEMapListener::mapReadyForPlaceUpdate:. Please see documentation for when it's ok to call this method.
  • Fixed an issue where the route setup view wasn't being reset for subsequent route requests.
Migration
  • Creating a route is now more flexible than before. See below for the code comparisons and for migration hints:
    // Old
    BOOL lIsAccessible = [self.enableAccessibleRouteSwitch isOn];
    BOOL lIsOptimized = [self.enableOptimizeSwitch isOn];
    VMERouteRequest* lRouteRequest = [[VMERouteRequest alloc] initWithAccessible:lIsAccessible
    optimize:lIsOptimized];
    // The altitude determines the layer the position is associated with
    CLLocation* lLocation = [[CLLocation alloc] initWithCoordinate:CLLocationCoordinate2DMake(45.7424829, 4.8800862)
    altitude:52
    horizontalAccuracy:5
    verticalAccuracy:0
    course:-1
    speed:5
    timestamp:[NSDate date]];
    [lRouteRequest setOriginWithLocation:lLocation];
    [lRouteRequest addDestinations:@[@"B4-UL05-ID0032", @"B2-LL01-ID0011", @"B3-UL00-ID0070"]];
    [self.mapView computeRoute:lRouteRequest callback:self];
    Represents a route request to computeRoute:callback: (VMEMapView)
    Definition: VMERouteRequest.h:16
    // New
    BOOL lIsAccessible = [self.enableAccessibleRouteSwitch isOn];
    VMERouteRequest* lRouteRequest = [[VMERouteRequest alloc] initWithRequestType:VMERouteRequestTypeFastest
    destinationsOrder:lDestOrder
    accessible:lIsAccessible];
    // The altitude determines the layer the position is associated with
    CLLocation* lCLLocation = [[CLLocation alloc] initWithCoordinate:CLLocationCoordinate2DMake(45.7424829, 4.8800862)
    altitude:52
    horizontalAccuracy:5
    verticalAccuracy:0
    course:-1
    speed:5
    timestamp:[NSDate date]];
    VMEPosition* lPosition = [self.mapView createPositionFromLocation:lCLLocation];
    [lRouteRequest setOrigin:lPosition];
    [lRouteRequest addDestinations:@[@"B4-UL05-ID0032", @"B2-LL01-ID0011", @"B3-UL00-ID0070"]];
    [self.mapView computeRoute:lRouteRequest callback:self];
    @ VMERouteRequestTypeFastest
    Indicates a request for a route that optimizes time.
    Definition: VMERouteRequestType.h:27
    VMERouteDestinationsOrder
    The different ways to interpret multiple destinations, these options do not change the behavior if th...
    Definition: VMERouteDestinationsOrder.h:18
    @ VMERouteDestinationsOrderOptimal
    Indicates that the destinations should be traversed in the order that minimizes the overall distance ...
    Definition: VMERouteDestinationsOrder.h:31
    @ VMERouteDestinationsOrderInOrder
    Indicates that the destinations should be traversed in order.
    Definition: VMERouteDestinationsOrder.h:24
  • In order to provide information related to a computed route and to provide a mechanism to display or not the route within the map, the VMEComputeRouteCallback protocol has been updated. See below for the changes:
    // Old
    -(void) computeRouteDidFinish:(VMEMapView*)mapView
    parameters:(VMERouteRequest*)routeRequest
    {
    NSLog(@"computeRouteDidFinish");
    }
    // New
    -(BOOL) computeRouteDidFinish:(VMEMapView*)mapView
    parameters:(VMERouteRequest*)routeRequest
    result:(VMERouteResult*)routeResult
    {
    NSLog(@"computeRouteDidFinish length: %f(meters) distance: %f(seconds)", routeResult.length, routeResult.duration);
    // returning YES will display the route within the map.
    return YES;
    }
    Contains information related to a computed route.
    Definition: VMERouteResult.h:16
  • When injecting the current position into the map, a VMELocation object should be used rather than a Location object. This provides more control about which building/floor should have focused. Please check the below code to see how the migration is done:
    // Old
    #pragma mark - CLLocationManagerDelegate
    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
    {
    CLLocation* newLocation = locations.lastObject;
    [self.mapView updateLocation:newLocation];
    }
    // New
    #pragma mark - CLLocationManagerDelegate
    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
    {
    CLLocation* newLocation = locations.lastObject;
    [self.mapView updateLocation:[self.mapView createLocationFromLocation:newLocation]];
    }

v1.1.2 - December 9, 2016

Updated
  • Updated the packaging of the VisioMoveEssential library to hide third party symbols to reduce integration conflicts.

v1.1.1 - October 13, 2016

Updated
  • Updated VisioMove, now using v2.1.13.
Fixed
  • A font issue with the offline version of the documentation.

v1.1 - August 24, 2016

Added
  • Added new protocol for customizing and managing places within the map. For example; it's now possible to change a places color and add dynamic places to the map. This protocol replaces the deprecated VMEPlaceDataInterface.
  • Added new method VMECameraUpdate::initWithPositions:marginTop:marginBottom:marginLeft:marginRight:heading: that can be used to move the camera in order to focus on a particular position.
  • Added customizable themes so VisioMove Essential can be coherent with rest of your application. To activate custom themes, you will need a vg_app_theme.json within your map bundle. See the MapBundleTheme within the sample for an example. The icons currently aren't affected by the theme, however they can be modified directly and repackaged.
  • Added new protocol in VMEMapView that provides a mechanism for adding native info views above the map.
  • Added new method VMEMapListener::map:didSelectPlace:withPosition: that notifies when a place has been selected. It also allows the option to provide custom behavior.
  • Added handling for place and category icons (defined within the place data) so that remote paths http(s) are handled. The downloaded icons are cached for future use within the application.
Updated
  • Updated VisioMove, now using v2.1.10.
  • Updated the algorithm that determines the current floor after calling updateLocation: (VMEMapView) to remove the need to have footprints for maps containing a single building maps and no outside.
  • Updated animation duration related to camera, layer, and spatials.
  • Updated the Search view so that the keyboard disappears after scroll events.
Fixed
  • Fixed issue related to localization when displaying alert dialogs for the compass.
  • Fixed issue where the compass wasn't being disabled after user interacts with map.

v1.0 - May 13, 2016

Added
  • Added new API in VMEMapView for connecting a location provider
  • When the Search view us opened from the Route Setup view, places that are not routable appear disabled.
Updated
  • Updated VisioMove, now using v2.1.9.
Fixed
  • Fixed issue where the marker pin was appearing when the user selects a place and a route is in progress.
  • Fixed issue where the Search view's category name wasn't being displayed correctly.
  • Fixed issue where the Search view was displaying places without names.
  • Fixed issue where the Place Info view was displaying the start route button when the place was not routable.
  • Fixed rare issue that prevented the Error view from appearing.
  • Fixed issue with plist content that preventing bundles from being submitted to the app store.
  • Fixed issue where the Navigation view would get waypoint names wrong when using an "optimized" route.

v0.0.3b - March 29, 2016

  • First public beta release
© 2022 Copyright Visioglobe, All Rights Reserved. View our Privacy Policy