Skip to content

Releases: CartoDB/mobile-sdk

4.4.7

10 Oct 07:10
Compare
Choose a tag to compare

This version brings several important fixes and minor features to 4.4.0 - 4.4.6 versions. No breaking changes, so it is a drop-in replacement to older 4.4.x versions.

New features:

  • Added support for generic expressions in CartoCSS 'Map' element.
  • Added support for CartoCSS 'line-miterlimit' property, tweaked join handling in case of offsets/patterns.
  • Generalized CartoCSS font support, added support expression based face names

Changes, fixes:

  • Fixed Angle UWP related threading issues, if multiple views were used.
  • Fixed minor synchronization issue with RasterTileLayer
  • Improved handling of null blob in TileData
  • Improved normal map building for overzoomed tiles, resulting is less artifacts.
  • Improved reporting of .so loading errors on Android (re-throw original exception, instead of just logging/failing afterwards)
  • Added handling of OnPointerExited event in UWP MapView
  • Build script fixes, fixes related to latest Python versions, Android NDK25 support

Install with package management

  • Android gradle:

    compile 'com.carto:carto-mobile-sdk:4.4.7@aar'

  • iOS and Mac Catalyst CocoaPod:

  pod 'CartoMobileSDK', '4.4.7'
  pod 'CartoMobileSDK-Metal', '4.4.7'

Note: Bitcode in 4.4.7 is generated using Xcode 13.2.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using ''CartoMobileSDK-Metal' framework. Also, in order to use iOS Simulator with the SDK on M1 Macs, 'CartoMobileSDK-Metal' framework should be used due to bugs in legacy OpenGL implementation on such devices.

  • Swift Package Manager (iOS and Mac Catalyst):
https://github.com/nutiteq/mobile-sdk-ios-swift-package.git
https://github.com/nutiteq/mobile-sdk-ios-metal-swift-package.git

Note: Bitcode in 4.4.7 is generated using Xcode 13.2.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using 'Metal' framework.

  • Xamarin and Visual Studio Package Manager (nuget) console:
  PM> Install-Package CartoMobileSDK.iOS -Version 4.4.7
  PM> Install-Package CartoMobileSDK.Android -Version 4.4.7
  PM> Install-Package CartoMobileSDK.UWP -Version 4.4.7

4.4.6

16 Jun 12:23
Compare
Choose a tag to compare

This version brings several important fixes and minor features to 4.4.0 - 4.4.5 versions. No breaking changes, so it is a drop-in replacement to older 4.4.x versions.

New features:

  • Added getTimeout, setTimeout methods to CartoOnlineTileDataSource, MapTilerOnlineTileDataSource and HTTPTileDataSource

Changes, fixes:

  • Fixed iOS specific issue related to SDK not properly handling 'didBecomeActive' notifications, resulting in MapView not being rendered.
  • Fixed critical synchronization issue on UWP platform related to stopping rendering loop.
  • Fixed flickering issues when MapView was resized on UWP platform.
  • Fix global pattern alignment when using 'polygon-pattern' symbolizer.
  • Fixed minor rendering issue with lines joined at steep angles when BEVEL/ROUND join modes were used.

Install with package management

  • Android gradle:

    compile 'com.carto:carto-mobile-sdk:4.4.6@aar'

  • iOS and Mac Catalyst CocoaPod:

  pod 'CartoMobileSDK', '4.4.6'
  pod 'CartoMobileSDK-Metal', '4.4.6'

Note: Bitcode in 4.4.6 is generated using Xcode 13.2.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using ''CartoMobileSDK-Metal' framework. Also, in order to use iOS Simulator with the SDK on M1 Macs, 'CartoMobileSDK-Metal' framework should be used due to bugs in legacy OpenGL implementation on such devices.

  • Swift Package Manager (iOS and Mac Catalyst):
https://github.com/nutiteq/mobile-sdk-ios-swift-package.git
https://github.com/nutiteq/mobile-sdk-ios-metal-swift-package.git

Note: Bitcode in 4.4.6 is generated using Xcode 13.2.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using 'Metal' framework.

  • Xamarin and Visual Studio Package Manager (nuget) console:
  PM> Install-Package CartoMobileSDK.iOS -Version 4.4.6
  PM> Install-Package CartoMobileSDK.Android -Version 4.4.6
  PM> Install-Package CartoMobileSDK.UWP -Version 4.4.6

4.4.5

09 Mar 10:06
Compare
Choose a tag to compare

This version brings several fixes and minor features to 4.4.0 - 4.4.4 versions. No breaking changes, so it is a drop-in replacement to older 4.4.x versions.

New features:

  • Added setFeatureIdOverride and isFeatureIdOverride methods to MBVectorTileDecoder
  • Added isAnimationStarted method to MapInteractionInfo

Changes, fixes:

  • Fixed critical issue with non-ASCII string wrapping on UWP platform
  • Fixed missing onMapInteraction callback on double tap zoom
  • Fixed PersistentCacheTileDataSource tile preload canceling not working
  • Fixed several cases where tile datasources could be accessed with tile coordinates out of bounds
  • Changed user initiated zoom behaviour when PIVOT_MODE_CENTERPOINT mode is used, now screen center is used as a pivot point.
  • Updated harfbuzz, libwebp and pugixml dependencies to latest stable versions
  • Fixed stack overflow issue in external css2xml utility due to missing rules for EXP/LOG functions
  • Added 'build id' to Android shared libraries, to help analyze Android native stack traces

Install with package management

  • Android gradle:

    compile 'com.carto:carto-mobile-sdk:4.4.5@aar'

  • iOS and Mac Catalyst CocoaPod:

  pod 'CartoMobileSDK', '4.4.5'
  pod 'CartoMobileSDK-Metal', '4.4.5'

Note: Bitcode in 4.4.5 is generated using Xcode 13.2.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using ''CartoMobileSDK-Metal' framework.

  • Swift Package Manager (iOS and Mac Catalyst):
https://github.com/nutiteq/mobile-sdk-ios-swift-package.git
https://github.com/nutiteq/mobile-sdk-ios-metal-swift-package.git

Note: Bitcode in 4.4.5 is generated using Xcode 13.2.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using 'Metal' framework.

  • Xamarin and Visual Studio Package Manager (nuget) console:
  PM> Install-Package CartoMobileSDK.iOS -Version 4.4.5
  PM> Install-Package CartoMobileSDK.Android -Version 4.4.5
  PM> Install-Package CartoMobileSDK.UWP -Version 4.4.5

4.4.4

12 Jan 11:50
Compare
Choose a tag to compare

This version brings several fixes and minor features to 4.4.0 - 4.4.3 versions. No breaking changes, so it is a drop-in replacement to older 4.4.x versions.

New features:

  • Added getDefaultLayerBuffer, setDefaultLayerBuffer methods to GeoJSONVectorTileDataSource. This allows controlling buffer size (in tile pixels) for vector tile layers.
  • Feature id is now accessible in CartoCSS using 'mapnik::feature_id' variable

Changes, fixes:

  • Restored support for arbitrary expressions in transform arguments (available in 4.3.x but removed from 4.4.0-4.4.3)
  • Improved batching for transformed geometries, all non-translated geometries can be now added into a single batch.
  • Fixed shield symbolizer issues where background was affected by fill color.
  • Fixed several clipping related issues in GeoJSONVectorTileDataSource
  • Fixed issues with 'feature id' handling in vector tile renderer when feature was used in multiple layers
  • Fixed wrong compilation profile used for UWP builds, resulting in missing a few features
  • Dropped PersistentCacheTileDataSource from 'lite' compilation profile, making 'lite' SDK build smaller
  • Improved EAGLContext handling for iOS, workaround for a crash when a view is moved out of a window and then back
  • Minor tweaks to built-in styles, related to admin boundaries
  • Minor fixes related to non-standard SDK profiles
  • Minor optimizations
  • Updated harfbuzz dependency to the latest stable version

Install with package management

  • Android gradle:

    compile 'com.carto:carto-mobile-sdk:4.4.4@aar'

  • iOS and Mac Catalyst CocoaPod:

  pod 'CartoMobileSDK', '4.4.4'
  pod 'CartoMobileSDK-Metal', '4.4.4'

Note: Bitcode in 4.4.4 is generated using Xcode 13.2.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using ''CartoMobileSDK-Metal' framework.

  • Swift Package Manager (iOS and Mac Catalyst):
https://github.com/nutiteq/mobile-sdk-ios-swift-package.git
https://github.com/nutiteq/mobile-sdk-ios-metal-swift-package.git

Note: Bitcode in 4.4.4 is generated using Xcode 13.2.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using 'Metal' framework.

  • Xamarin and Visual Studio Package Manager (nuget) console:
  PM> Install-Package CartoMobileSDK.iOS -Version 4.4.4
  PM> Install-Package CartoMobileSDK.Android -Version 4.4.4
  PM> Install-Package CartoMobileSDK.UWP -Version 4.4.4

4.4.3

14 Dec 10:01
Compare
Choose a tag to compare

This version brings several important fixes and performance improvements to 4.4.0 - 4.4.2 versions. We recommended migrating to this version. No breaking changes, so it is a drop-in replacement to older 4.4.x versions.

New features:

  • Added getRendererLayerFilter, setRendererLayerFilter, getClickHandlerLayerFilter, setClickHandlerLayerFilter methods to VectorTileLayer. These methods allow ignoring certain layers for rendering or click detection.
  • Added reverse function support to CartoCSS 'text-transform'
  • Added an experimental option to configure various VectorTileLayer parameters via project.json nutiparameters
  • Added support for configuring vector tile map parameters via project.json

Changes, fixes:

  • Optimized parsing and loading of complex CartoCSS styles, improving performance by 20-40% for complex styles
  • Optimized loading of compiled Mapnik styles by using symbolizer cache, improving performance by up to 50% for complex styles
  • Fixed critical coordinate scaling issue in iOS Metal build (occurs only with iPhone 6 Plus, iPhone 7 Plus and iPhone 8 Plus devices)
  • Fixed regression in GeoJSONVectorTileDataSource which caused parsing failure with features with non-object properties
  • Fixed TileLayer not properly recalculating tiles when visibility changes, causing layer to remain hidden.
  • Fixed deadlock in ClusteredVectorLayer when its data source is non-empty with all elements being hidden
  • Fixed stale tiles remaining in caches when offline packages were removed
  • Fixed subtle synchronization issues in PackageManager
  • Added better support for 'none' keyword in CartoCSS
  • Added support for parallel requests to ValhallaOfflineRoutingService
  • Minor improvements to error reporting for CartoCSS issues
  • Minor speed and size optimizations
  • Improved Android documentation by hiding unneeded wrapping related details
  • Dropped 'doclava' based javadoc generation, documentation for Android is now based on standard JDK doclet
  • Added javadoc to published Android artifacts to Maven central
  • Fixes to build scripts
  • Updated internal Valhalla, boost, freetype, sqlite, libjpeg-turbo, harfbuzz, botan and protobuf libraries to latest stable versions

Install with package management

  • Android gradle:

    compile 'com.carto:carto-mobile-sdk:4.4.3@aar'

  • iOS and Mac Catalyst CocoaPod:

  pod 'CartoMobileSDK', '4.4.3'
  pod 'CartoMobileSDK-Metal', '4.4.3'

Note: Bitcode in 4.4.3 is generated using Xcode 13.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using ''CartoMobileSDK-Metal' framework.

  • Swift Package Manager (iOS and Mac Catalyst):
https://github.com/nutiteq/mobile-sdk-ios-swift-package.git
https://github.com/nutiteq/mobile-sdk-ios-metal-swift-package.git

Note: Bitcode in 4.4.3 is generated using Xcode 13.1 and could be incompatible with earlier (12.x) Xcode versions
Note: Mac Catalyst apps are supported only using 'Metal' framework.

  • Xamarin and Visual Studio Package Manager (nuget) console:
  PM> Install-Package CartoMobileSDK.iOS -Version 4.4.3
  PM> Install-Package CartoMobileSDK.Android -Version 4.4.3
  PM> Install-Package CartoMobileSDK.UWP -Version 4.4.3

4.4.2

30 Sep 12:23
Compare
Choose a tag to compare

This version brings several smaller features and fixes to 4.4.1. We recommended migrating to this version. No breaking changes, so it is a drop-in replacement to 4.4.0 and 4.4.1.

New features:

  • Added setSimplifyTolerance, getSimplifyTolerance methods to GeoJSONVectorTileDataSource
  • Added support for complex CartoCSS selectors ('when' selectors)
  • Added support for 'bevel', 'none' linejoin modes and 'square' linecap mode in CartoCSS.
  • Added 'marker-color' property to CartoCSS that can be applied to both file-based markers and built-in markers.

Changes, fixes:

  • Started using API 31 as compilation target on Android
  • Started using Xcode 13 for compilation platform on iOS
  • Implemented better error reporting of undefined variables in CartoCSS translator
  • Fixed deadlock in NMLModel setRotation(axis, angle) method caused by improper synchronization
  • Reimplemented setLayerFeatureCollection method in GeoJSONVectorTileDataSource to make it faster by skipping serialization/parsing steps.
  • Implemented switching to 'bevel' linejoin at sharp angles when using 'miter' linejoin
  • Fixed multiple issues with string escaping in parsers and generators in CartoCSS and MapnikVT library.
  • Fixed minor issues related to internal expression -> predicate conversion in MapnikVT library.
  • Fixed dash array generation for subpixel wide lines when rendering vector tiles
  • Revised feature id generation logic in GeoJSONVectorTileDataSource, SDK now uses feature id, if available or a deterministic auto id generation when not available.
  • Reduced default simplication tolerance for GeoJSONVectorTileDataSource, new default value should not generate visible simplification artifacts
  • Converted CartoCSS 'marker-opacity' property to a view-level parameter, so it can be dependent on 'view::zoom'.
  • Updated protobuf and harfbuzz libraries to the latest versions
  • Disabled Sqlite locking extensions on iOS and MacCatalyst builds
  • Fixed style fallback version in CartoPackageManager (when using startStyleDownload method)
  • Changed exception type when encoutering unsupported geometry in GeoJSONVectorTileDataSource
  • Minor optimizations

Install with package management

  • Android gradle:

    compile 'com.carto:carto-mobile-sdk:4.4.2@aar'

  • iOS and Mac Catalyst CocoaPod:

  pod 'CartoMobileSDK', '4.4.2'
  pod 'CartoMobileSDK-Metal', '4.4.2'

Note: Bitcode in 4.4.2 is generated using Xcode 13 and could be incompatible with earlier Xcode versions
Note: Mac Catalyst apps are supported only using ''CartoMobileSDK-Metal' framework.

  • Swift Package Manager (iOS and Mac Catalyst):
https://github.com/nutiteq/mobile-sdk-ios-swift-package.git
https://github.com/nutiteq/mobile-sdk-ios-metal-swift-package.git

Note: Bitcode in 4.4.2 is generated using Xcode 13 and could be incompatible with earlier Xcode versions
Note: Mac Catalyst apps are supported only using 'Metal' framework.

  • Xamarin and Visual Studio Package Manager (nuget) console:
  PM> Install-Package CartoMobileSDK.iOS -Version 4.4.2
  PM> Install-Package CartoMobileSDK.Android -Version 4.4.2
  PM> Install-Package CartoMobileSDK.UWP -Version 4.4.2

4.4.1

31 Aug 08:38
Compare
Choose a tag to compare

This version brings several smaller features and fixes to 4.4.0. We recommended migrating to this version. No breaking changes, so it is a drop-in replacement to 4.4.0.

Important: due to bitcode recompilation bug in original 4.4.1, a hotfix version 4.4.1.1 is available. Please use this version instead when targeting iOS. Other platforms are not affected.

New features:

  • Metal build of iOS framework (CartoMobileSDK-Metal) now supports Mac Catalyst apps
  • Added ClickInfo class, to store click related information (click type, duration)
  • New mode for reducing click event latency when double click handling is not required
  • Additional CartoCSS features (line offsetting, text-wrapping parameters, color operators)

Changes, fixes:

  • Re-implemented 'click type detection disabled' mode, click events are now triggered when finger is lifted
  • Added setDoubleClickDetection, isDoubleClickDetection methods to Options class to allow reducing click handling latency
  • Added setLongClickDuration, getLongDuration methods to Options class to allow configuring long click detection duration
  • Added setDoubleClickMaxDuration and getDoubleClickMaxDuration methods to Options class to allow configuring double click max duration
  • Classes like MapEventListener, VectorElementClickInfo now contain ClickInfo instance for additional click attributes
  • Added support for decoding proprietary Apple 'PNG' files
  • Fixed decoding of specific bitmap formats when using CreateBitmapFromUIImage on iOS
  • Fixed Android bitmap decoding when non-standard stride sizes are used
  • Fixed tile layer refreshing issue when data source bounds changed
  • Fixed old view state being used when adding labels to the vector layer
  • Updated built-in style asset, tweaked displaying of multilingual names
  • Updated MetalANGLE library to the latest stable version, tweaked build settings to produce smaller binaries
  • Updated font rendering libraries, tesselation library to the latest stable version
  • Fixed excessive initialization times when MBTilesTileDataSource was used with databases not containing zoom level metainfo
  • Fixed potential memory leaks on iOS when network requests fail
  • Added 'extends' support to JSON project files, to reduce copy-paste declarations in map project files
  • Added support for CartoCSS 'line-offset', 'line-pattern-offset' attributes
  • Added support for CartoCSS 'text-wrap-character' and 'shield-wrap-character' attributes
  • Added the following color manipulation functions to CartoCSS: hsl, hsla, red, green, blue, alpha, hue, saturation, lightness
  • Fixed handling of 'text-min-distance' and 'shield-min-distance' CartoCSS parameters
  • Improved label id generation for repeated labels, creating more stable label placements
  • Fixed SDK/MetalANGLE linking issue with iOS Metal build causing uncaught exceptions due to networking problems
  • Minor tweaks to built-in styles
  • Updated libjpeg, libwebp, freetype, harfbuzz, miniz to latest stable versions
  • Various minor optimizations
  • Fixed bitcode recompilation bug on iOS due to unsupported optimization flags, fix is available in 4.4.1.1 version.

Install with package management

  • Android gradle:

    compile 'com.carto:carto-mobile-sdk:4.4.1@aar'

  • iOS CocoaPod:

  pod 'CartoMobileSDK', '4.4.1.1'
  pod 'CartoMobileSDK-Metal', '4.4.1.1'
  • Xamarin and Visual Studio Package Manager (nuget) console:
  PM> Install-Package CartoMobileSDK.iOS -Version 4.4.1
  PM> Install-Package CartoMobileSDK.Android -Version 4.4.1
  PM> Install-Package CartoMobileSDK.UWP -Version 4.4.1

4.4.0

21 Jul 09:06
Compare
Choose a tag to compare

This version is a major update and brings several new features, major performance improvements and lots of fixes. It is recommended to migrate to this version, as there are no further planned releases for 4.3.x series.

Important: previous SDK versions for Android were distributed via jcenter repository. As jcenter is now closed, we have moved to mavenCentral. If using Gradle for your builds, simply replace jcenter() in 'repositories' section with mavenCentral().

Important: previous SDK versions for iOS were distributed as fat frameworks. Starting from 4.4.0 we have moved to newer xcframework format. In addition, there are now two SDK builds for iOS: legacy version ('CartoMobileSDK') and Metal version ('CartoMobileSDK-Metal'). Metal version uses OpenGLES to Metal translator, thus does not depend on deprecated iOS APIs, but is significantly larger and a bit slower.

New requirements:

  • Android 3.0 (API 11), previously 2.3 (API 9)
  • iOS 9.0, previously 7.0
  • CocoaPods 1.10.1, previously 1.6
  • (Optional) Carthage 0.38, previously 0.35

Key highlights:

  • Much faster CartoCSS processing and compilation. Loading and initialization of CARTO vector layers is now about 3x faster.
  • 30-40% faster vector tile decoding performance and 10% lower memory consumption during decoding.
  • Reworked tile loading and prefetching algorithms to provide more responsive UX.
  • Various compilation tweaks, making SDK binaries 10-15% smaller on various platforms.
  • 3D NML models can now be used together with bitmap markers, with same basic features (auto orientation, transition animations, overlap analysis)
  • Upgraded built-in Valhalla routing engine to version 3.1.1 (SDK 4.3.x included 3.0.9).
  • New TextureMapView class for Android for applications that need to use MapView with fragments.
  • Additional map callback that provides detailed information about the user interactions.
  • There are now two prebuilt versions of iOS frameworks: a legacy version using OpenGLES rendering backend and a new version using OpenGLES -> Metal API converter that does not use deprecated iOS APIs.
  • iOS builds now use 'xcframework' distribution format and include simulator binary for M1 Macs.
  • SDK built-in vector styles now include fonts and glyphs for Arabic, Hebrew, Georgian and Armenian locales.

New features:

  • Added TextureMapView class and MapViewInterface interface to the SDK. TextureMapView is a subclass of android.view.TextureView and behaves better in apps built from fragments. MapViewInterface provides a common interface for both MapView and TextureMapView.
  • Added getDescription method to RoutingInstruction. This provides textual description of the instruction. The description depends on the routing instruction, it can be either generated by the engine or by the SDK.
  • Added UI based interaction callback to MapEventListener (onMapInteraction method). The callback receives detailed information about the type of the interaction.
  • NMLModel is now a subclass of Billboard. This allows using billboard features like special scaling, orientation modes and transition animations for 3D models.
  • Introduced carto.utils.DontObfuscate annotation for Android Java library. This can be used to finetune Proguard obfuscation rules.

Removed features and API changes:

  • Removed deprecated compressToPng method from Bitmap (replaced with compressToPNG)
  • Removed deprecated NMLModel constructors (replaced with constructors with NMLModelStyle argument)
  • Removed getGeometryTagFilters and setGeometryTagFilters methods from RoutingRequest. They are replaced with getPointParameter/setPointParameter methods (with 'geometry_tag_filter' parameter)
  • Removed setResolution method from TorqueTileDecoder, changed 'resolution' definition for getResolution method to reflect actual resolution defined in CartoCSS

Changes:

  • Tile prioritization during tile loading has been reworked to provide quicker feedback, by fetching shared parent tiles when appropriate
  • Cancelling of tile loading and decoding is more flexible, puts less pressure on tile caches
  • Removed duplicate points in Valhalla routing results, consecutive manuevers can now share the endpoints. This uses the same convention as other routing engines, but may potentially break apps that depend on the old behaviour.
  • SolidLayer is now deprecated. If really needed, a custom VectorTileLayer or RasterTileLayer can be used instead.
  • CartoOnlineRoutingService is now deprecated, third party online routing services should be used instead
  • Address is now depreacted and will be removed in future versions. use GeocodingAddress instead (currently a subclass of Address)
  • setRotationAngle, getRotationAngle methods are deprecated in NMLModel, use setRotation, getRotation instead.
  • Added setRotationAxis, getRotationAxis methods to NMLModel
  • Added setOrientationMode, getOrientationMode, setScalingMode, getScalingMode methods to NMLModelStyleBuilder
  • Added getOrientationMode, getScalingMode, getModelAsset methods to NMLModelStyle
  • Implemented smarter caching logic for CARTO online tile sources. New implementation can keep larger number of tiles in memory and uses better zoom-based tile prioritization during eviction.
  • Added getLayerBlendSpeed, setLayerBlendSpeed, getLabelBlendSpeed, setLabelBlendSpeed methods to VectorTileLayer, for controlling transition animations.
  • Added getTileBlendSpeed, setTileBlendSpeed methods to RasterTileLayer, for controlling transition animations.
  • All street names (separated using '/') are now included in Valhalla routing results
  • Fixed billboard size animations not working when using BILLBOARD_SCALING_WORLD_SIZE size mode
  • Fixed potential native crash when geocoding databases were corrupted
  • Fixed potential native crash when map packages were corrupted
  • Tweaked memory usage of offline packages, fixed potential issues with read/write access rights
  • Made SolidLayer work in globe mode
  • Added bitmap argument nullptr check to SolidLayer constructor
  • Fixed lighting direction calculation in NMLModelLODTreeRenderer (wrong sign)
  • Added getAnimationDuration method to TorqueTileDecoder
  • Added Resolution property to TorqueTileDecoder for dotnet APIs.
  • Fixed getParent method in MapTile to handle negative tile coordinates
  • Fixed NMLModel rotation in globe rendering mode
  • Fixed complex offline geocoding queries failing due to memory constraints
  • Fixed slow loading of Torque tiles
  • Optimized handling of color interpolation expression in vector tile renderer
  • Started using latest FreeType and HarfBuzz libraries to render localized names
  • Replaced 'msdfgen' Signed Distance Field glyph render with official FreeType SDF glyph renderer.
  • Reduced memory reallocation when decoding vector tiles
  • Dropped glyph preloading when generating fonts to speeds up map initialization
  • Improved error reporting for CartoCSS interpolation expression issues
  • Better handling and optimization of 'match' operator when compiling CartoCSS property sets
  • Implemented various MBVT decoder optimizations, including decoded geometry cache
  • Added extra vector tile label sorting rule, to make visible label selection more deterministic
  • Added model color support for NML models. This can be set using setColor method in NMLModelStyleBuilder.
  • Added support for generic 'frame-offset' filters for Torque styles. Previously only equal comparison was available.
  • Added support for cumulative data aggregation for Torque layers
  • Changed vector tile background rendering order, fixed stencil configuration detection when FBOs are used.
  • Optimized rendering of VT layers with 'comp-op' defined.
  • Fixed potential issues when calculating intersections with 3D polygons.
  • Changed internal vector tile rendering order, rendering is done done strictly per-layer, not per-tile. This fixes issues when stencil buffer is not available or switched off (Torque rendering).
  • Fixed orientation angle interaction with line placements in TextSymbolizer
  • Tweaks to marker placements on line geometry when using MarkersSymbolizer
  • Changed argument types of setCapacity in cache classes from unsigned int to unsigned long on iOS, so that >4GB caches can be used on 64-bit targets.
  • Fixed CartoCSS string-expression evaluation issue, causing some misoptimizations
  • GeoJSONGeometryReader and GeoJSONGeometryWriter are now RFC7946 compliant and accept null geometry in features.
  • GeoJSONVectorTileDataSource now supports features with null geometry and non-object properties
  • Added support for shorthand-encoding of 'nutiparameters' in project.json files
  • SDK now catches feature processing exceptions earlier and report thems without causing whole tile decoding to fail.
  • Fixed rendering artifacts with larger halo radiuses in vector tile renderer
  • Fixed potential synchronization issues regarding tile invalidation and caching
  • Fixed layers not being correctly refreshed in rare cases
  • Implemented more robust time interval calculation for transition animations
  • Fixed potential deadlock issue with TouchHandler class. Removed redundant onMapMoved callbacks.
  • Fixed potential deadlocks in AnimationHandler and KineticEventHandler when certain SDK APIs were used in MapEventListener callbacks
  • Changed compilation flags for 32-bit Android targets to make then compatible with really old devices not supporting NEON extensions
  • Enabled Link Time Code Generation for UWP builds. This results in smaller and faster binaries.
  • Optimized protobuf library compilation, making SDK binaries 3-5% smaller.
  • Replaced Cryptopp library dependency in SDK with Botan library, fixing portability issues
  • Lots of fixes in build scripts

Install with package management

  • An...
Read more

4.3.5

14 May 09:05
Compare
Choose a tag to compare

This is a maintenance release bringing stability improvements and bug fixes. No breaking changes, so it is a drop-in replacement to 4.3.0, 4.3.1, 4.3.2, 4.3.3 and 4.3.4.

Important: previous SDK versions for Android were distributed via jcenter repository. As jcenter is now closed, we have moved to mavenCentral. If using Gradle for your builds, simply replace jcenter() in 'repositories' section with mavenCentral().

Changes/fixes:

  • Fixed handling of 'CANCEL' touch actions in Android. This caused mishandling of following touch events.
  • Fixed thread race issue when connecting Java directors, causing issues with classes instantiaton
  • Changed iOS framework packaging. Fixed several issues with header files, added support for xcframeworks.
  • Fixed performance issue when calculating scaling of 3D polygons

Install with package management

  • Android gradle:

    compile 'com.carto:carto-mobile-sdk:4.3.5@aar'

  • iOS CocoaPod:

    pod 'CartoMobileSDK', '4.3.5'

  • Xamarin and Visual Studio Package Manager (nuget) console:

  PM> Install-Package CartoMobileSDK.iOS -Version 4.3.5
  PM> Install-Package CartoMobileSDK.Android -Version 4.3.5
  PM> Install-Package CartoMobileSDK.UWP -Version 4.3.5

4.3.4

05 Feb 15:38
Compare
Choose a tag to compare

This update includes stability improvements, bug fixes and some new features. No breaking changes, so it is drop-in replacement to 4.3.0, 4.3.1, 4.3.2 and 4.3.3. We suggest everyone to update apps to this version.

New features:

  • Added support for setting routing parameters to SGREOfflineRoutingService (setRoutingParameter, getRoutingParameter methods)
  • Added 'placement-priority' support for vector tile labels, allowing setting priorities for individual labels
  • Added onSurfaceChanged event to MapRendererListener. This method is called when map is resized.

Changes/fixes:

  • Reduced rendering artifacts of wide dashed lines in vector tile renderer
  • Better precision when compressing vector tile coordinates, fixes rare visual artifacts
  • Fixed critical Xamarin iOS synchronization redrawing/disposing issues, causing exceptions
  • Fixed VectorTileLayer rendering issue related to opacity handling
  • Fixed watermark options being ignored after initial rendering
  • Fixed non-opaque highlight/shadow color handling in HillshadeRasterTileLayer
  • Fixed out of range memory access issues when packing large VT geometries
  • Fixed an issue in VT line clipping implementation causing missing initial vertices in border cases
  • Optimizations when converting GeoJSON data to vector tile format (GeoJSONVectorTileDataSource)
  • Additional safety checks in Android bitmap conversions

Install with package management

  • Android gradle:

    compile 'com.carto:carto-mobile-sdk:4.3.4@aar'

  • iOS CocoaPod:

    pod 'CartoMobileSDK', '4.3.4'

  • Xamarin and Visual Studio Package Manager (nuget) console:

  PM> Install-Package CartoMobileSDK.iOS -Version 4.3.4
  PM> Install-Package CartoMobileSDK.Android -Version 4.3.4
  PM> Install-Package CartoMobileSDK.UWP -Version 4.3.4