VisioMove Essential (iOS)  1.17.3
Change Log

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: (VMELocationInterface-p) 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 interface, VMEStyleInterface that allows the map's style to be customized. Currently, it provides setMapFont: (VMEStyleInterface-p) 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 VMEMapInterface. 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;
      }
    • 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 {
      // ...
      }

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

  • Fixed an issue where VMEPosition waypoint names were appearing incorrectly in the route setup view.
  • Fixed an issue where setPlaceID:data: (VMEPlaceInterface-p) only worked when the placeID already contained data; either in the map's bundle localisation or via the input method VMEMapInterface::updatePlaceData:.

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

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 setMapSecretCode: (VMEBundleInterface-p) parameter type has changed from NSString* to int. The change was made in order to be coherent with the VisioMove Essential (Android) interface. The change impacts two areas:
    • VMEMapView's "User Defined Runtime Attributes" within the interface 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]];

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;
    }];

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 VMEStatisticsInterface 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 VMEComputeRouteInterface 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 VMEStatisticsInterface.
  • 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 to talk about the new "Automatically generate place names" feature available within VisioMapEditor's Edit places localization view.
  • Updated the place interface so that the imageURL of the addPlaceID:imageURL:data:position: (VMEPlaceInterface-p) 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: (VMELocationInterface-p) was called before the SDK was ready. Calls to updateLocation: (VMELocationInterface-p) 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 interface 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 VMELocationInterface::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: (VMEPlaceInterface-p) 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 that before. To achieve this the VMEComputeRouteInterface has had a face lift. 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];
    // New
    BOOL lIsAccessible = [self.enableAccessibleRouteSwitch isOn];
    VMERouteDestinationsOrder lDestOrder = [self.enableOptimizeSwitch isOn] ? VMERouteDestinationsOrderOptimal : VMERouteDestinationsOrderInOrder;
    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];
  • 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;
    }
  • 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 VMEPlaceInterface 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 VMEOverlayViewInterface 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: (VMELocationInterface-p) 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 VMELocationInterface 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
Visioglobe® 2015-2019