The CartoType SDKs (software development kits) are provided for evaluation only, excluding any commercial use. For commercial licensing please contact us.

If you download and using one of these evaluation SDKs you will be able to use almost all the features of CartoType in a test application and find out whether CartoType is the right solution for you.

By clicking on any of the links on this page, or by using the SDK material, however acquired, you accept the terms of the CartoType Evaluation License and you also accept that neither CartoType Ltd, nor any owners, shareholders or officers of CartoType Ltd, or any other contributors to, authors of or maintainers of the CartoType system, are liable for any damage, direct or consequential, caused by downloading, installing or using the SDK, or by any programs built using the SDK, and that the SDK is not warranted fit for any particular use and is for evaluation use only and may not be used for any commercial purpose.

To uninstall any of these SDKs, all you need to do is delete the files from your computer.

Release notes

The current version of the CartoType SDK is Release 4.2. It was released on 16th December 2016.

The current build is 4.2.81

Changes since initial release of 4.2

New feature: the makemap tool now accepts wild cards on the command line.
Bug fix: the arc (A) command in SVG code no longer worked.
Bug fix: some junctions were classified wrongly in route instructions.
Bug fix: routes could not be loaded from .ctroute files.
Bug fix: route instructions had incorrect or missing addresses for waypoints.
New feature: the pushpin icon has been changed to an improved version.
Improved search performance for large map areas.
Bug fix: expression evaluator now returns true if unary not (!) is applied to an undefined variable.
Bug fix: corrected Spanish word for seconds in route instructions.
Bug fix: icon selected using refAttrib in <icon> is not found by FindInDisplay
Performance improvement: FindInDisplay was slow when the map was zoomed out.
Bug fix: legend bitmaps had an 'unlicensed' watermark even if the main framework was licensed.
Improvements to island, country and state/province labels in the style sheet
Bug fix: some rare conditions involving bus-only roads, etc., gave incorrect routes
Improved routing speed when starting or ending on a private road

The Android SDK

The Android SDK allows you to use CartoType with the Android operating system. You use the CartoType Android API, which gives you access to all the features of CartoType: loading maps, adding your own objects to the map, panning, zooming, address searching, routing and navigation.

Download link: Android SDK

The SDK is a ZIP file of about 13Mb. It contains a folder called cartotype_android_sdk_evaluation containing the following folders:

libs: a JAR file with the CartoType Java classes, and the compiled native-code libraries as .so files. The native-code library is supplied in armeabi and x86 versions. The x86 version can be used for debugging on an emulator

font: standard fonts; for simple CartoType use you need load only DejaVuSans.ttf

map: sample maps

style: the standard style sheets; you should load standard.ctstyle with the sample map

doc: licenses and acknowledgments for third-party libraries

You will probably also need to look at some sample Java code using CartoType. This is the source of NavigatorApp, our simple demonstration application available for download from the Google Play Store:

NavigatorApp source code

If you want to compile this code you'll need to add cartotype.jar and libcartotype.so from the Android SDK to your project. The data files - sample map, style sheet and fonts - are already included in the sources, the the 'assets' folder.

The iOS SDK

The iOS SDK allows you to build CartoType apps for the iPhone and iPad. It is supplied as a .dmg file (Apple Disk Image) containing the file CartoType.framework. You use the CartoType iOS API, written in Objective C, which gives you access to all functionality.

Note: in order to avoid linker errors when using the -ObjC flag, you need to have at least one ".cpp" (C++) or ".mm" (Objective C++) source file in your own project, even if it's an empty one. If your project has ".m" (Objective C) and ".h" files only you will get linker errors because Xcode won't know that there is both C++ and Objective C code in the project.

Download link: iOS SDK

This is a 67Mb download containing the header files and compiled libraries for the simulator and device targets as a .dmg file.

(If you are upgrading to a new version of the CartoType iOS SDK, you may sometimes find that Xcode does not recognize new Objective C headers or classes. You can usually fix this problem by closing your project, opening the organizer from the Xcode Window menu, select your project, then click on 'delete' opposite 'derived data'. Then close Xcode, reopen your project, clean it and rebuild. Thanks to TigerCoding for this tip from StackOverflow.)

You will also probably want to download the source code and project files for a minimal demonstration program showing the use of the SDK:

CartoType iOS project

Please see CartoType and iOS for instructions on how to build and run this project.

The .NET SDK

This SDK allows you to use CartoType with the .NET framework. You can use any .NET language, such as C#, VB.NET or C++/CLI. You can build a complete application using CartoType in just a few lines of code, as shown in the C# demo program included with the SDK. The .NET SDK (documented here) gives you access to all CartoType features, including map, style sheet and font loading, route calculation, navigation and address searching.

Download link: .NET SDK

This is a 26Mb zipped file containing a .NET DLL built for the Intel x86 and x64 platforms and a C# demonstration program that uses the CartoType DLL, with its source code and data files. An XML documentation file is also supplied. As long as it is kept in the same place as the DLL it will provide tool-tip help for some of the functions.

You should use the 64-bit version of the DLL if possible (that is, if you are running 64-bit Windows), mainly because it allows CartoType to use more heap memory and thus use the fast A* routing system on large maps.

cartotype dot net development screen shot

The zip file creates a single directory called CartoTypeDemo when unzipped.

Useful locations

The CartoType .NET DLL:

  • x86 release: CartoTypeDemo\vs2015\bin\x86\Release\CartoTypeWrapper.dll
  • x86 debug: CartoTypeDemo\vs2015\bin\x86\Debug\CartoTypeWrapper.dll
  • x64 release: CartoTypeDemo\vs2015\bin\x64\Release\CartoTypeWrapper.dll

Solution files:

  • CartoTypeDemo\vs2015\CartoTypeDemo.sln
  • CartoTypeDemo\vs2015\CartoTypeDemo-x64.sln

Data files

  • sample map: CartoTypeDemo\data\boston.ctm1
  • standard style sheet: CartoTypeDemo\data\osm-style.xml
  • standard font: CartoTypeDemo\data\DejaVuSans.ttf

and another style sheet and extra fonts are also to be found the the data folder.

This version of the CartoType .NET DLL will not run on non-Intel platforms because the CartoType library is compiled into native code from C++.

The Windows SDK

This SDK (documented here) supports CartoType development for desktop versions of Windows from Windows XP through Windows 8.

Download link: Windows SDK

This is a 57Mb zipped file containing the CartoType header files and debug and release mode libraries for desktop Windows, built using Microsoft Visual Studio 2015 for both the Win32 and x64 platforms.

The zip file creates a single directory called CartoType when unzipped.

Useful locations

The Visual Studio 2015 project file for the desktop Windows demo: \CartoType\src\demo\windows_demo_vs2015\CartoTypeDemo\CartoTypeDemo.sln

Sample map file: \CartoType\src\test\data\ctm1\santa-cruz.ctm1

Visual Studio 2015 Win32 libraries: \CartoType\bin\14.0\Win32

Visual Studio 2015 x64 libraries: \CartoType\bin\14.0\x64

Tools in CartoType\bin\14.0\Win32\Release

makemap: create a map from OSM data or ESRI shapefiles; but note that for larger files you may need the 64-bit version, makemap_64: see below

ctm1_info: examine a CTM1 file

encrypt_file: encrypt a CTM1 file

Tools in CartoType\bin\14.0\x64\Release

makemap_x64: the 64-bit version of makemap: use it if you have a 64-bit computer

The source code for some other demonstration programs is included.

The Linux SDK

The C++ SDK (documented here) supports development for Linux (Ubuntu and other x11 versions) on 64-bit Intel platforms. It is a 43Mb zip file.

Download link: Linux SDK

The zip file contains a folder called cartotype-ubuntu-sdk containing the following folders:

bin: the release-mode evaluation CartoType library, and the makemap tool for creating maps

font: standard fonts; for simple CartoType use you need load only DejaVuSans.ttf

header: the C++ header files; you need to include only one of the header files, cartotype_framework.h, to use CartoType

map: a sample map

style: the standard style sheets; you should load standard.ctstyle with the sample map

Linux SDK notes

  • The CartoType Linux library is built for 64-bit Intel platforms.
  • You may need to add the option -pthread to both compiler and linker options, otherwise you might get a linker error for pthread_create.
  • Don't define the preprocessor macro _DEBUG in the debug build or you will get link errors in that build (because CartoType::TResult changes from a plain integer to a class).
  • Set the compiler option +std=c++11, because CartoType uses C++11.
  • If you get linker errors mentioning types in the std namespace, the cause is probably that the CartoType Linux Library is compiled using GCC 5.1, and you are using GCC 4.9 or earlier.