This release was made on 13th May 2021 and is based on mainline revision 9870.
The previous release, 7.0, was made on 5th March 2021 and was based on mainline revision 9722.
Map object editing functions
There are new functions to make it easier to add interactive editing to a CartoType application. They manage the creation and editing of linear and polygonal objects by means of pointer presses and movements and allow the new objects to be added to any layer of the map.
The Maps App demonstrates some of the new functions using these actions:
This release was made on 27th July 2021 and is based on mainline revision 9961.
The previous release, 7.2, was made on 13th May 2021 and was based on mainline revision 9870.
Setting colors of map objects individually
It is now possible to give every map object that is a line or a polygon its own main color and border color, overriding any colors set in the style sheet. Formerly that was possible only for
icons. The new feature is principally useful when inserting map objects at run time ('dynamic map objects') but can be used when building the CTM1 file by inserting appropriate logic in the .makemap rules.
This release was made on 18th October 2021 and is based on mainline revision 10121.
The previous release, 7.4, was made on 27th July 2021 and was based on mainline revision 9961.
A new routing system with compact data
There is a new routing system, Turn-Expanded Compact. Use the option /route=tc in makemap. It requires much less run-time memory, but, unlike the contraction hierarchy systems, allows arbitrary route profiles to be set at run time. It is suitable for large areas such as the whole of the UK on mobile platforms like iOS and Android.
This release was made on 29th March 2022 and is based on mainline revision 10409.
The previous release, 7.6, was made on 18th October 2021 and was based on mainline revision 10121.
Added time/distance matrix function
There is now a function to return a time/distance matrix giving the route time and distance for all combinations of a set of start points and a set of end points. It is implemented for the turn-expanded contraction hierarchy /route=tech), turn-expanded (/route=t), and a-star (/route=a) routers. The fastest implementation by far is that for the TECH router, but that implementation does not support arbitrary run-time route profiles or dynamic road closures. The fastest flexible implementation, which does support those features, is that for the turn-expanded router.
There is a new makemap option, /hublabels=yes, which can be used in conjunction with /route=tech to add hub label data to the TECH route data to enable ultra-fast calculation of time/distance matrices.
This release was made on 5th July 2022 and is based on mainline revision 10787.
The previous release, 7.8, was made on 28th March 2022 and was based on mainline revision 10409.
This is a major release which introduces many source code incompatibilities. They fall into two categories: renaming of public identifiers, and the introduction of simpler and consistent feature types for map objects. The aim is to make CartoType applications easier to write, read and debug.
The previous release will continue to be supported until 31st July 2024 and will receive bug fixes but no new features.
Renaming
Classes, functions and other identifiers have been systematically renamed, with the aim of improving consistency and removing outdated and unnecessary conventions.
This release was made on 9th December 2022 and is based on commit 8.2-57-g51a9fa561 in the new Git repository.
The previous release was made on 5th July 2022 and was based on CartoType-mainline revision 10787 in the Mercurial repository.
Fast street address searching
The makemap tool now creates a street index table. Street address searching is now faster and more accurate when using map files containing the new table. Fast street address searching is used automatically for searches with a street name, a city name or postal code,and an optional building name or number. Abbreviations, omitted words and fuzzy matching are supported.
Mutual accessibility checking for the time/distance matrix function
The TimeAndDistanceMatrix function can run slowly if not all the points supplied are connected together by the network of routable roads. A new Framework function, MutuallyAccessible, checks at high speed whether any group of points is mutually connected, and optionally returns the IDs of the connectivity groups to which the points belong; group 1 is the largest group, so in practice any point not belonging to group 1 is inaccessible. A group ID of zero means that a point is not connected to any other points.
This release, 8.4, was made on 20th February 2023 and is based on commit 8.4-1-gcb08c572d in the Git repository.
The previous release, 8.2, was made on 9th December 2022 and was based on commit 8.2-57-g51a9fa561 in the Git repository.
mapinfo is the new name for ctm1_info
The tool to describe the contents of a CartoType map file (a CTM1 file) is now called mapinfo, not ctm1_info. The new name is more descriptive and easier to type.
mapinfo usage and command line options are now:
usage :mapinfo { -option1 ... -optionN } <CartoType map file (CTM1 file) name> options: -d<layer>{,<condition>}: dumps all map objects in a layer, optionally using a condition to select objects -D<layer>{,<condition>}: like -d but also dumps coordinates -a<layer>{,<condition>}: like -d but gives combined area and length of objects only -e<W,S,E,N> or <zoom,X,Y>: applies an extent to following -d or -D options -f<building>,<street>,<city>{,<postcode>}: finds addresses -i: uses imperial units (miles, yards, acres) instead of metric units (kilometres, metres, hectares) -n: no info (for use with -d, etc.) does not list global information, tables or layers -v: verbose: lists layers -V: more verbose: lists layers and low-res layers
This release, 8.6, was made on 8th August 2023 and is based on commit 8.6-1-gc0939f76f in the Git repository.
The previous release, 8.4, was made on 20th February 2023 and was based on commit 8.4-1-gcb08c572d in the Git repository.
Changes since the initial release of 8.6
These changes were made during the active lifetime of release 8.6, and became part of release 8.8.
--- 8.6.17 ---
updated the Android build system to work with the latest Android Studio (Giraffe)
fixed #173: UWP SDK crashes with access violation in in the renderer
fixed #183: range calculation crashes
text index and street index are no longer read if requested text index levels are -1: fixes #156: map of Britain and Ireland takes 9Gb RAM
--- 8.6.31 ---
IMPORTANT: fixed #184: release 8.6 is slower than 8.4
--- 8.6.57 ---
fixed #189: enabling and disabling maps does not work
makemap creates urban areas more accurately; fixes #192
the standard style sheet now draws urban areas after land layers
--- 8.6.66 ---
fixed #83: seabed texture not drawn when graphics acceleration is turned off
improved order of layers in CTM1 files for better search relevance
fixed #195: 3D buildings were not drawn
--- 8.6.71 ---
repeating textures now have their own vertex array: fixes #194
improved wetland hachure colour: now uses ncsblue
fixed #196: route colours should not be made darker in night mode
English names are now generally drawn on a separate line, using a forced line break, apart from minor and mid-level roads; and English names have now been added for some layers where they were not used.
added CALLBACK macro (_stdcall) needed for WinHttpSetStatusCallback to compile in 32-bit build
updated to the version of the naett library used by the mainline
added a rule for contour shapefiles: *.contours.shp
added a contour layer to the standard style sheet
fixed #199: the /split option in makemap seems not to copy string attributes
fixed #203: Android app crashes on two-finger gesture
--- 8.6.84 ---
fixed #221 and #222: motorway feature type matches invalid feature type in style sheet expressions
placename labels now have higher priority than stations
restored legality of drawing a layer twice in a style sheet
fixed #219: railway platforms were drawn as sections of railway track; added platforms to style sheet
--- 8.6.89 ---
improved the handling of touch events on Android to avoid jumps when releasing one finger, etc.
fixed #200: label paths are smoothed when necessary, allowing more river names to be drawn
fixed #223: river names wrapped unnecessarily
--- 8.6.96 ---
further improvements to river names in size and positioning
using obsolete expression syntax in a style sheet now causes an error
roads, cities and major land areas are now drawn at smaller scales
grassland and meadows are no longer drawn by the standard style sheet because they are recorded so inconsistently in OSM data
fixed #229: the /interval option in makemap now works properly
bodies of water no longer disappear at small sizes
removed seams between terrain shadow tiles
improved urban areas by increasing resolution and using a different set of roads to determine them
--- 8.6.116 ---
canals are now not shown by the standard style sheet at scales below 1:1,000,000: fixes #233
added missing feature type name 'strait'
MString::CompareExact erroneously allowed case mismatches if there were non-ASCII characters
fixed #250: crash when loading style sheet if an icon was defined after the first layer
--- 8.6.126 ---
fixed case #252: landlocked maps are drawn in blue
added missing property implementations to the iOS SDK: fixed #248: hiding the scale bar has no effect on iOS demo
fixed #259: canal label in wrong place in perspective view
--- 8.6.135 ---
Online Map Data Access
New functionality allows CartoType to support both the client and server roles in using CTM1 files online. The Framework function
std::string HandleQuery(const std::string& aQuery,const std::string& aData)
can be used by servers to handle queries sent from client programs. A client program opens a map file using a URL instead of a filename. Any string starting with http: or https: is treated as a URL. Internally, requests for map data are passed to the server as HTTP requests which must be fulfilled using Framework::HandleQuery. The HandleQuery function is implemented in the C++ and .NET APIs, allowing servers to be written using C++, C#, or another .NET language. The client program can run on any CartoType platform. This allows CartoType applications to use very large maps without the need to install the map data on a device.
CartoType demonstration applications
These programs are intended to show off the features of CartoType and help you decide whether the CartoType library could be a useful part of your software application.
By using the CartoType demonstration programs, maps or style sheets, 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 demonstration programs, maps or style sheets, and that the demonstration programs, maps or style sheets are not warranted fit for any particular use and are for evaluation use only and may not be used for any commercial purpose.
Evaluation SDKs (software development kits) allow you to try out CartoType before you buy a license. You will be able to create a test application and find out whether CartoType is the right solution for you. The evaluation SDKs provide access to all functionality, including interactive map display, route calculation, address searching, and geocoding. API documentation is available on-line.
The CartoType evaluation SDKs (software development kits) are provided for evaluation only, excluding any commercial use. For commercial licensing please contact us.