VisioMove SDK (Android)  2.1.22
 All Classes Functions Variables Pages
CHANGELOG

V2.1.22 - July 23, 2018

Added

Changed

  • The VgIMapModule.setPlaceColor methods were optimized (9% gain in atomic calls, 14% with batched version). (#8675)
  • VisioMove is now built on Android NDK r17b
  • VisioMove is now linked with libc++ (instead of gnustl)

Important notes

  • The sample code provided with the VisioMove SDK is now deprecated and will not be updated anymore.

V2.1.21 - May 31, 2018

Added

  • The VgIconMarker now has a setColor method to dynamically change the color (#8591)

Fixed

  • The new drag manipulator config could clash with "limits" footprint (#8592)
  • The identifiers for alpha (opacity) animation channels are added in VgAnimationChannels

Important notes

  • The sample code provided with the VisioMove SDK is now deprecated and will not be updated anymore.

Migration Notes

  • migrating from VisioMove 2.1.20, replace the libVisioMove.a/aar.

V2.1.20 - March 8, 2018

Fixed

  • The new drag manipulator wasn't respecting the provided boundaries (#8462)
  • [Android] Loading times on android are much longer than with iOS (#8431)
  • [Android] An issue during packaging of v2.1.19 could cause issues in complex build setups

Important notes

  • The sample code provided with the VisioMove SDK is now deprecated and will not be updated anymore.

Migration Notes

  • migrating from VisioMove 2.1.19, replace the libVisioMove.a/aar.

V2.1.19 - February 5, 2018

Added

  • The colorMatrix animation channel on layers. (#8327)
  • The new VgMatrixInterpolationFunctorDescriptor for animation of matrix channels (#8327)
  • The alpha animation channel for layers. (#8327)
  • It is now possible to fetch animation channels values from VgSpatial objects. (#8327)
  • The VgIconMarkerDescriptor now contains a color field, that will be multiplied with the color (including opacity) from the icon. (#7975)
  • The manipulator design has been simplified (#8326, #8346)
  • The default manipulator now has inertia (#8326, #8346)
  • The VgValue class that carries arbitrary typed values. (#8327)

Deprecated

  • The manipulator-specific interfaces Vg2DManipulator, Vg3DManipulator, VgSimpleGestureManipulator are deprecated. Everything is now done through the VgManipulator interface. (#8326, #8346)
  • [Android] The methods used to cast VgManipulator instances to their subclass Vg2DManipulator, Vg3DManipulator and VgSimpleGestureManipulator. (#8326, #8346)

Important notes

  • The sample code provided with the VisioMove SDK is now deprecated and will not be updated anymore.

Migration Notes

  • migrating from VisioMove 2.1.18, replace the libVisioMove.a/aar.
  • [iOS] On XCode, your project needs to enable c++11 dialect for GCC.
  • If you previously used any of the Vg2DManipulator, Vg3DManipulator or VgSimpleGestureManipulator interfaces you have to use VgManipulator directly without casting to subclasses: If you had e.g.:
    Vg2DManipulator l2DManipulator = libVisioMove.castToVg2DManipulator(mVgApplication.editManipulatorManager().editManipulatorObject("2D"));
    l2DManipulator.doSomething(...);
    Or:
    VgManipulator lManipulator = mVgApplication.editManipulatorManager().editManipulatorObject("2D");
    Vg2DManipulator l2DManipulator = libVisioMove.castToVg2DManipulator(lManipulator);
    l2DManipulator.doSomething(...);
    It should now read:
    VgManipulator l2DManipulator = mVgApplication.editManipulatorManager().editManipulatorObject("2D");
    l2DManipulator.doSomething(...);
  • To use the new colorMatrix feature on layers:
    float[] lStartMatrix = new float[16];
    pLayer.getAnimationChannelValue("colorMatrix").getMatrix4(lStartMatrix);
    // Desaturate and lighten
    // float[] lEndMatrix = new float[]{
    // 0.3f, 0.1f, 0.1f, 0.0f,
    // 0.1f, 0.3f, 0.1f, 0.0f,
    // 0.1f, 0.1f, 0.3f, 0.0f,
    // 0.5f, 0.5f, 0.5f, 1.0f,
    // };
    // shift colors
    // float[] lEndMatrix = new float[]{
    // 0.0f, 1.0f, 0.0f, 0.0f,
    // 0.0f, 0.0f, 1.0f, 0.0f,
    // 1.0f, 0.0f, 0.0f, 0.0f,
    // 0.0f, 0.0f, 0.0f, 1.0f,
    // };
    // Desaturate and darken
    float[] lEndMatrix = new float[]{
    0.3f, 0.1f, 0.1f, 0.0f,
    0.1f, 0.3f, 0.1f, 0.0f,
    0.1f, 0.1f, 0.3f, 0.0f,
    0.0f, 0.0f, 0.0f, 1.0f,
    };
    // Full desaturation (greyscale)
    // float[] lEndMatrix = new float[]{
    // 0.33f, 0.33f, 0.33f, 0.0f,
    // 0.33f, 0.33f, 0.33f, 0.0f,
    // 0.33f, 0.33f, 0.33f, 0.0f,
    // 0.0f, 0.0f, 0.0f, 1.0f,
    // };
    lCMatrixDescr.setMStartMatrix(lStartMatrix);
    lCMatrixDescr.setMEndMatrix(lEndMatrix);
    lAnimDescr.getMFunctorDescriptors().set(new VgStringPair("", "colorMatrix"), new VgFunctorDescriptorRefPtr(lCMatrixDescr));
    VgAnimationRefPtr lAnim = mSurfaceView.getApplication().editEngine().editInstanceFactory().instantiate(lAnimDescr);
    pLayer.setAnimation(lLayerAnimName, lAnim);
    lAnim.start();
  • To use the new layer-wide opacity feature:
    lAlphaDescr.setMStartValue(1.0f);
    lAlphaDescr.setMEndValue(0.0f);
    lAlphaDescr.setMStartTime(0.0f);
    lAlphaDescr.setMEndTime(kLayerAnimationDuration/6.0f);
    lAnimDescr.getMFunctorDescriptors().set(new VgStringPair("", "alpha"), new VgFunctorDescriptorRefPtr(lAlphaDescr));
  • To get value from an animation channel:
    float[] lStartMatrix = new float[16];
    pLayer.getAnimationChannelValue("colorMatrix").getMatrix4(lStartMatrix);

v2.1.18 - October 20, 2017

Fixed

  • A major security issue was fixed in this release.

Migration Notes

  • migrating from VisioMove 2.1.17, simply replace the libVisioMove.a/aar.

v2.1.17 - October 17, 2017

Added

  • Skyboxes are now supported (talk to your sales representative) (#8134 #8165)

Fixed

  • Support for 3D landmarks/models with non textured faces (#8094)
  • [Android] We changed the way the android SDK documentation is generated. This should result in better documentation (#8109)

Migration Notes

  • migrating from VisioMove 2.1.16, simply replace the libVisioMove.a/aar.

Deprecated

  • [iOS] We are dropping suppport for the version linked with libstdc++, since we now require c++11 support, only the libc++ version will be delivered from now on.

v2.1.16 - July 07, 2017

Fixed

  • VgICamera::getViewpointFromPositions returns invalid viewpoint if position vector contains duplicates (#7713)
  • VgICameraImpl::getViewpointFromPositions issue when using asymmetrical paddings and max/min heights (#8121)
  • [iOS] Fixed an issue that would result in a black view and an "<i>PVRTTextureLoadPartialFromPointer failed: glBindTexture() failed</i>" error log in the console. (#8039)
  • Memory leaks in applications loading multiple configuration files (#7970)
  • [Android] The documentation is partial (#7852)

Migration Notes

  • migrating from VisioMove 2.1.15, simply replace the libVisioMove.a/aar.

v2.1.15 - April 06, 2017

Added

Fixed

  • Issue with POIs having multiple footprints/geofences this needs your map to be built with minSDK=2.1.15 (#8011)

Deprecated

Migration Notes

v2.1.14 - January 17, 2017

Added

  • New functors for texture matrix animation
  • [Android] Foreign-type RefPtr copy-construction
  • [Android] Release method for all VgReferenced wrapper subclasses

Fixed

  • Loading of animated models (#7957)
  • Local animations possible on all models (#7959)

Changed

  • Updated documentation style and logo.

Migration Notes

  • migrating from VisioMove 2.1.13, simply replace the libVisioMove.a/aar.
  • [Android] The appropriate conversion constructors for RefPtr classes were added This means that when we were writing:
    VgPointRefPtr lPointRef = lInstanceFactory.instantiate(lPointDescriptorRef);
    VgSpatialRefPtr lSpatialRef = new VgSpatialRefPtr(lPointRef.get())
    // The ".get()" here is now superfluous and dangerous ----^
    // It would force to create a direct reference on a native object, which is possible but unadvised as it stresses
    // the garbage collector and may cause issues with native objects surviving the engine.

v2.1.13 - October 10, 2016

Added

Fixed

  • An issue with copying line descriptor that was introduced by v2.1.12
  • A font issue with the offline version of the documentation

Changed

Known Issues

Migration Notes

  • migrating from VisioMove 2.1.12, simply replace the libVisioMove.a/aar.

v2.1.12 - September 19, 2016

Added

  • It is now possible to control the density of VgLine tesselation using VgLineDescriptor::mMinTesselationDist

Fixed

  • An issue that prevented map display on some recent devices.

Changed

Known Issues

Migration Notes

  • migrating from VisioMove 2.1.11, simply replace the libVisioMove.a/aar.

v2.1.11 - July 29, 2016

Note This was an internal only release. It was not made publicly available.

Added

Fixed

  • [Android] The GL surface view was logging errors to the logcat on instantiation (#3452)
  • [Android] Some devices did not support the 'android:hardwareAccelerated="true"' flag. Hardware accelerated UI can now be used (#3359, #6174).

Changed

Known Issues

Migration Notes

  • migrating from VisioMove 2.1.10, simply replace the libVisioMove.a/aar.

v2.1.10 - May 23, 2016

Added

Fixed

  • Missing VgINavigation and other links in Android 2.1.9 SDK documentation

Changed

  • Now using OpenGLES 2.0 as renderer (with rendering iso with previous versions) (#7479, #6022)

Known Issues

Migration Notes

  • migrating from VisioMove 2.1.9, simply replace the libVisioMove.a/aar. On iOS, you will also need to replace the header files.

v2.1.9 - March 11, 2016

Added

  • The change log is now embedded within the html documentation. (#7654)

Fixed

Changed

  • VgINavigationRequestParameters::mFirstNodeAsIntersection parameter: Treats the first node (not just the start) of the first instruction after the start or a waypoint as an intersection , used to force the generation of an instruction turn right or left when you leave a POI. (#7550)
  • Documentation for method VgIMapModule::getLayerForPosition, warning about using it on multi-building context and indoor positioning.
  • New methods VgIGeometry::getLocalPosition and VgIGeometry::setLocalPosition on VgIGeometry (#7680)
  • Models from map and added via VgModelManager::createModel() can now be animated globally or locally (#7679)
  • VisioMove (Android) documentation has been been reformatted to be consistent with iOS. (#7653)

Known Issues

Migration Notes

  • migrating from VisioMove 2.1.8, simply replace the libVisioMove.a/aar. On iOS, you will also need to replace the header files.

v2.1.8 - December 22, 2015

Added

Note

Fixed

  • Multiple VgMyViewController instances not supported. (#7391)
  • Sample: goTo place id function updated to also support places who have only one position in their footprint. (#7398)
  • Android: Added the following missing SWIGTYPEs (VgIntVector, VgStringStringMap). (#7415)
  • Corrected documentation for VgIRouteRequestParameters::mDestinationOrder to clearly state: Default is eOptimalFinishOnLast

Changed

  • Sample: VgMyNavigationHelper (VgMyNavigationHelper::translateInstruction, and 3 new methods) to display the name of the waypoints and destination. It uses new API's VgIRoute::getDesinationIndices(), and VgIRoutingNode::getPoiID(). (#7418)
  • Documentation for method VgIMapModule::getLayerForPosition, warning about using it on multi-building context and indoor positioning.

Known Issues

  • VisioMove (Android) will occasionally crash within the drawFrame method. (#6984)
  • Holding a VgPoint ref and calling setPlaceName/setPlaceIcon on it will detach it from its layer. A new VgPoint with the same ID will be created and attached. (#5852)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • VgINavigationInstruction->getAttributes() sometimes does not return the right attribute (the attributes are not on the right instruction). (#7074)
  • Crash on Android if calling VgPosition lPos = new VgPosition(2.12321, 45.23421, null), should use VgPosition lPos = new VgPosition(2.12321, 45.23421, 10.0, VgSRSConstRefPtr.getNull()), ideally it should not crash. (#6999)
  • Android sample: When installing the sample on a fresh clean Android Studio install, it may display the following error: "Can't save to phone's external storage. Check it's available and writable.". You must edit manually the configuration file of your AVD. The the answer here: http://stackoverflow.com/questions/27120754/sd-card-created-in-avd-shows-as-removed-in-emulator-for-android-studio
  • Android Studio issue on Windows: avoid long path names. The Android packaging tools do not support path longer than 256 characters (in the gradle build folder). It can cause packaging issues or runtime issues.

Migration Notes

  • migrating from VisioMove 2.1.7, simply replace the libVisioMove.a/aar. On iOS, you will also need to replace the header files.
  • If you need to know the poiID of your waypoints in the navigation translation, you will need to update VgMyNavigationHelper class. (#7418)

v2.1.7 - November 18, 2015

Added

  • API VgIRouteRequestParameters, new attribute: mRemapResultingModality Allows you to remap a modality, like "Travelator", or "vipline" to say "pedestrian" to avoid generating extra routing segments, and routing instructions for getting on and off a modality. (#7294)
  • API VgINavigationRequestParameters: new simplified algorithm using explicit intersections If intersection data is present in the map (routing nodes marked as intersection), it will use the straight angle threshold only at these locations Otherwise it will use the original algorithm. It is possible to force to use the original algorithm Even if the map contains intersection data.
  • API VgINavigationRequestParameters possibility to describe mFirstNodeAsIntersection To be able to generate a navigation instruction, when say coming out of a store even if the first routing node is not marked as intersection.
  • API VgILicenseManager::staticGetRevision(), no longer is required to create a VgEAGLView/VgSurfaceView to retrieve SDK revision.

Changed

  • Default VgINavigationRequestParameters to reduce the number of navigation instructions: (#7342) VgModalityParameterType::eStraightAngleThreshold from 7.0 to 30.0 meters. VgModalityParameterType::eNearPlacesThreshold from 20.0 to 10.0 meters mMergeFloorChangeInstructions changed default from false to true. the mMergeFloorChangeInstructions new defaut will not be taken into account unless its value is not set in VgMyBasicApplicationController
  • Anonymous images whose id are of the form mapIconXXX no longer trigger a notifyPOISelected. (#7371)
  • Sample iOS: small change to be able to editNavigationParameters
  • Sample iOS: small refactoring on how the map credentials are specified.
  • Sample: VgMyRoutingHelper, go back POIs (take you to previous floor on route), no longer shown to make following the route easier. (#7338)
  • Sample iOS: sets mNavigationRequestParameters.mMergeFloorChangeInstructions = true;
  • Sample iOS: sort buiding such that first building appears on top of list. (#7372)
  • Sample: updated VgMyStackedLayerAndCameraHandler::configureLayersLODForView so that active floor in Building View can show detail. (#7382)
  • Sample: VgMyNavigationHelper::translateInstruction handles waypoints (go straight and stop at waypoint #2). (#7385)

Fixed

  • Getting the routing node from a position, could possibly return the wrong results. (#7190)
  • Sample iOS made VgMyViewController::notifyMapIsLoaded more robust.
  • Samples: workaround for Map Bubble not available when coming back to Global Mode from Building Mode applicable if there are POIs on the outside layer. (#7319)
  • Anonymous images (without ID on mapeditor, assigned id mapIconXX) no longer clickable VgPoint for them is initialized with notifyPOISelectedOnClick=false. (#7371)
  • setViewPoint can in certain instances be clamped prematurely while using 2D Manipulator. (#7381)

Migration Notes

  • migrating from VisioMove 2.1.6, simply replace the libVisioMove.a/aar
  • If you need to use the old defaults for straight angle and near places threshold, or if you would like to use mergeFloorChangeInstructions with true, you will need to update VgMyBasicApplicationController.
  • Workaround for issue #7319, update VgMyBubbleView.java/VgMyMapPlaceListenerWithBubble.mm
  • For iOS Sample issue #7372 Building order update VgVenueLayout.mm::initWithLayout
  • For issue #7382, update VgMyStackedLayerAndCameraHandler::configureLayersLODForView().

Known Issues

  • VisioMove (Android) will occasionally crash within the drawFrame method. (#6984)
  • Holding a VgPoint ref and calling setPlaceName/setPlaceIcon on it will detach it from its layer. A new VgPoint with the same ID will be created and attached. (#5852)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • VgINavigationInstruction->getAttributes() sometimes does not return the right attribute (the attributes are not on the right instruction). (#7074)
  • Crash on Android if calling VgPosition lPos = new VgPosition(2.12321, 45.23421, null), should use VgPosition lPos = new VgPosition(2.12321, 45.23421, 10.0, VgSRSConstRefPtr.getNull()), ideally it should not crash. (#6999)
  • Android sample: When installing the sample on a fresh clean Android Studio install, it may display the following error: "Can't save to phone's external storage. Check it's available and writable.". You must edit manually the configuration file of your AVD. The the answer here: http://stackoverflow.com/questions/27120754/sd-card-created-in-avd-shows-as-removed-in-emulator-for-android-studio
  • Android Studio issue on Windows: avoid long path names. The Android packaging tools do not support path longer than 256 characters (in the gradle build folder). It can cause packaging issues or runtime issues.

v2.1.6 - October 14, 2015

Apple have introduced a new “3D touch” technology to iPhone 6s/6s+. This technology has introduced a side effect into our SDK. When trying to select a shop within the map, it can only be done by tapping extremely gently. This happens only on devices with this new technology, currently iPhone 6s/6s+, when using VisioMove v2.1.5 and below.

VisioMove v2.1.6 fixes this issue. Selecting a shop can be done without any particular care on iPhone 6s/6s+.

IMPORTANT: To provide a good experience on iPhone 6s/6s+ devices, we recommend strongly to update to VisioMove v2.1.6.

The sample code has not been touched from version VisioMove 2.1.5

Fixed

  • VisioMove (iOS): Doing a tap does not trigger a VgMapPlaceListener::notifyPlaceSelected() or VgISimpleGestureManipulatorListener::onSimpleClick() on iPhone 6S and iPhone 6S+. (#7259)
  • VisioMove: VgQuery on a 3D Model on the map done after a layer has been moved, moves the model; This is particularly visible on Multi-building datasets. (#7284)

Sample Changes:

  • none

Migration Notes

Known Issues

  • VisioMove (Android) will occasionally crash within the drawFrame method. (#6984)
  • Holding a VgPoint ref and calling setPlaceName/setPlaceIcon on it will detach it from its layer. A new VgPoint with the same ID will be created and attached. (#5852)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • VgINavigationInstruction->getAttributes() sometimes does not return the right attribute (the attributes are not on the right instruction). (#7074)
  • Crash on Android if calling VgPosition lPos = new VgPosition(2.12321, 45.23421, null), should use VgPosition lPos = new VgPosition(2.12321, 45.23421, 10.0, VgSRSConstRefPtr.getNull()), ideally it should not crash. (#6999)

v2.1.5 - September 9, 2015

IMPORTANT IOS: libVisioMove.a is now linked against "libc++ (LLVM C++ standard library with C++11 support)". Advantages include better support by Apple, and has a slight performance improvement. Note we still delivery version of our library linked with stdc++ called lib/iOS/libVisioMove.libstdc++.a, if you must use that one, be sure to rename it. IMPORTANT IOS: future samples will no longer support iOS 6.0 since it is becoming harder to tests on those platforms and they are more rare and limit the use of certain frameworks. IMPORTANT Android: libVisioMove is now delivered as libVisioMove.aar (including the .jar and .so files). Advantages include better support by Android and easier to integrate a unified file.

Major Features:

  • Multi-Building : A new set of features that make multi-building possible. Please contact Visioglobe if this feature interests you. — Samples (iOS/Android) : Selector View now replaces the floor slider (iOS) and drop down selector (Android) for the preferred mechanism of changing buildings/floors.
  • iOS reduced energy consumption: on idle about 10%, while animating it is possible to reduce the energy consumption by reducing the framerate, see VgEAGLView setFrameInterval.

Added

  • API VgILicenseManager::staticGetVersion(), no longer is required to create a VgEAGLView/VgSurfaceView to retrieve SDK version. (#7209)
  • API VgILicenseManager::staticGetMinimumDataSDKVersion(): allows to handle the case in the future where the SDK drops support for reading very old datasets. (#7209)
  • API VgEAGLView setFrameInterval: which reduces maximum frame rate (from say 60fps to 30 or 20), for further reductions in energy consumption if desired.

Fixed

  • Navigation Instruction/Route destinationIndex always sequential: not correct for optimal and optimalFinishOnLast. (#7138)
  • Sample (Android): Issue where Start and End route markers might appear multiple times on the map. (#7146)
  • Sample (iOS/Android): The use of VgLinks within VgMyRoutingHelper is now configurable. By default, VgLinks are disabled. (#7147)
  • Clicking on certain 3D models did not trigger notifyPlaceSelected. (#7148)
  • iOS CPU usage is 0% when idle (as opposed to 1%), uses CADisplayLink for display. (#326)
  • Certain license files caused the application to crash. (#7208)
  • VgIEngine::isLoaded sometimes returned true even though not everything was loaded. (#7199)
  • Sample (iOS): Small memory leak due to circular reference on VgLayerAnimationCallback and VgLayer. Need to clear all animations on desctructor. (#7215)
  • Small memory leak on the SDK. (#7251)
  • VgSpatial::getOrientation did not return angles in degrees. (#7246)
  • Calling getOrientation() inside VgAnimationCallback::onFinish() can cause a crash. (#7248)
  • Calling getPosition() on VgAnimationCallback::onFinish() did not return the right value. (#7249)
  • Sample (Android): On some devices running Android 5.X Lollipop & emulators, the sample closed when clicking on the back button (#7244)

Changed

  • Sample (iOS): Now uses native json support, it's no longer necessary to include third json library. See migration notes. (#6755)
  • Sample (iOS): Users a dummy start view controller, to show how to instantiate a view controller with a map.
  • Sample (Android): Projects have been renamed to be coherent with their package name. Common -> VisioSample. VisioSample -> VisioNavigationSample.
  • iOS VgEAGLView .multisample is turned off for retina-devices.

Migration Notes

  • VisioMove (iOS): SDK is built without bitcode. When building for iOS9, be sure to disable bitcode for any targets that link with the VisioMove library. (#7194)
  • Sample (iOS): Now uses native json support for VgMyMapManagerListParser, add VgMyMapManagerListParser.mm|.h and VgMyRemoteMapManager.mm|.h and update VgMyController.mm with the implementation of VgMyControllerRemoteMapManagerCallback, and update method -(IBAction)loadFromNetwork:(id)sender.
  • Sample (iOS): When using the libc++ version of VisioMove, verify that "C++ Standard Library" is set to use libc++, within the xcode project's build settings. Note that the external library zlib isn’t affected by the C++ standard library linker because it's written in C. If the project still references libJsoncpp.a then it must be removed because it's not longer used and will result in build errors because it was linked with libstdc++.
  • Sample (Android): In the VisioSample gradle file; Add the following dependency "compile(name:'libVisioMove', ext:'aar')" and remove the following source reference "jniLibs.srcDirs = ['libs']". Update the project gradle file, so that it the repositories reference the directory containing libVisioMove.aar, for example: "flatDir{dirs '../../../Common/Makefiles/Android/libs'}".
  • Sample (Android/iOS): The samples are now using the new map bundle management. In order for your maps to take advantages of the new features provided by the new map bundle management, please contact Visioglobe to activate this within VisioMapEditor. You will need to update the VgMyRemoteMapManagerConfig and VgMyRemoteMapManager classes within your application for both Android and iOS. Also, on Android, you will need to update UnzipHelper.java which fixes a crash when the map bundle archive contains a top level file.

Known Issues

  • VisioMove (Android) will occasionally crash within the drawFrame method. (#6984)
  • Holding a VgPoint ref and calling setPlaceName/setPlaceIcon on it will detach it from its layer. A new VgPoint with the same ID will be created and attached. (#5852)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • VgINavigationInstruction->getAttributes() sometimes does not return the right attribute (the attributes are not on the right instruction). (#7074)
  • Crash on Android if calling VgPosition lPos = new VgPosition(2.12321, 45.23421, null), should use VgPosition lPos = new VgPosition(2.12321, 45.23421, 10.0, VgSRSConstRefPtr.getNull()), ideally it should not crash. (#6999)

v2.1.4 - July 7, 2015

IMPORTANT ANDROID: this release supports only the Official Android IDE: Android Studio. IMPORTANT Android: the sample now sets minSdkVersion to 9 (was previously 8) in order to support the compass code. IMPORTANT IOS: the sample supports iOS 6.0 and greater since one can no longer submit applications to the App Store for iOS 5.1 (since arm64 is required).

Major Features:

  • Improved Routing Performance ~2-5x
  • Route can start on the middle of an edge as opposed to just the closest node
  • Geofences, can ask what geofences a position belongs to (footprints on VisioMapEditor marked as "geofence")
  • Compass Integration (for both iOS and Android)
  • iOS library linked to libc++ (as opposed to stdlibc++), see migration notes.

Added

  • API VgIMapModule::getGeofences(), retrieve IDs of Footprints that are marked as Geofences as well as determine if a point is inside a geofence.
  • API VgPositionToolbox::isInside2D (position,vector of positions)
  • VgIRoutingSolver->getRoutingNode(Position) by default will find the position in the middle of the closest edge; use method with VgIRoutingNodeParameters if you want a different behaviour. (#6061)
  • VgIRoutingSolver->computeRoute() can now use multiple destinations as well as finding the best order to visit them (in order, optimal, optimal but finish on the last destination). This is practically limited to 5-6 destinations. See VgIRouteRequest for more information (#7081)

Fixes

  • Wrong results on VgIRoutingModule::getRoutingNode with a position with Scene SRS that has coordinates similar to latitude longitude. (#7066)
  • VgINavigation::updateCurrentPosition sometimes crashes. (#7006)
  • executing a VgQuery sometimes crashes. (#7096)

Sample Changes:

  • VgMyRoutingHelper::requestRoute updated to handle multiple destinations.
  • RouteStyleParameters::mWidth is now a float
  • VgMyRouteStyler mTrackColor used for Classic and Multiline
  • Samples (iOS/Android): Added compass example. On iOS, remember to add the NSLocationWhenInUseUsageDescription key to your app's *.plist. (#7060)
  • Minor fix on VgMyRoutingHelper::createAndAddRouteMarker(), missing real destruction of point: missing lItRoutePoint->second->setLayer(NULL)

Known Issues

  • VisioMove (Android) will occasionally crash within the drawFrame method. (#6984)
  • Holding a VgPoint ref and calling setPlaceName/setPlaceIcon on it will detach it from its layer. A new VgPoint with the same ID will be created and attached. (#5852)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • VgINavigationInstruction::getAttributes() sometimes does not return the right attribute (the attributes are not on the right instruction). (#7074)
  • Crash on Android if calling VgPosition lPos = new VgPosition(2.12321, 45.23421, null), should use VgPosition lPos = new VgPosition(2.12321, 45.23421, 10.0, VgSRSConstRefPtr.getNull()), ideally it should not crash. (#6999)

Migration Notes

  • If not using any of the new features (multipoint routing, or geofence), you can simply update the library and include files.
  • If using multi point routing you need to update VgMyNavigationHelper as there are new eVgManeuverType that if not handled can have adverse effects. Adding MultiPoint UI to iOS Update VgMyBubbleView, VgMyRouteCreator, VgMyNavigationHelper, media transit_instruction_intermediate_destination and track_intermediate_destination. Localization for ComputeRouteWaypointTitle.
  • If adding compass to an existing application: for iOS/Android see header of VgMyCompassDataSource.h/java for complete integration notes
  • If you want to use the libVisioMove compiled against libc++, replace your old libVisioMove.a with the new libVisioMove.libc++.a in the lib/iOS directory, as well as replacing your libJsoncpp.a with the new External/Jsoncpp/lib/iphoneos/libJsoncpp.libc++.a. If you wanted to compile the furnished iOS sample using libc++ you would do: cp External/Jsoncpp/lib/iphoneos/libJsoncpp.libc++.a External/Jsoncpp/lib/iphoneos/libJsoncpp.a cp lib/iOS/libVisioMove.libc++.a lib/iOS/libVisioMove.a Update VisioNavigationModule iOS project's "C++ Standard Library" to "libc++ (LLVM C++ standard library with C++11 support)" and don't forget to update your include files, including samples/Common/Inc/VgStringHashMap.h (which deals with mapping hash_map to unordered_map)

v2.1.3 - April 29, 2015

Added

Changed

  • Update Dataset with frame rate optimizations. You need a SDK version of at least 2.1.0 and configure that SDK on MapEditor to take advantage of this feature. (#6505)
  • VgINavigation::getClosestPositionOnRoute()/getCurrentPosition() now return first position of instruction if no updateCurrentPosition() has been called. (#6863)
  • Changed default value of VgLineDescriptor::mTextureAnimationSpeed and VgLinkDescriptor::mAnimationSpeed to 0.0. In case the developer does not use a texture or does not desire to be animated, it will avoid potentially unnecessary CPU usage. (#6832)
  • Changed default value of VgLineDescriptor::mID and VgPointDescriptor::mID to empty string, this prevents the call to VgIPlaceListener::notifyPlaceSelected on user created POIs unless the developer explicitly sets the mID of the VgIGeometry. (#6980)
  • ExternalMap Module and Database Module have been removed. (#6953)
  • Unused VgMyStackedLayerAndCameraHandlerOldWithPinch.* have been remove. (#6978)
  • Android: all delete() methods are now private (These methods should never be called directly). (#6989)

Fixed

  • VgNearPlace of very first navigation instruction is missing the first entry. (#6751)
  • VgLink affects rendering of objects behind it. (#6752)
  • VgLayer::isVisible always returns true. (#6754)
  • VgIInstruction incorrect modality on last segment if there was a change of modality on a short segment. (#6831)
  • Sample iOS: The FOV is not properly adjusted the second time a VgMyStackedLayerAndCameraHandler is created. (#6845)
  • Sample iOS: App Store application rejections due to Map data being backed up by iCloud. (#6827)
  • VgPoint may not appear on the screen after a setPosition(). (#6862)
  • Samples iOS/Android: VgMyRouteStyler, for VgMyRouteStyler::eSimplifiedMultiLinePlusAgent style, do not simplify line on finest detail to avoid seeing the cutting of corners when close for certain cases. For Classic style set MaxCornerRadius to 3.0 (#6861)
  • Animated models sometime disappear. (#6153)
  • ExternalMap Module and Database Module have been removed. (#6953)
  • VgPoint::setAnchorPosition() / VgPoint::setOrientationConstraints() / VgPoint::setGeometryConstantSizeDistance may not have updated immediately. (#6963)
  • Sample Android: Memory leaks. (#6894)
  • Parasitic POIs visible when changing layers in detailed view. (#6898)
  • Navigation Instruction Duration/Length may not be correct for goUp/Down/change Modality/Layer maneuver type. (#6993)

Migration Notes

  • If you want to fix Field of View bug on the sample where opening the same map twice does not yield the same viewpoint (e.g. you create the view controller multiple times), then you need to update the files VgMyStackedLayerAndCameraHandler.cpp|h by converting the static variable sSetFovOnce to a member variable.
  • If you need to fix iCloud Backup issue: see https://developer.visioglobe.com/questions/app-store-rejection-due-to-large-backup-size-on-icloud/ Changes made to VgMyConfigPreferences.mm|.h and VgMyViewController.mm
  • If you want to fix issue where sometimes route cuts too much on turns with VgMyRouteStyler::eSimplifiedMultiLinePlusAgent simply only call function simplifyLineForWidth() for lLOD greater than 0, in VgMyRouteStyler.cpp/java simplify only for larger LODs, i.e. do not simplify LOD0 if (lLOD > 0) { lLineDesc->mPositions = lPositionToolbox->simplifyLineForWidth(lLineDesc->mPositions, lLineDesc->mTextureSize); }

Known Issues

  • VisioMove (Android) will occasionally crash within the drawFrame method. (#6984)
  • Holding a VgPoint ref and calling setPlaceName/setPlaceIcon on it will detach it from its layer. A new VgPoint with the same ID will be created and attached. (#5852)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)

v2.1.2 - January 23, 2015

Added

  • New method VgIRoute::getDuration() which returns the duration of the route in seconds. (#5160)
  • Sample iOS: Improved robustness of VgMyViewController::verifyMap:withOutputErrorStr:, and VgMyBasicApplicationController::loadConfiguration(). (#6676)
  • Width and Height parameters to VgITextureManager::createTextureWithUniformColor() now able to create non-square uniform color textures. (#6598)
  • VgItexture getWidth() and getHeight() now able to query width and height of png and jpeg images. (#6656)
  • Added documentation about potential memory leak if retaining VgINavigation on VgINavigationCallback, see VgINavigationCallback doc. (#6657)
  • Preliminary Multi-building support, added eVgManeuverTypeChangeLayer, when a navigation path changes layers that have the same altitude: usually when changing buildings. Both Android and iOS examples were updated. NOTE: if your datasets do not have overlapping floor heights, you will never get this maneuver type. (#6677,#1400)
  • Android Studio is now the Official Android IDE, the samples still work with Eclipse, but this support is not guaranteed in the future.
  • Android libraries are now compiled for all major architectures, including: armeabi armeabi-v7a arm64-v8a x86 x86_64. (#5928,#6678,#6493,#6494)
  • Now possible to set a 3D model's zIndex via the vg_config.xml file. (#6701)

Fixed

  • Crash when computing a route on datasets with very large number of routing nodes. (#6597)
  • VgIRoute::getLength() now returns route length in meters, instead of route time in seconds, when a route is computed with request type eFastest (default). (#5159)
  • VgLinks were not being animated when there were no animated VgPOIs object around and renderOnDemand activated. (#6601)
  • Moving a VgPoint from one layer to another removes its listeners. (#6602)
  • Potential crash on unloadConfiguration(). (#6628)
  • Potential thread deadlock. (#6639)
  • Handling of non power of 2 square textures. (#4984, #6598)
  • Handling of rectangular textures on IconMarkers, the scale applies to the longest side. (#406)
  • Documentation of VgITextureManager::getTexture() as appeared in 2.1.1
  • VgIResourceCallback::notifyResource() as it was always called with VgResourceRequestStatus success. (#6662)
  • Minor memory leaks. (#6666,#6667)
  • Missing notification when doing the very first click on a map launching directly in detailed view. (#6670)
  • Issues with setPlaceColor/resetPlaceColor/picking when using very large datasets and the mergeAllGeometry is set. (#6605,#6621)
  • Samples iOS/Android: The navigation samples now handle eVgManeuverTypeChangeModality within the instruction view. (#6679)
  • Navigation instruction without mMergeFloorChangeInstructions had wrong modality text, suppressed "and change transportation method..." (#6684)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • The initial route segment was not being drawn with the eSimplifiedMultiLinePlusAgent when there is a very sharp turn at beginning of route. (#6686)
  • VgICamera::projectOnScreen returns wrong values with the camera position. It returns (NaN, Nan, +Inf). (#5855)
  • In certain cases, VgPoints that should have been visible, only become visible after moving the camera. (#6550)
  • The method setConstantGeometrySizeDistance was not forcing a render on demand. (#6555)
  • VgSimpleGestureManipulator was crashing if no listener had been set. (#6567)
  • Adding two different listeners to a VgPoint object when it's layer was set, makes each listener called multiple times. (#6603)
  • Sample iOS: NavigationSample crash on reset preferences. (#6610)
  • Non-Uniform scale of 3D models was not being handled correctly. (#6675)

Known Issues

  • Holding a VgPoint ref and calling setPlaceName/setPlaceIcon on it will detach it from its layer. A new VgPoint with the same ID will be created and attached. (#5852)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • On iPhone4, the link between a floor may not appear in rare cases. (#5037)

v2.1.1 - October 28, 2014

Fixed

  • Android: Crash when loading medium/large maps. (#6535)
  • Static map icons can now be made camera facing. Only available using VisioMapEditor v2.0. (#6536)
  • Sample Android: Fixed a crash in the sample code when the map bundle only has a single layer. (#6549)

v2.1.0 - October 15, 2014

Changed

  • The VisioDevKit library has undergone a name change and is now called, VisioMove. (#5859, #5857)
  • VERY IMPORTANT: Labels size track exactly the size of the label bounding rectangle used on VisioMapEditor. (#4988, #6419, #6394, #6310) This is an important change from the previous version as the labels will now appear bigger than before. You can customize the behavior two ways: either via VisioMapEditor, by changing the label rectangles, or via the APIs VgQuery, execute(), and updating the scale and other parameters of the VgPoints, once you have done a setPlaceName().
  • VERY IMPORTANT iOS Library is built for XCODE 6 AND ABOVE ONLY, if you need to use VisioMove with XCode 5 please contact visioglobe, due to compiler changes for std::pair from Apple. (#6395) https://developer.apple.com/librarY/prerelease/mac/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc6_release_notes.html
  • The sample application has been updated to use ARC (Objective-C Automatic Reference Counting set to Yes). Most modern code is written using this feature. Visioglobe will no longer support non-ARC code, if you must you can still use the sample code from the 2.0.9617 SDK. (#5736)
  • Added new method VgILicenseManager::getRevision() for finding exact SDK revision for certain debugging scenarios. (#6184)
  • Added new method VgITextureManager::createTextureWithUniformColor() to simplify creation of uniform color. (#6418)
  • Added iPhone6 and iPhone6 Plus splash screen images for non-scaled rendering on these platforms. (#6409)
  • Changed default value of VgPointDescriptor::mGeometryConstantSizeDistance from 700.0f to 0.0f
  • Moved getID() from VgPoint to VgIGeometry
  • Changed default VgTextMarkerDescritor::mScale default from 70 to 1. (#6481)
  • Changed default VgIconMarkerDescritor::mScale default from 70 to 1. (#6481)
  • Added VgQuery() can now search for VgLine, can simplify working with routes.
  • Added Vg2DManipulator, this allows you to change the boundaries and min/max altitude of the 2D Manipulator. (#6440)
  • Added Vg3DManipulator, this allows you to change the boundaries and min/max altitude of the 3D Manipulator. (#6440)
  • Added isLoaded(...), this allows you to determine if everything is loaded on the screen, useful to be called on PostRenderScene (#6261)
  • Added VgPoint rectangle width, height and size policy: constant scale or fit rectangle. One can now make User created POIs fit inside a bounding rectangle. (#6441)
  • Added VgPoint::insertMarker(), removeMarker() to add and remove markers for an existing VgPoint. (#6459)
  • Added: On Android debug output the Tag has been changed from "Vg" to "Vg#threadid (Tid)" (#6472).
  • iOS: VgEAGLView renderOnDemand is now on by default. It reduces CPU use and battery consumption. (#5409, #6423)
  • Android: renderOnDemand is now on by default, this should reduce battery consumption. (#6432)
  • iOS: Multisample is now turned on by default on arm64 architectures (#6430)
  • Samples: added removeInstructionDisplay. (#6433)
  • Sample Android: The Android sample application now uses fragments when displaying the map. (#6244)

Fixed

  • VgIMapModule::VgMapModule:addListener with uninitialized ref pointer crashes application (#6192)
  • setPlaceName displays incorrect scale if preceded by setPlaceIcon(texture),setPlaceIcon(NULL) (#6305)
  • Vg3Module::VgIconMarkerDescriptor mIcon can now accept NULL (will not crash the engine), and it can be updated later via VgMarker::setIcon() (#6340)
  • VgPoint::editMarker() returned the wrong marker (starting from the end) (#6343) Now the marker returned corresponds to the same order as they were pushed in at creation.
  • Typo on documentation of VgTextMarkerDescriptor: eTextAttributeNone -> eVgTextAttributeNone
  • Padding around VgTextMarkers so that they can better be used with VgIconMarkers and different mAnchor configurations (#6310)
  • Creation of dynamic textures from plain buffer contents. VgITextureManager::prepareTextureBuffer is deprecated, use new VgITextureManager::prepareTextureBuffer with dimentions (#2100, #6473).
  • Android SDK with render on demand failed to refresh background (#6498)
  • Android Sample: Bubble view starts off screen the very first time with render on demand (#6499)

Migration Notes

  • Android
    import com.visioglobe.libVisioDevKit.* => import com.visioglobe.libVisioMove.*
    import com.visioglobe.libVisioDevKit.libVisioDevKit; => import com.visioglobe.libVisioMove.libVisioMove;
    libVisioDevKit.castToIMapModule(lMapModule); => libVisioMove.castToIMapModule(lMapModule);
    System.loadLibrary("VisioDevKit"); => System.loadLibrary("VisioMove");
  • iOS
    • Remove libVisioDevKit.a from xcode project and libVisioMove.a
  • If using VgPoint::editMarker(), update the index, as before it was using the wrong order.

Removed

  • VgPointDescriptor::mGeometryConstantSizeMaxScale, has been removed, use the same value VgPointDescriptor::mScale (via VgGeometryDescriptor) (#6419)
  • VgPoint::get/setGeometryConstantSizeMaxScale, has been removed, use get/setScale (#6419)

Known Issues

  • Holding a VgPoint ref and calling setPlaceName/setPlaceIcon on it will detach it from its layer. A new VgPoint with the same ID will be created and attached. (#5852)
  • VgICamera::projectOnScreen returns wrong values with the camera position. It returns (NaN, Nan, +Inf). (#5855)
  • VgIRoute::getLength() inconsistency. Returns either length if the route requests eFastest OR duration if the route requests eShortest. (#5159)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • On iPhone4, the link between a floor may not appear in rare cases. (#5037)

v2.0.9617

Changed

  • Subclassing methods added for VgSpatial and its subclasses. This allow to subclass the result of a VgQuery for example, on Android. (#5895)

Fixed

  • 3D Models are randomly not displayed or animated. (#5922)

v2.0.9517

Added

  • Added VgIGeometry::getLayer. (#5795)
  • Sample: Visioglobe's logo appears at the bottom of the screen. (#5830)
  • Sample: New sample map, Visio Island. (#5824)

Changed

  • Samples: VgMyAvatarDisplay texture is now configurable. (#5826)
  • Samples: VgMyPlaceConfigurationSetter has been updated to display only one logo. Other places will have their ID set as the name. (#5828)
  • Samples: Switch button is now always displayed. (#5831)
  • Samples: VgMyRoutingHelper is now configurable (#5825)
  • Android Sample: Readme now contains instructions for Android Studio. (#5854)
  • iOS Sample: Crash when displaying the bubbleView if projectOnScreen returns NaN or Inf values. (#5792)

Fixed

  • Calling setPlaceIcon(ID, "") after the DB has been loaded will unref (and thus potentially deletes) the VgPoint associated. (#5670)
  • Crash on notifyPositionUpdate if one removes a navigation listener inside of it. (#5791)
  • Small memory leak in very specific situations (#5675)
  • iOS: license problem with iOS7 simulators. UIDevice identifierForVendor returns different values in Simulator iOS 7. (#5790)
  • Android Sample: Location Listeners could modify the position parameter. (#5788)

Known Issues

  • Holding a VgPoint ref and calling setPlaceName/setPlaceIcon on it will detach it from its layer. A new VgPoint with the same ID will be created and attached. (#5852)
  • VgICamera::projectOnScreen returns wrong values with the camera position. It returns (NaN, Nan, +Inf). (#5855)
  • VgIRoute::getLength() inconsistency. Returns either length if the route requests eFastest OR duration if the route requests eShortest. (#5159)
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • QT Sample: Crash on exit after unloading & reset preferences. (#4720)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • Windows :~1Kb memory leak (#4977)
  • Windows-Qt-OpenGL: Sample may crash on some devices if the source files for shaders are not present in data bundle (#5033)
  • On iPhone4, the link between a floor may not appear in rare cases. (#5037)

v2.0.9334

Added

  • VgSpatial visibility can now be controlled by setVisible(bool). It means that VgPoint and VgLines can be hidden/show. This is more efficient than calling setLayer(). (#5557)
  • New callback in VgIPlaceListener to be notified when map database have been loaded (i.e. all POIs have been created). (#5574)
  • Queries can be executed by VgEngine through the new VgQuery class. Currently, it is possible retrieve all VgPoints in the map or specific VgPoint given its ID. (#5576)
  • All VgPoints now have an ID. For VgPoints created by the DB, the ID matches the place’s ID. (#5583)

Changed

  • iOS Sample: ‘Reset Preferences’ now properly destroy the map view controller and creates a new one. (#5591)

Fixed

  • VgPoints and Lines not updated sometimes. (#5565)
  • iOS: crash when the map disappears while the VgBubbleView is displayed. (#5572)
  • iOS Sample: map name comparison was not exact, causing incorrect map to load from the network. (#5592)
  • iOS Sample: crash at start up with an invalid license. (#5560)

Known Issues

  • VgIRoute::getLength() inconsistency. Returns either length if the route requests eFastest OR duration if the route requests eShortest. (#5159)
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • QT Sample: Crash on exit after unloading & reset preferences. (#4720)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • Windows :~1Kb memory leak (#4977)
  • Windows-Qt-OpenGL: Sample may crash on some devices if the source files for shaders are not present in data bundle (#5033)
  • On iPhone4, the link between a floor may not appear in rare cases. (#5037)

v2.0.9263.9287

Changed

  • Android: a new wrapper controls the rendering strategy has been added, VgSurfaceView::setRenderOnDemand. This new interface only helps to have similarities with iOS interfaces. (#5129)
  • Android: Render on demand is now off by default, to be coherent with iOS.

Fixed

  • Render on demand not working properly in some cases. (#5409)
  • Random freeze when playing an animation. (#5530)
  • Performance regression in VDK 2.0.9263.9276 when playing animations. (#5531)

Known issues

  • VgIRoute::getLength() inconsistency. Returns either length if the route requests eFastest OR duration if the route requests eShortest. (#5159)
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • QT Sample: Crash on exit after unloading & reset preferences. (#4720)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • Windows :~1Kb memory leak (#4977)
  • Windows-Qt-OpenGL: Sample may crash on some devices if the source files for shaders are not present in data bundle (#5033)
  • On iPhone4, the link between a floor may not appear in rare cases. (#5037)

v2.0.9263.9276

Added

  • Labels are now loaded only when displayed. (#5413)
  • VgPoints and VgLines are now more dynamic. They have new getter/setters for almost all attributes. This avoids instantiating new descriptors for every changes. (#4727)
  • Samples: new Location Services Framework, to ease integration with a third-party geolocation provider. (#5416)

Changed

  • Loading time reduced. (#5395)
  • Overall performance improvements.
  • iOS: OFFICIAL SUPPORT starts from XCode 5 and iOS 5.1 (#5417)

Fixed

  • VgPoint altitude being corrupted when changing floors. (#5399)
  • If VgResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) is called twice with the same URI in pParameters, it crashes. (#3089)
  • Crash (randomly) when running for a long time with looping animation. (#5440)
  • Sample iOS: VgINavigation::getCurrentInstructionIndex() returns sometimes invalid instruction index. (#5414)
  • Sample iOS: memory leaks when deallocating VgMyViewController after loadConfiguration have been called. (#5329)
  • Sample iOS: crash when a navigation object contains a single instruction. (#5370)

Known issues

  • RenderOnDemand not fully functional. (#5409)
  • VgIRoute::getLength() inconsistency. Returns either length if the route requests eFastest OR duration if the route requests eShortest. (#5159)
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • QT Sample: Crash on exit after unloading & reset preferences. (#4720)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • Windows :~1Kb memory leak (#4977)
  • Windows-Qt-OpenGL: Sample may crash on some devices if the source files for shaders are not present in data bundle (#5033)
  • On iPhone4, the link between a floor may not appear in rare cases. (#5037)

v2.0.9159

Added

  • None for this release.

Changed

  • Documentation updated. (#5124, #5234, #5235, #5305)
  • The VisioDevKit now holds a reference to any VgIGeometry objects (like VgPoint) that are associated with a layer. Remember to call setLayer(NULL) in order to remove the reference. If the object's associated layer wasn't being set to NULL before, then instead of disappearing from the map after clearing the object, it will remain visible. (#5313) Migration Notes (iOS and Qt only because this was performed already for Android): Update the method VgMyRoutingHelper::removeRouteMarkers, so the geometry object's layer is set to null.
    std::map<VgMyRouteCreator::RoutePoint, VgRefPtr< VgPoint > >::iterator lIter;
    for (lIter = mHighlightedRoutePoints.begin(); lIter != mHighlightedRoutePoints.end(); ++lIter)
    {
            lIter->second->setLayer(NULL);
    }

Fixed

  • Sample iOS: Configuration file path was becoming invalid after application is upgraded from the App Store. (#5190)
  • iOS: Application would occasional crash when entering background mode. (#5180)
  • iOS: Map view frozen after returning from another view controller. (#5168)
  • Android: Garbage Collection would occasional cause the map activity to crash. (#5158, #5042)
  • Sample Android: Routing request fail on Android devices with SDK API 11 or greater, after requesting a route. (#5157)
  • Crash on destruction when a resource as been loaded asynchronously. (#3091)
  • Crash when calling asynchronous readFromFileOrURL method before loadConfiguration. (#5247)
  • Crash when the VgIGeometry callback attempts to unregisters itself. (#5249)
  • Crash when the LAST VgIGeometry Callback attempts to unregistering it-self. (#5250)
  • VgIGeometry must be clickable only when at least one Listener is attached. (#5251)
  • Bad rendering of map (geometry z-fighting) within map view. (#5289, #5302)
  • VgIGeometryCallback::VgIGeometryCallback() notification occurring twice. (#5303)
  • Animating to a view position, does not fully get you to that position and the positive pitch (looking up) is not properly handled. (#5311)
  • Sample Android: Removed a dependency on having an internet connection when launching the sample application. ( #5318)

Known issues

  • When compiling for iOS 4.3 Simulator, need to add additional flags. See README.iOS.txt. Note that iOS 4.3 support will be discontinued as testing for it becomes more and more difficult.
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • If VgResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) is called twice with the same URI in pParameters, it crashes. (#3089)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • QT Sample: Crash on exit after unloading & reset preferences. (#4720)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • Windows :~1Kb memory leak (#4977)
  • Windows-Qt-OpenGL: Sample may crash on some devices if the source files for shaders are not present in data bundle (#5033)
  • On iPhone4, the link between a floor may not appear in rare cases. (#5037)

v2.0.9075

Added

  • iOS: Render on demand is now available (deactivated by default). If activated the application will consume less energy and be slightly more responsive. (#5128, #5040)

Migration Notes Within the iOS example in VgMyMapPlaceListenerWithBubble::showBubble, with render on demand, the bubble will not appear until after the screen is touched. The solution is to place a [mVgEAGLView renderScene] after [mVgEAGLView addSubview:mCurrentCallout] to force the postRenderScene Callback to be called.

  • Android: Added multi sampling to Android to smoother rendering. (#5131)

Migration Notes On the Android sample update the VgMySurfaceView constructor methods to pass an extra parameter to the super class (VgSurfaceView).

  • Android: Updated documentation to include the VgSurfaceView class and removed all reference to private methods. (#5138, #5139)

Changed

  • Some minor documentation updates. (#5038)

Fixed

  • Sample Android: A lifecycle issue where the FOV was being set before the VgMySurfaceView had correctly set it's view size. This was causing different FOV's for different screen sizes. (#5134)
  • The camera orientation was sometimes being corrupted by the 2D manipulator. This issue was seen on certain devices with certains maps. (#4830)

Known issues

  • When compiling for iOS 4.3 Simulator, need to add additional flags. See README.iOS.txt. Note that iOS 4.3 support will be discontinued as testing for it becomes more and more difficult.
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • If VgResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) is called twice with the same URI in pParameters, it crashes. (#3089)
  • Crash on destruction when a resource as been loaded asynchronously from VgIResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) (#3091)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • QT Sample: Crash on exit after unloading & reset preferences. (#4720)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • Windows :~1Kb memory leak (#4977)
  • Windows-Qt-OpenGL: Sample may crash on some devices if the source files for shaders are not present in data bundle (#5033)
  • On iPhone4, the link between a floor may not appear in rare cases. (#5037)

v2.0.9036

Added

  • No new features in this version… just a few good old fashioned bug fixes.

Changed

  • Fancy new documentation styles for both Android and iOS. (#3368, #5021)
  • Updated documentation to clearly state that it is highly inadvisable to create objects within one instance of VisioDevKit, then use them within a another.
  • iOS: using mipmapping with non-square / non-power-of-two textures is ignored. (#4984)

Fixed

  • iOS: VgEAGLView no longer flickers on iPhone 5S (#5015)
  • iOS: The method VgITextureManager::createTexture() no longer generates empty (white) textures on with GLES 1.1 with non square power of two textures. (#4984)
  • Crash in VgIGeometry destructor when multiple geometry listeners are registered. (#5009)
  • VgICamera::getHeading() now returns heading angle within the [0, 360] interval (#5020)
  • Animations with duration less than 1 ms are now correctly managed (#5018)
  • Samples: VgMyStackedLayerAndCameraHandler::gotoViewpoint() now correctly handles pitch and heading animations (#5019)
  • Samples: VgMyStackedLayerAndCameraHandler::gotoLookAtPosition() computes position correctly if the input position's SRS is in another layer (#4983)

Known issues

  • When compiling for iOS 4.3 Simulator, need to add additional flags. See README.iOS.txt. Note that iOS 4.3 support will be discontinued as testing for it becomes more and more difficult.
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • If VgResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) is called twice with the same URI in pParameters, it crashes. (#3089)
  • Crash on destruction when a resource as been loaded asynchronously from VgIResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) (#3091)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • QT Sample: Crash on exit after unloading & reset preferences. (#4720)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • Windows :~1Kb memory leak (#4977)
  • Windows-Qt-OpenGL: Sample may crash on some devices if the source files for shaders are not present in data bundle (#5033)
  • On iPhone4, the link between a floor may not appear in rare cases. (#5037)

v2.0.8955

Added

  • VgLineDescriptor has now a visibility ramp.
  • Can now control the clear color at run-time. See VgIEngine::setClearColor. (#2119)
  • Mipmapping now supported for user injected textures. See VgITexture and VgITextureManager (#1836)
  • Can configure the behaviour of the zoom out when the camera reaches the maximum altitude by adding a "guardPolicy" attribute to the "vg2DManipulator" tag within the vg_config.xml. (#2538)
  • Can determine the rendering order of translucent objects. (#4728)
  • Samples: Added the LineStyler MultiLod for better rendering of the route objects for the different LODs. (#4921, #4725)
  • Samples: The movement of the avatar between simulated positions is now animated. (#4874)

Changed

  • Better error messaging when models referenced by the map bundle's configuration can't be found. (#4880)
  • Samples: Better management of the most recent map bundle, after an application update takes place. (#4943)
  • Samples: The simulate position feature nows functions, independant of whether a route is present. (#4775)
  • Samples: Updated the route and navigation icons to have better coherency. The following icon additions/changes have occurred: Added : track_modality_change.png Added : transit_instruction_modality_change.png Changed : track_stair_down.png => track_down.png Changed : track_stair_up.png => track_up.png Changed : transit_instruction_stairs_down => transit_instruction_down.png Changed : transit_instruction_stairs_up.png => transit_instruction_up.png (#4970)

Fixed

  • VgSpatial::setOrientation() has been fixed since the previous release. (#4924)
  • Android : Added the missing classes to VisioDevKit; VgIGeometryConstRefPtr, VgIGeometryRefPtr, VgModelManager. (#4897)
  • Crash within VgPositionToolbox::convert() when called and database hasn't yet been selected. (#4875)
  • Maps were sometimes appearing incorrectly after transitioning from global view to detailed view. (#4867)
  • The NoUnload flag within the map bundle's configuration was not being read correctly by VisioDevKit. (#4863)
  • Double touch gesture on the map was causing a bad manipulation to the camera, causing the map to eventually disappear from view. (#4857)
  • Android : Crash was occurring after calling resetGraphicResources(). (#4837)
  • FAQ section of documentation has been relocated to the new developer web site (check it out!! - https://developer.visioglobe.com/). (#4828)
  • Embedded map images will now appear on the map when the edge comes into view. Previously, the image was only visible when it's center was within the view. (#4808)
  • Lazy texture now only displays the icon after the texture is finished loaded. Prevents empty white squares from before displayed when the map is first loaded. (#4803)
  • Updated documentation to reference local image, rather then via a URL. (#4802)
  • Memory retention issue, where VgReferenced instances are copied or assigned, the original reference counter value was being copied too. (#4764)
  • Android : VgSurfaceView was overriding any GestureDetectors that were added to it. #4761
  • Crash within VisioDevKit if the database contains 2 identical ids on the same floor. (#4714)
  • Error within VgRouteConverter2D that was causing routes to fail due to VgLineDescriptor's containing only a single point. (#4580)
  • Camera was being corrupted when playing an animation with an interpolation functor with the same position at start and end. (#3640)
  • VgIGeometryEvent::getGeometry now returns a VgRefPtr as expected. (#3910)
  • Garbaged Textures sometimes occurring on iOS Device. (#3229)
  • Picking tags not reset when changing datasets. (#3140)
  • Qt : Crash on exit after unloading & reset preferences. (#4720)
  • Android : The VisioDevKit touch gesture state was becoming invalid sometimes when integrated with an Android Navigation Drawer. (#4762)
  • Sample Android : Due to a change in menu option lifecycle (Android 2.0 higher), changed how the clearRoute option was being enabled/disabled. (#4763).
  • Fixed a potential crash if VgINavigationModule::computeNavigation() was called without being passed a valid callback object. (#4777)
  • Samples: VgMyStackedLayerAndCameraHandler's gotoLookAtPosition() position returning slightly incorrect camera view point. (#4778)
  • Vertical camera pitch (i.e. -90) causing an unrecoverable camera manipulation. (#4830)

Known issues

  • When compiling for iOS 4.3 Simulator, need to add additional flags. See README.iOS.txt.
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • If VgResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) is called twice with the same URI in pParameters, it crashes. (#3089)
  • Crash on destruction when a resource as been loaded asynchronously from VgIResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) (#3091)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • QT Sample: Crash on exit after unloading & reset preferences. (#4720)
  • Android: VgSurfaceView is blank after returning to the VgSurfaceView on Android 4.0.X. (#4961)
  • Windows :~1Kb memory leak (#4977)

v2.0.8744

Added

  • Now possible to add VSG objects to the scene. (#2246)
  • VgICamera->setFovX(), allows you to set the field of view manually. This allows you to see exactly the same amount of map (at least on the horizontal direction) regardless of the size and resolution of your screen. (#4711)
  • VgPointDescriptor->mDrawOnTop allows you to prevent VgPoints from being occluded or partially occluded. (#4531)
  • VgAnimation has been overhauled, you can now control the start and end time of individual animation functors.
  • the scale of a VgPoint (actually a VgSpatial) can now be changed without recreating the VgPoint.
  • VgIEngine::replaceNamedTexture. It can replace a named texture by another. It can be used to replace the Fence's texture at runtime for example. (#4578)
  • New VgFloatSplineFunctorDescriptor to interpolate multiple floats. (#4575)
  • Android Sample: Install Activity can now handle direct copy of data bundle. (#4540)

    NOTE*** The navigation example has been updated to use VgICamera->setFovX() this fixes the problem where the map in the detailed view would be very different if you were looking it from a very high resolution screen, versus a low resolution screen. It is possible to revert back to the old behavior by modifying the class VgMyStackedLayerAndCameraHandler.

Changed

  • Added: Animation channels are now referenced as a pair mHighlightedRoutePointsAnimationDescr->mFunctorDescriptors[VgAnimationChannels::mscPositionChannel] = ... becomes: mHighlightedRoutePointsAnimationDescr->mFunctorDescriptors[std::make_pair("",VgAnimationChannels::mscPositionChannel)] =

    The constants that were used for animation channels (see VgAnimationChannels) are now string pairs, so animation code for previous SDK still works.

  • Added: VgSpatial::setAnimation, takes additional parameter, which is the name, which allows to retrieve later, and to store (and play) multiple animations on a single object at once. lLayer->setAnimation(lLayAnim); becomes lLayer->setAnimation("",lLayAnim);
  • Sample Android: Routes containing a "shuttle" modality, now have an increased animation speed and a different color compared with other modalities. This now matches the functionality provided by the Sample iOS. (#3706)

Fixed

  • Excessive memory consumption. (#4553)
  • Labels were shifted of 1 pixel to the right. (#4673, #4513)
  • iOS: VgEAGLView captureToImage does not handle retina displays. (#4549)
  • Fixes memory leak in VgMyBubbleView in iOS example (#4718)
  • Sample iOS: Incorrect Navigation Instruction Language. Using getLanguage instead of getCountry. (#4582)
  • Sample iOS: Fixes memory leak in VgMyBubbleView. (#4718)
  • Sample iOS: UI works correctly under iOS7 (#4719). Problems with instruction view, floor slider and bubble view.
  • iOS AppStore Submission Warning: Non Position Independent Code Executable. (#4529)
  • Sample Android: Action bar menu button not visible on devices wihtout hardware menu button. (#4705)
  • Sample Android: The map bundle is no longer zipped within the applications "asset" directory. Initial start up time is now much quicker. (#4540)
  • Sample Android: Fixed an issue where incorrect routing icons were being displayed on the map when the route contained more than one modality. (#4695)
  • Sample Android: Crash when rotating the screen twice when retreiving the available maps. (#4638)
  • Samples: Added setFovX usage to avoid problems with high dpi screens. (#4709)

Deprecated, but still backward compatible for the moment:

  • VgPoint->setLocalAnimation. It is available as part of the VgSpatial interface for backward compatibility, but only for few versions.
  • VgSpatial->setAnimation(VgRefPtr< VgAnimation >&) changed signature. Old signaure kept for backward compatibility, but only for few versions. (See Changes)

Known issues

  • When compiling for iOS 4.3 Simulator, need to add additional flags. See README.iOS.txt.
  • Crashes if the map databases contains 2 identical IDs on the Floor/LOD pair. (#4714)
  • The camera can be corrupted when playing an animation with an interpolation functor with the same position at start and end. (#3640)
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround: set it to false. (#3359)
  • If VgResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) is called twice with the same URI in pParameters, it crashes. (#3089)
  • Crash on destruction when a resource as been loaded asynchronously from VgIResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) (#3091)
  • 10 bytes memory leak. (#4976)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)
  • Android Sample: Crash when rotating the screen twice when retreiving the available maps (#4638)
  • QT Sample: Crash on exit after unloading & reset preferences. (#4720)

v2.0.8409.8434b

Fixed

  • Android: memory leaks (#4708)
  • Sample Android: memory leaks (#4637)

v2.0.8409.8434a

Fixed

  • iOS: removed a call UIDevice.uniqueIdentifier in one of the libraries we depened on, which causes application to be rejected from AppStore (#4530)
  • iOS: path where licenses are stored. It will handle the case where the Bundle directory changes when updating the application it is recommended to always pass a licenseURL when doing a loadConfiguration(). (#4457)

v2.0.8409

Added

  • International labels support. Labels can be written in almost any languages/scripts. (#4278)
  • Right-To-Left labels automatic layout support. (#4278)
  • MultiSampling on iOS devices. (#4280)

Changed

  • Documentation updated. (#4421)

Fixed

  • On May 10th, 2013, Apple started rejecting application that used UIDevice.uniqueIdentifier. Visioglobe has removed the use of this call. #4457
  • Could not cast VgMarkerDescriptor to one of its subclasses. (#4143)
  • VgIManipulatorManager::getCurrentManipulator returned a wrong manipulator. (#4035)
  • Android Sample: some crashes. (#4028, #4207, #4208, #4279)
  • Android Sample: bubble view was not stretched correctly. (#2358)
  • iOS sample now downloads maps on iOS 4.3 via https (solved by ignoring certificate, would not be a problem if only iOS5+) (#4475)
  • Navigation Instructions now use UTF8 for character encoding in C++ files. (#4487)

Known issues

  • There is a link problem when using XCode 4.6, to circumvent, you need to set Project Build Settings: "Symbols Hidden by Default" => No
  • Updating an existing application which has downloaded a map from the network, will fail to read the map. This is due to changes in the licensing system. WORK AROUND: force reloading the map on first use.
  • 10 bytes memory leak. (#4976)

v2.0.8046b

Fixed

  • Multitouch on QT. (#4012)

Known issues

  • There is a link problem when using XCode 4.6, to circumvent, you need to set Project Build Settings: "Symbols Hidden by Default" => No

v2.0.8046a

Fixed

  • iOS sample compilation for LLVM+GCC4.2 compiler (note this compiler will be deprecated in next release of XCode (4.7?)

Known issues

  • There is a link problem when using XCode 4.6, to circumvent, you need to set Project Build Settings: "Symbols Hidden by Default" => No

v2.0.8046

Added

  • Qt widgets can be added over the VisioDevKit's view. See the QtVisioSample for demo. (#3969)
  • Added VgIDataset::unloadConfiguration() to properly unload a configuration. (#3903)
  • Added VgIDataset::getCachedLicenseFilenameForConfiguration() to get the OS-dependant path of the cached license file. (#3902)
  • Added VgISimpleGestureManipulatorListener::onClick and onDoubleClick. (#3958)
  • Graphics resources can be re-created. Added VgIEngine::resetGraphicResources(). (#1190) Android code greatly simplified : developper don't have to bother about save/restore states. No more restore/postRestore/release. (#3959)
  • Sample: Maps can be downloaded from Visioglobe's MapManager. (#3743, 3851-53, 3963-66)

Changed

  • Data loading time speedup.
  • Rendering performances on QT improved.
  • VgTextMarkerDescriptor::create() method added to be consistent with other descriptor creation. (#3880)
  • Android Javadoc enum comments added. (#3724)
  • Documentation updated
  • Sample: User experience improved (#3954-58, 3733,36,38) Single click for Detailed View, and use the new button to go back to global view. Maps orientation is reset on GlobalView.
  • Sample: Visual Studio project is now 2010+ compilant. The VgQtRules Custom build Rules file has been deleted. Every single Qt files have new its own Custom Build Step. (#3925)
  • Sample: VgMyTextureLoader uses now String instead of enum. (#3881)

Fixed

  • Crash if glyph code is not UTF8. (#2853, #3911)
  • Background sometimes gets drawn twice upon window resizing. (#3756)
  • QT view not refreshed when rendering constantly. (#3804)
  • Crash when computing route between VgPositions (and not IDs) (#3907)
  • Random crash when clicking on a Point Marker. (#3926)
  • Crash when having two VgEAGLView active at the same time. (#3960)
  • Sample: QT Resources were not compiled. (#3967)

Known issues

  • The camera can be corrupted when playing an animation with an interpolation functor with the same position at start and end. (#3640)
  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround : set it to false. (#3359)
  • If VgResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) is called twice with the same URI in pParameters, it crashes. (#3089)
  • Crash on destruction when a resource as been loaded asynchronously from VgIResourceManager::readFromFileOrURL(const VgResourceRequestParameters& pParameters) (#3091)
  • Sample: if VgINavigationRequestParameters::mMergeFloorChangeInstructions equals true, the instruction will always say "Go up", even if going downstairs. (#3982)

v2.0.7729

Added

  • Multi-modal routing. It provides 2 new routing concepts : modalities (pedestrian, shuttle, etc etc) and attributes (stair, escalator). (#3697)
  • Multi-touch support with Qt framework. (#3592)
  • Animations can be looped. (#3594)
  • New animation functors : Axial rotation quaternion and sinusoidal offset. (#3595)

Changed

  • Improved memory management : more classes inherit from VgReferenced. Client-side code is simplified. (#3717)
  • All functors have been renamed to match their operation type rather than the channel they were originally written for. (#3622)
  • Sample: VgMyStackLayerAndCameraHandler can now switch view mode without animation. (#3550, #3578)
  • Sample: iOS Sample slider now displays the real layer's name (as specified in the configuration file), (#3533)

Fixed

  • Regression in v2.0 : background color was not configurable anymore. (#3553)
  • Sample: rare crashes in our sample when switching from the detailed view to the global view after a zoom out. (#3552)
  • Sample: calling VgMyStackedLayerAndCameraHandler::gotoViewpoint twice with the same position corrupts the camera. (#3639, #????)

Known issues

  • The camera can be corrupted when playing an animation with an interpolation functor with the same position at start and end. (#3640)

v2.0

Added

  • Multi-layer support
  • New concepts : InstanceFactory, Markers, Spatial, Layer, Links and SRS. Check out our documentation for more details.

Changed

  • Drastically reduced CPU and GPU usage (thus battery consumption as well)
  • VgIPOI renamed into VgPoint.
  • VgILineString renamed into VgLine.
  • VgNearPlaces renamed into VgNearPlace. (#3225)
  • Removed GUI module (#2552, #2553)
  • User's SDK Objects are now all instanciated from a global InstanceFactory.
  • Documentation improved and updated with new concepts. (#2854, #2855)
  • All samples have been merged into a single one : sample/navigationModule. The sample architecture has been entirely refactored.

Fixed

  • queryPlaceDescriptor does not return valid Pitch and Heading. (#3454)
  • Error message at startup: 'libegl call to opengl es api with no current context (logged once per thread)'. (#3452)
  • Some inner classes were not properly exported on Android. (#2477)
  • Unexpected near plane clipping (#2264)

Known issues

  • VgITextureManager::prepareTextureBuffer not implemented on Android. (#2100)
  • Some Android devices do not support the flag 'android:hardwareAccelerated="true"'. Workaround : set it to false. (#3359)
  • Position injection on Windows-QT can sometimes crashes when reaching the route end. (#3331)
VisioMove 2.1.22, Visioglobe® 2016