The CartoType mapping engine is delivered as a static or dynamic library, depending on the platform. The following platforms are supported as standard, and evaluation versions are always available:
- iOS: (Swift or Objective C API)
- Android (Java API)
- Desktop Windows (C++ API)
- .NET for Windows
- UWP for Windows (x86 and ARM)
- Linux (C++ API)
- Qt for Windows, Linux and Mac OS
We can also supply the CartoType library for other platforms, such as Raspberry Pi and Embarcadero C++ Builder.
Your application creates a single CartoType Framework object to manage your map, fonts, style sheet and routes. Nearly all the API functions are member functions of the Framework class. The map is drawn continuously at 24 frames per second or more using hardware acceleration. Any changes you make that affect the map display, such as panning, zooming, rotation, creating a route, or adding pushpins, are automatically handled by the drawing system.
It is also possible to obtain map images as bitmaps.
CartoType supplies all the functions needed to implement user interaction, such as panning, zooming, hit detection, and control of layers and overlaid data.
You can load a single map, or multiple maps at once. Map files use CartoType's compact CTM1 format. We supply tools and documentation for creating your own maps from various data sources including OpenStreetMap, ESRI shapefiles, and SRTM elevation data. You can also create in-memory map data at run-time and save it in various formats. Nearly all conceivable projections are supported.
Look and feel are controlled by XML style sheets. We supply clear and attractive standard styles. You can also create your own style sheets, using our free tools and documentation, including the Maps App, which has a built-in style sheet editor. Style sheets give full control over colors, dimensions, icons, transparency, layer ordering, fonts and typography, and of course smooth transitions from one scale to another.
You can add your own data to the map at run-time or as part of the data preparation process. Both methods allow you to add map objects either to existing layers, or as new layers. The objects you add are first-class citizens, not simple graphic overlays: their appearance is controlled by the style sheet, and they appear in searches, respond to hit detection and work with all other functionality in the same way as standard map objects. Custom data can be saved or loaded using CTMS (CartoType serialized map data format) or as SQLite files, or, if prepared in advance, can be integrated into the main CTM1 file.
Locations, Coordinates and Geocoding
There are functions to convert between all the types of coordinates you might need to use: latitude and longitude; screen pixels; and projected map coordinates. You can convert any position into an address, or find an address on the map. The accuracy of these functions, known collectively as geocoding, depends on the quality of the map data.
Routing and Navigation
You can find the best route between any two points, and optionally use it for real-time turn-by-turn navigation. All you need to do is provide a location fix every second or two, and then ask CartoType for the current route instruction. Automatic re-routing is triggered if the position is off the route for a certain (configurable) time. Routes can be saved to files and re-loaded later. Four standard routing profiles are supplied (drive, cycle, walk and hike), and the Maps App allows you to create and save your own custom profiles. Obviously the quality and accuracy of routes depends on the map data.
If you have a source of real-time traffic information, or you wish to add other restrictions or modifications to routing, you can add and remove speed limits and restricted areas at run time using our traffic info API. Traffic information is independent of the particular map format, allowing you to provide data from external sources.
CartoType map files contain an index of all the names, words and phrases on the map. Our fast search engine supports incremental search, fuzzy matches, and wild cards, and returns a list of candidate map objects ranked by quality of match. Other functions allow you pan and zoom the map display to any map object or group of objects, setting a preferred margin and maximum scale.
We supply a data preparation tool, makemap, which can import data from OpenStreetMap, ESRI shapefiles and SRTM elevation data. Makemap can filter and convert the data in any desired way, specifying target layers and map attributes for any source data.