Changelog¶
Major changes for ThinkGeo 13.0¶
Release date: 11/29/2022
ThinkGeo.Core Namespace:
- Improved the accuracy and performance of isolines.
- Improved FileGeoDatabase performance and added more APIs using the latest FileGDB APIs(FileGDB_API_1.5.2) from ESRI.(Windows only)
- Improved multiple columns labeling through TextStyle.TextContent
- improved MagneticDeclinationAdornmentLayer by updating to the latest Geomagnetic Reference IGRF13 from: https://www.ngdc.noaa.gov/IAGA/vmod/
- Improved the heatmap styling by updating its color palette.
- Supported the GeoTiff files with separate planes and multiple strips
- Supported the MrSid files with more than four bands(Windows only)
- Supported HereMapsRasterTileLayer
- Supported deleting/adding/editing columns for TabFiles.
- Supported GeoPdf through NuGet package ThinkGeo.GeoPdf(Windows only)
- Supported KML through NuGet packages ThinkGeo.Kml(Windows only)
- Supported the latest CAD format by referencing the latest ODA dependencies from (https://www.opendesign.com/). (up to 2022)(Windows only)
- Upgraded all the dependencies to the latest (up to 11/2022) and streamline the 3rd party dependency reference.
- Updated the proj string of the SRIDs to the latest based on https://epsg.io/
- Implemented an API to check if a license is activated: ThinkGeoProductLicense.GetCoreLicenseStatus()
- Fixed the issue where a null numeric field in a shapefile returns bad results
- Fixed the issue where internal exceptions are thrown when cached tiles are read/updated simultaneously.
- Fixed the issue where the labeling of curved lines is not at the center in some scenarios.
- Fixed the issue where some labels are cut in busy places like New York City in ThinkGeoCloudRasterLayer.
ThinkGeo.UI.WPF Namespace / ThinkGeo.UI.WinForms Namespace:
- Support HereMapsRasterTileOverlay
- Support MapView.GetSnapShot()
- Support WrapDateLine for MarkerOverlay and XYZOverlay.
- Improved the map responsiveness by reaffirming using async for all the IO-intensive APIs.
- Fixed the issue where TileOverlay.Drawn event is raised before all the tiles are rendered.
- Fixed the issue where Tileoverlay is not displayed when the current scale is less than 3.
- Fixed the issue where the map turns blank when calling map.refresh() right after resizing the map.
- Fixed the issue where markers do not work if they are initialized with Marker.Content.
- Fixed the issue where Printing Raster Images are Offset and scaled improperly
- Fixed the issue where the alignment/text wrap does not work in the legend
- Fixed the issue where Map Flickering when calling CenterAt/ZoomTo
- Fixed the issue where mouse zooming is not centering at the mouse when the map's rotation angle is not 0.
- Fixed the issue where the legend's location/layout and feature size are not precise in some scenarios while printing
Major changes for ThinkGeo 12.3¶
Release date: 11/6/2020
ThinkGeo.Core Namespace:
- Created ThinkGeo.UI.XamarinForms edition.
- Created MapBox layer and support MapBox static tile.
- Open web browser instead of Product Center when no license was found.
- Minimum supported .NET Framework version now has been updated to 4.6.2 from 4.6.1.
- Add an API to the WorldFile class to allow it to save a world file to disk.
- Added the API to convert feature collection to GeoJSON.
- Added TopologyValidator class for validating shapes.
- Added XYZ layer as the base class of all the XYZ-based layers.
- Greatly improved the performance of web-based layers, such as bingmaps layer, googlemaps layer and thinkgeo cloud layers.
- Request for X2 Google images if needed in Google Layer.
- Fixed the issue where application cannot work on both X86 and X64 systems when compiling with .NET Framework under AnyCPU, by upgrading the drawing engine to SkiaSharp 2.80.2.
- Fixed the issue where Proj String and EPSG number cannot be read correctly when opening a layer.
- Fixed the issue where printing doesn’t work properly on High DPI printer.
- Fixed the issue where the transparent background of a geotiff was not displayed properly.
- Fixed the issue where a geoimage cannot be serialize/deserialize properly.
- Fixed the issue where CAD layer throw a KeyNotFound exception in certain situations.
- Fixed an issue where the Red and Blue channels of a geoTiff are inverted on Linux, iOS and Android.
- Fixed the issue where drawing text with rotation angle other than 0 has some unexpected offset when zooming in to the lowest zoomlevel.
- Support raster projection for the web-based layers such as google maps, bing maps, ThinkGeo cloud maps and mapbox maps.
ThinkGeo.UI.WPF Namespace / ThinkGeo.UI.WinForms Namespace:
- Fixed the issue where map flashes when multiple overlays are added to the map if one overlay draws way faster than the others.
- Used async drawing and greatly improve the drawing performance.
- support customized zoombar tooltips
Major changes for ThinkGeo 12.1¶
Release date: 11/29/2019
ThinkGeo.Core Namespace:
- Enhanced to support high resolution screen for ThinkGeo Cloud Maps.
- Enhanced to support high resolution screen for GoogleMapsLayer.
- Enhanced to support projection for WMTS layer.
- Fixed a bug where UnmanagedProjProjectionConverter converts extent to internal projection incorrectly.
- Fixed the font size issue for PointStyle.
- Fixed a bug where the WKB of MultiLine Empty can't parse.
- Fixed a bug where ThinkGeo Cloud Vector layer aren't rendered at zoom level 19.
- Fixed a bug where the alpha component of GeoColor style didn't work.
- Fixed a bug where TextBaseline can't support multi-line text.
- Enhanced to support cancel drawing line.
- Fixed a bug where the GeoImage being used is disposed for Noaa layer.
- Enhanced to support Cad.
- Enhanced to support multi-thread for projection converter.
- Fixed a bug where FeatureSource.GetColumns method throws exception in multi-threads.
- Enhanced to make SqliteFeatureLayer thread safe.
- Added DrawText method for PositionStyle.
- Added "PointStyle(GeoFont glyphFont, string glyphContent, GeoBrush fillBrush)" constructor for PointStyle.
- Published PointStyle.DrawGlyph method.
- Enhanced to support custom font for PointStyle.
- Changed the default tile size value of ZoomLevelSet from 256 to 512.
- Published PointStyle.DrawImage method.
- Published PointStyle.DrawSymbol method.
- Fixed a bug where the ProjectionConverter.ConvertToExternalProjection method doesn't work.
- Fixed a bug where SqliteFeatureSource querying data from R-Tree index table throws exception.
- Fixed a bug where the SqliteFeatureSource.GetFeaturesByIds method doesn't work.
- Changed longitude and latitude parameter order for some API.
- Enhanced to support GeoLinearGradientBrush for Printer and fixed bug the Printer get different result with the Map if polygon contains inner rings.
- Fixed a bug where the angle of label of GeoLinearGradientBrush is incorrect .
- Fixed an bug where when parsing tile format tiff image, throws "Array index is out of range" exception.
- Enhanced to support background for layer.
- Enhanced to support KeyColors for SkiaGeoCanvas.
- Changed the default web proxy from null to DefaultWebProxy of system.
- Fixed a bug where rendering tiff image is blurred.
ThinkGeo.UI.Wpf Namespace:
- Fixed a bug where LayerOverlay throws the exception when tile type is multiple tile.
- Enhanced to support high resolution screen for ThinkGeo Cloud Maps.
- Improved memory usage for Wpf.
- Changed the zoom animation time form 200ms to 100ms.
- Fixed a bug where ThinkGeocloudRasterMapsOverlay can't support to display map when custom zoom-level scale is smaller default min zoom-level scale.
- Fixed a bug where there are white gaps between tiles.
- Changed longitude and latitude parameter order for some API.
- Changed the default web proxy from null to DefaultWebProxy of system.
- Fixed a pinch zoom issue. When zoom in map, the target scale is smaller than expected.
- Fixed a bug where "map.TrackOverlay", "map.AdornmentOverlay", etc. were all null after Map initialized.
- Fixed a bug where InMemoryMarkerOverlay's marker can not display at first zoomlevel.
Major changes for ThinkGeo 12.0¶
- Merge all the managed layers to Core and used GDAL to redesign Unmanged Layers. Rename the packages name, here is latest package names:
ThinkGeo.UI.Wpf
ThinkGeo.UI.Blazor
ThinkGeo.UI.WebApi
ThinkGeo.Core
ThinkGeo.Gdal
ThinkGeo.Ecw
ThinkGeo.Cad
ThinkGeo.GeoTiff
ThinkGeo.Jpeg2000
ThinkGeo.MrSid
ThinkGeo.UmanagedProj
ThinkGeo.NuticalCharts
ThinkGeo.FileGeoDatabase
ThinkGeo.PersonalGeoDatabase
ThinkGeo.Oracle
ThinkGeo.Sqlite
ThinkGeo.MsSql
ThinkGeo.PostgreSql
ThinkGeo.Printers
ThinkGeo.Dependency.SQLite
ThinkGeo.Dependency.MicrosoftVisualCRunTime140
ThinkGeo.Dependency.NetTopologySuite
ThinkGeo.Dependency.Npgsql
ThinkGeo.Dependency.Printers
ThinkGeo.Dependency.SkiaSharp
ThinkGeo.Dependency.SqlClient
ThinkGeo.Dependency.Jint
ThinkGeo.Dependency.SQLite
ThinkGeo.Dependency.WriteableBitmapEx
- Redesign GeoCanvas based on SkiaSharp.
- Updated all the C++ runtime to one single version, use MSVC140.
- Use one GDAL C# wrap instead of raster layer wrappers, like JPEG2000, ECW, MrSid, Tiff, .etc.
- Removed FDO, and SDF layer.
- Renamed our all MapControl to MapView.
- Used GDAL for S57 and FileGeoDatabase and PersonalGeoDatabase, this will inherit from GDAL Feature Layer.
- MapSuite TileCache/Tile Matrix, based on current design, the TileView, TileCache, Tile, Matrix are thread safe. It will improve the performance greatly.
- Matrix: Create/Calculate the matrix system for TileLayer and TileOverlay.
- Tile: The tiles for the cached items, the tile contains the tile data and tile location (z,x,y)
- TileCache: Tile Cache for ThinkGeo, it work with one tile.
- TileView: TileOverlay each tile view, it only draw the layers or render the drawing result in UI.
- Refine our MapSuite properties, make sure set one property won’t change other properties, like Map.Unit will update the map extent, .etc.
- Support Rotation for WPF.
- Support StyleJson.