Version history

API changes.

Changes in version 4.9.3.

  1. Added support for variety of vector datasources through GDAL/OGR drivers.
  • spatial databases (PostGIS, MS SQL, SpatialLite, etc.)
  • commonly used vector formats (MapInfo TAB, KML, etc.);
  • listing of layers in datasource using OgrDatasource class;
  • adding of OGR layers on the map using OgrLayer class (AxMap.AddLayer);
  • SQL queries against datasource (OgrDatasource.RunQuery, OgrDatasource.ExecuteSQL);
  • editing and saving of changes back to datasource (if particular driver supports it);
  • saving of style information (either .mwsymb file or as a table in RDMS datasource);
  • integration with all previously written shapefile-based client code;
  1. Built-in Shape Editor. Supports:
  • creation and editing of shapes, parts and vertices (cmAddShape and cmEditShape tools);
  • group operations on the number selected shapes (cmMoveShapes and cmRotateShapes tools);
  • overlay operations (cmSplitByPolyline, cmSplitByPolygon, cmClipByPolygon, cmEraseByPolygon);
  • undo/redo capability for all the operations (UndoList class);
  • snapping to the vertices of existing shapes (ShapeEditor.SnapBehavior);
  • dynamic display of area, length of segments and their bearing;
  • user events (AxMap.BeforeShapeEdit, AxMap.ValidateShape, AxMap.ValidationFailed, AxMap.AfterShapeEdit);
  • ShapeEditor class to control various settings (available via AxMap.ShapeEditor);
  1. .NET Demo application which demonstrates the usage of the latest API:
  • opening of shapefiles, rasters and OGR vector layers (PostGIS layer and diskbased formats);
  • complete Shape Editor;
  • TMS tiles from the range of servers;
  • geolocation dialog.
  1. Improved selection tool:
  • selection can be done automatically now (no need to handle SelectBoxFinal event );
  • a layer to select from can be specified by handling AxMap.ChooseLayer event;
  • nicer rendering of selection rectangle;
  • new cmSelectByPolygon tool;
  1. New tool to display shapefile attributes (cmIdentify ):
  • can highlight shapes under mouse cursor during mouse move operations (fires ShapeHightlighted event);
  • fires ShapeIdentified event, which can be handled by client code to display attributes;
  • works either for a selected layer or all layers at once (Identifier.tkIdentifierMode);
  1. Improved API to handle projection mismatch for layers:
  • AxMap events: LayerProjectionIsEmpty, ProjectionMismatch, LayerReprojected;
  • GlobalSettings properties: AllowLayersWithoutProjection, AllowProjectionMismatch, ReprojectLayersOnAdding;
  • decision about adding/rejecting layers can be taken on per-layer basis by handling events;
  1. Improved error reporting:
  1. Major decrease of memory leaking:
  • thanks of Deleaker tool.
  1. Smaller API changes
  1. Important fixes for unmanaged IDEs:
  • division by zero error in Borland C++ Builder;
  • correct shutdown of GDI+ (affected MFC and VB6);
  • a fix for MS Access form designer;
  1. Update of tile providers:
  • methods to set API keys for Bing Maps and Here Maps (GlobalSettings.BingApiKey, GlobalSettings.SetHereMapsApiKey);
  • free MapQuestAerial provider was added;
  • Yahoo maps and Topomapper providers were removed (services were discontinued);
  • Yandex maps providers were removed (license limitations);

Changes in version 4.9.2.

  1. New zoom bar (AxMap.ShowZoomBar):
  • displayed when map has a projection;
  • depends upon selected tile provider.
  1. Enhanced handling of online tiles:
  • animation for zooming and panning operations (AxMap.AnimationOnZooming, AxMap.InertiaOnPanning);
  • in native projection mode snapping to the closest zoom level on all changes of extents;
  • no scaling in native projection (tile size will be exactly 256 by 256 pixels) and adjustment as close as possible to original size in non-native projection;
  • correct rendering of GMercator tiles in WGS84 projection (extrapolation outside world extents);
  • no duplicate HTTP requests, reduced number of cache searches;
  • reduced number of available zoom levels when server and map projections don't match to avoid distortions (GlobalSettings.TilesMinZoomOnProjectionMismatch);
  1. Built-in GDAL overview creation and recognition for grid datasources:
  • GDAL overviews creation and usage will be chosen as preferable option over creation of proxy image;
  • proxy images will be used only if they were already created or if their creation is requested explicitly;
  • the number of overviews is chosen automatically (GlobalSettings.MinOverviewWidth);
  • overviews are stored in external .ovr file for original grids and as built-in data for TIFF proxy images;
  • compression can be specified for TIFF proxy images (GlobalSettings.TiffCompression).
  1. Built-in projection mismatch behaviours (AxMap.ProjectionMismatchBehavior):
  • affects AxMap.AddLayer and AxMap.AddLayerFromFilename;
  • if datasource projection doesn't match map projection layer adding operation can be cancelled;
  • reprojection on the fly is available as an option for shapefiles;
  • default behaviour is pmbIgnore which is the same as behaviour in previous versions.
    Substituted with another set of API members in version 4.9.3.
  1. New polygon coloring algorithm, which works on assumptions defined in Four color theorem, but uses fast heuristic which can employ somewhat more colors than optimal solution (ShapefileCategories.GeneratePolygonColors).
  2. New OpenStreetMap Humanitarian tile provider.

Changes in version 4.9.1.

  1. Enhanced handling of grids:
  1. New FileManager class:
  • encapsulates possible opening strategies of Image and Grid datasources, reducing the routine coding needed;
  • AxMap.AddLayerFromFilename to add data to map with a single line of code by using built AxMap.FileManager instance.
  1. Measuring tool:
  • available as cmMeasure cursor for AxMap.MapCursor property;
  • measuring of distance along polyline or area of polygon received from user mouse input;
  • precise calculations on ellipsoid are performed by GeograpicLib if projection for the map is set.
  1. Enhanced scalebar & coordinates display:
  • 3 scalebar modes including Google styled mode and nicer rendering (AxMap.ScalebarUnits);
  • scalebar will perform precise calculation on ellipsoid if projection for map is specified;
  • display of coordinates under mouse cursor (AxMap.ShowCoordinates).
  1. New properties to initialize map control from .NET form designer:
  1. Additional built-in keyboard shortcuts:
  • "+" = zoom in;
  • "-" = zoom out;
  • "*" - zoom to the closest tile level;
  • "Home" = zoom to combined extents of all data layers (max extents);
  • "Backspace" = zoom to previous extents;
  • "Shift + Left", "Shift + Right" - zoom to the prev/ next layer;
  • "Z" = ZoomIn tool;
  • "M" = measuring tool;
  • "Space" = switches to panning mode; after releasing space the previous map cursor is restored.
  1. New functionality to initialize map projection from data layers:
  1. Support of discrete zoom levels defined by tiles providers:
  1. Methods for conversion of map coordinates to decimal degrees (if map projection supports this):
  1. tkKnownExtents enumeration for all countries:
  1. Unicode support for filenames in major part of code, although not everywhere yet:
  • filenames are handled as UTF-16 strings;
  • filenames are passed to GDAL methods and are serialized to XML as UTF-8 strings.
  1. New API members in GeoProjection class:
  1. Shapefile validation:
  1. Statistic operations on fields of attribute table for shape dissolving functions:
  1. More convenient properties to set visualization category for shape:
  1. New methods in Shape class: