Changelog¶
Major changes for ThinkGeo 14.2¶
Release date: 10/10/2024
ThinkGeo.Core Namespace:
- Upgraded ThinkGeo.Gdal to use Gdal v3.9.1 for both Windows and Linux.
- Added the Weight property to GridCell in GridFeatureLayer.
- Improved the performance of loading and saving tiles from/to the cache.
- Fixed a performance issue where the license was being over-checked.
- Enhanced support for sparse matrices (where some cells are null) in InMemoryGridFeatureSource
- Made WMTSLayer auto-detect the server type (Restful or KVP).
- Fixed an issue where the WMTSLayer was a couple of meters off at lower zoom levels.
- Resolved a conversion issue between Srid and ProjString in the managed projection converter.
Major changes for ThinkGeo 14.1¶
Release date: 6/6/2024
ThinkGeo.Core Namespace:
- Added MbTilesLayer that renders the MBTiles v1.3 dataset using the standard StyleJson.
- Added MbTilesRasterLayer that renders the standard MBRasterLayer
Major changes for ThinkGeo 14.0¶
Release date: 5/1/2024
ThinkGeo.Core Namespace:
- Added OGC Features API Support
- Added WFS V2 Support
Major changes for ThinkGeo 13.3¶
Release date: 4/16/2024
ThinkGeo.Core Namespace:
- Fixed the issue that NoaaWeatherStationFeatureLayer not working
- Fixed the issue that NoaaWeatherWarningsFeatureLayer not working
- Fixed the issue that map border discrepancies when isGrayScale is set to true on MapPrinterLayer.
- Fixed the alignment issues in LabelPrinterLayer when printing to PDF.
- Enhanced LayerAsync by adding CancellationToken to OpenAsync() and CloseAsync() methods in AsyncLayer.
- Enhanced RasterTileCache by support saving and retrieving tiles asynchronously.
- Enhanced Docker compatibility by removing C++ redistributable installation from ThinkGeo.Core.
- Enhanced Performance of ColorTransformation for large image layers. Added KML support through GDAL on Linux platforms.
Major changes for ThinkGeo 13.2¶
Release date: 11/29/2023
ThinkGeo.Core Namespace:
-
Added the following classes with asynchronous data fetching to ThinkGeo.Core.Async namespace:
ArcGisServerRestLayer
BingMapsLayer
CloudMapClient
GoogleMapsLayer
HereMapsRasterTileLayer
LayerAsync
MapBoxStaticTilesLayer
OpenStreetMapLayer
RasterLayerAsync
RasterSourceAsync
ThinkGeoCloudRasterMapsLayer
ThinkGeoCloudVectorMapsLayer
WebBasedLayer
WmsRasterLayer
WmsRasterSource
WmtsLayer
XYZTileLayer
-
Upgraded the ThinkGeo.CAD dependencies to the latest version as of November 2023 (ODA 24.9).
- Fixed the issue where a layer is not showed up correctly when setting a custom style to the DefaultStyle instead of adding it to the CustomStyles collection
- Enhanced
WmsLayer
functionality with new helper methods and better server compatibility.
Major changes for ThinkGeo 13.1¶
Release date: 7/7/2023
ThinkGeo.Core Namespace:
- Optimized performance for layers at lower zoomlevels.
- Enhanced the performance of NoaaWeatherStationsLayer and NoaaWeatherWarningsLayer.
- Implemented AsyncLocker, replacing lock() internally wherever possible.
- Added support for V2 and X2 to ThinkGeoCloudRasterMapsLayer. Note: V2 represents the 2nd version, and X2 signifies High DPI.
- Added PositionStyle.AllowLabelNudging to permit label nudging.
- Introduced FeatureSource to GridDefinition to leverage featureSource's spatial index during InterpolationModel calculations.
- Fixed an issue causing GeoTiff to produce a vertical white line at certain zoom levels.
- Fixed an issue where some WKTs failed to function properly with French system culture.
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.
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.
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.Blazor Namespace:
- Fixed a bug where AdornmentOverlay.Redraw doesn't work.
- Fixed a bug where RestrictExtent doesn't work when zooming out for ThinkGeo.UI.Blazor.
- Renamed "MapView.MaxExtent" to "MapView.RestrectExtent" for ThinkGeo.UI.Blazor.
- Changed longitude and latitude parameter order for some API.
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 name;
-
ThinkGeo.UI.Wpf
-
ThinkGeo.UI.Blazor
-
ThinkGeo.UI.WebApi
-
ThinkGeo.Core
- ThinkGeo.Gdal
- ThinkGeo.Ecw
- ThinkGeo.Cad
- ThinkGeo.GeoTiff
- ThinkGeo.Jpeg2000
- ThinkGeo.MrSi
- 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.