Nutiteq is now part of CARTO! Please use latest CARTO Mobile SDK for new projects. Nutiteq SDK 3.x support and updates ended in 2017, documentation here is outdated.

Release notes


Version: 3.2.0 RC0

GIT commit: 56962750201c5dfa7c6765e7ea5ce75fdbc2b8dc

New features

In all versions

  • Automatic point/marker clustering using ClusteredVectorLayer
  • Multigeometry support. Geometry package contains now MultiGeometry, MultiPoint, etc classes. A GeometryCollection vector element must be used together with these new geometry types.
  • GeoJSON parser and generator. Only files that contain geometry objects are supported, features are not supported as there is not direct mapping to SDK objects.
  • Implemented basic CartoCSS style parsing. Only style attributes (like line-width, marker-size, etc) are supported, full CartoCSS support with selectors is planned at later stage.

In GIS Extension (Enterprise version)

  • Custom projections are now supported when using GDAL/OGR layers
  • Vector editing support using EditableVectorLayer class
  • Implemented WKB/WKT reading and writing
  • More complete support for OGR: layers and layer fields can be created and deleted. Previously only modifying was supported.

Changes, minor updates

  • Added additional constructor to NutiteqOnlineVectorTileLayer that takes tile source id as a parameter
  • Added getDataExtent method to LocalVectorDataSource
  • Added getDataExtent method to MBTilesTileDataSource
  • Added getDataExtent method to BitmapOverlayRasterTileDataSource
  • Implemented getOpacity/setOpacity methods for RasterTileLayer
  • Added getLayer method to VectorElementClickInfo class
  • Added getDataSource method to NMLModelLODTreeLayer
  • Added special error code to PackageErrorType: PACKAGEERRORTYPENOOFFLINE_PLAN, used when license does not allow using Nutiteq offline package service
  • Added support for PNGs with explicit SRS info in GDALRasterTileDataSource (Enterprise edition)
  • Tile preloading algorithm is changed, new algorithm should give more predictable results with less tile flickering for both vector and raster tiles
  • Tile preloading is better integrated now with vector tile renderer, resulting in better performance and less tile fading effects
  • Implemented better view envelope calculation, resulting in better performance in some VectorDataSource implementations
  • Added 2 static methods to BitmapUtils class: loadBitmapFromAssets and loadBitmapFromFile
  • Relaxed Android OpenGL renderer requirements for older lower end devices, for better compatibility with very old Android devices
  • MBVectorTileDecoder class now supports non-gzipped vector tiles and is compatible with MapZen tiles now

API changes

  • Bitmap class constructor with asset name argument is deprecated. Instead, BitmapUtils.loadBitmapFromAssets should be used.
  • Bitmap class constructor that takes compressed byte vector as an argument is deprecated. Instead, Bitmap.createFromCompressed method (static) should be used.
  • LocalSpatialIndexType enum values are changed to conform with SDKs naming conventions. Old names are available as deprecated but will be removed in future versions.
  • MapTileQuadTreeNode class is removed from API. This is an internal SDK class that has very limited public use.
  • The following methods that were deprecated in Android SDK 3.1 are now removed (NOTE that similar methods with non-capitalized names are available): Log.SetShow*, AssetUtils.LoadBytes, BitmapUtils.CreateBitmapFromAndroidBitmap, BalloonPopupStyleBuilder.set[Left|Right]Bitmap(
  • The following methods that were deprecated in iOS SDK 3.1 are now removed (NOTE that similar methods with non-capitalized names are available): Log.SetShow*, AssetUtils.LoadBytes, AssetUtils.Calculate[Resource|Writable]Path, BitmapUtils.CreateBitmapFromUIImage


  • Fixed object ownership issues in listener callbacks, that could lead to native crashes or data corruption when callback argument reference was stored in member variable
  • Fixed issues with object lifecycle management causing native crashes or data corruption in rare cases
  • Fixed memory leaks with vector tile layers and NML layers, memory was not freed when layers were removed
  • Fixed rare threading dead-locks when SDK methods were used from listener callbacks
  • Fixed memory leaks in iOS SDK when listener objects were queried
  • Fixed type wrapping issues with user derived classes Popup classes and getter-methods
  • Fixed memory leak in Android/Xamarin.Android SDK with internal RedrawRequestListener class, resulting activity leaking when closed
  • Fixed vector tile line antialiasing on low/very high DPI screens and with some custom display configurations
  • Fixed rendering of non-vector-tile patterned lines
  • Fixed issues with vector elements offseting when crossing 180th meridian, sometimes resulting in elements being shifted
  • Fixed flickering with vector tile offsetting when crossing 180th meridian
  • Fixed rendering of lines containing > 64k vertices, such lines were ignored previously
  • Fixed TileDataSource.getProjection returing wrong results in iOS SDK
  • Fixed issues with click handling in iOS Xamarin component when used in Xamarin.Forms
  • Fixed issue when vector elements stored in LocalVectorDataSource with KdTree index were updated, but results were not displayed properly
  • Fixed Bitmap.compressToInternal not working with non-power-of-two bitmaps
  • Fixed MapBounds.contains(MapPos) returning wrong results with some argument values
  • Fixed various internal locking-related issues causing deadlocks/ANRs in rare cases
  • Fixed handling of open polygons. SDK used to explicitly add a vertex for open polygons, this is no longer the case, original vertex list is preserved.
  • Fixed issue with overlapping billboards that were not properly synchronized when updated


Please email [email protected]