Releases: CartoDB/mobile-sdk
4.4.7
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 UWPMapView
- 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
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 toCartoOnlineTileDataSource
,MapTilerOnlineTileDataSource
andHTTPTileDataSource
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
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
andisFeatureIdOverride
methods toMBVectorTileDecoder
- Added
isAnimationStarted
method toMapInteractionInfo
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
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 toGeoJSONVectorTileDataSource
. 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
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 toVectorTileLayer
. 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
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 toGeoJSONVectorTileDataSource
- 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 inGeoJSONVectorTileDataSource
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 usingstartStyleDownload
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
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 toOptions
class to allow reducing click handling latency - Added
setLongClickDuration
,getLongDuration
methods toOptions
class to allow configuring long click detection duration - Added
setDoubleClickMaxDuration
andgetDoubleClickMaxDuration
methods toOptions
class to allow configuring double click max duration - Classes like
MapEventListener
,VectorElementClickInfo
now containClickInfo
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
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 useMapView
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 andMapViewInterface
interface to the SDK.TextureMapView
is a subclass ofandroid.view.TextureView
and behaves better in apps built from fragments.MapViewInterface
provides a common interface for bothMapView
andTextureMapView
. - Added
getDescription
method toRoutingInstruction
. 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 ofBillboard
. 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 fromBitmap
(replaced withcompressToPNG
) - Removed deprecated
NMLModel
constructors (replaced with constructors withNMLModelStyle
argument) - Removed
getGeometryTagFilters
andsetGeometryTagFilters
methods fromRoutingRequest
. They are replaced withgetPointParameter
/setPointParameter
methods (with 'geometry_tag_filter' parameter) - Removed
setResolution
method fromTorqueTileDecoder
, changed 'resolution' definition forgetResolution
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 customVectorTileLayer
orRasterTileLayer
can be used instead.CartoOnlineRoutingService
is now deprecated, third party online routing services should be used insteadAddress
is now depreacted and will be removed in future versions. useGeocodingAddress
instead (currently a subclass ofAddress
)setRotationAngle
,getRotationAngle
methods are deprecated inNMLModel
, usesetRotation
,getRotation
instead.- Added
setRotationAxis
,getRotationAxis
methods toNMLModel
- Added
setOrientationMode
,getOrientationMode
,setScalingMode
,getScalingMode
methods toNMLModelStyleBuilder
- Added
getOrientationMode
,getScalingMode
,getModelAsset
methods toNMLModelStyle
- 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 toVectorTileLayer
, for controlling transition animations. - Added
getTileBlendSpeed
,setTileBlendSpeed
methods toRasterTileLayer
, 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 toTorqueTileDecoder
- Added
Resolution
property toTorqueTileDecoder
for dotnet APIs. - Fixed
getParent
method inMapTile
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 inNMLModelStyleBuilder
. - 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 fromunsigned int
tounsigned long
on iOS, so that >4GB caches can be used on 64-bit targets. - Fixed CartoCSS string-expression evaluation issue, causing some misoptimizations
GeoJSONGeometryReader
andGeoJSONGeometryWriter
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 redundantonMapMoved
callbacks. - Fixed potential deadlocks in
AnimationHandler
andKineticEventHandler
when certain SDK APIs were used inMapEventListener
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...
4.3.5
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
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 toMapRendererListener
. 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