Changelog¶
Major changes for ThinkGeo 14.5¶
Release date: 03/31/2026
ThinkGeo.Core Namespace:
New Features & Improvements
- Added
ArcGisServerRestVectorAsyncLayerfor querying and rendering ArcGIS Server REST vector feature services. - Added
WfsV2AsyncLayerfor WFS 2.0 endpoints, with improved query string generation and property-name handling; it replacesWfsV2FeatureLayerfor WFS 2.0. - Added
Feature.MakeGeometryValid()to repair invalid geometries using NetTopologySuite. - Added
Feature.IsGeometryValid(out TopologyValidationError validationError)to validate a geometry and return the validation error when it is invalid. - Added
PolygonSeamRenderingModeto control polygon seam sealing independently of vector anti-aliasing and eliminate thin white seams between adjacent filled polygons with no outline. - Added
RasterXyzTileAsyncLayer.MinZoomOfTheDataandRenderBeyondMinZoom. - Added
DrawingExceptionMode.IgnoreException; layers that throw exceptions can now be ignored - Made
XyzTileOverlay.XyzTileAsyncLayerpublic. - Added
LineStyle.OffsetFromLinefor rendering lines at a parallel offset from the feature geometry. - Added
mapbox://URI support for sprites and glyphs referenced by MapBox style JSON. - Improved MapBox Streets v11 compatibility for
line-pattern,fill-pattern, and advanced text-layout properties. - Standardized number parsing on
CultureInfo.InvariantCultureto fix locale-specific coordinate and style parsing issues. - Upgraded magnetic declination data from IGRF13 to IGRF14.
- Added XML round-trip serialization support for
WebXyzRasterTileAsyncLayer. - Improved
TextStyleformatting support forNumericFormat,DateFormat, andTextFormat. - Added per-character font fallback in
SkiaGeoCanvasand the newCreatingSKTypefaceForCharacterevent for custom font resolution. - Enhanced
ScaleLineAdornmentLayerwithAboveLabelTextStyle,BelowLabelTextStyle,AboveLabelMargin, andBelowLabelMargin, plus better default text sizing. - Added Noto Sans as the default fallback font.
- Updated
FileGeoDatabaseFeatureLayer.GetInternalProj4ProjectionParametersString()to return the table's spatial reference, enabling CRS detection without a.prjfile. - Unified raster resampling under
RasterResamplingModeacross GeoTiff, Skia raster, and GDAL sources. - Added
SkiaRenderingOptionsfor fine-grainedSkiaGeoCanvasrendering configuration. - Reworked SkiaSharp bitmap/image ownership for better thread safety and lower contention in multi-tile rendering.
- Cached
StyleJsonTextStylezoom-level state and icon lookups to remove repeated allocations on unchanged zoom levels. - Released
ThinkGeoVectorMapsAsyncLayerfeature data and style references immediately after each tile draw to reduce peak heap usage during concurrent rendering. - Replaced
MultipolygonShapeconvex hull generation inPositionStylewith Andrew's monotone chain algorithm for faster, correct results.
Bug Fixes
- Fixed FileGDB multipart polygon conversion so outer and inner rings are classified correctly and emitted as
PolygonorMultiPolygonWKB as appropriate. - Fixed FileGDB polygon spatial queries throwing
TopologyExceptionfrom NTS. - Fixed a projected
MvtTilesAsyncLayerrendering regression introduced in14.4.x. - Fixed MVT tile seam artifacts when the overlay is in
SingleTilemode. - Fixed incorrect label offsets when labels are placed on rotated lines.
- Fixed the text-wrapping algorithm for CJK text so it no longer wraps mid-character.
- Fixed text wrapping so it accounts for canvas
ScaleFactor. - Fixed StyleJson icon/label conflict detection so the icon bounding box is included in the candidate region.
- Fixed StyleJson icon placement so it scales correctly with canvas
ScaleFactor. - Fixed thin white seams between adjacent filled polygons when outlines are disabled.
- Fixed
WmtsAsyncLayerfailures with servers that use decimal-degreeTileMatrixdefinitions. - Fixed
ProjectionConverternot handling the+Rproj4 parameter. - Fixed
PointShape.GreatCircle()returningNaNcoordinates for antipodal inputs. - Fixed
OgcApiFeatureSourceentering an infinite request loop when the server is offline. - Fixed an exception when zooming out past tiles with
RenderBeyondMaxZoomenabled. - Fixed
RenderBeyondMaxZoomnot working for the decimal-degrees map unit. - Fixed intermittent font rendering corruption where characters could mix between glyphs.
- Fixed
SkiaRasterSourcefailing to load PNG images from memory streams. - Fixed a
CartographicTilesresampling regression introduced in14.4.x. - Fixed an
AsyncLockerthreading conflict. - Fixed a
DrawGlyphthread-safety issue. - Fixed labels appearing below the line centerline instead of centered on it.
- Fixed
TextStyle.TextPlacementleft and right being swapped for point features. - Fixed
GeoJsonFeatureSourcefailing to parse features with special characters in property values. - Fixed images appearing blurry when pixel-stretched in a
14.4.xregression. - Fixed SkiaSharp resource leaks and
GeoImagelifecycle issues under concurrent tile drawing. - Fixed some meter-based projections failing to compute intersections against the SphericalMercator max extent.
- Fixed
GeoCanvas.Clear()not taking effect in certain rendering scenarios. - Fixed adornments rendering incorrectly on canvases with
ScaleFactor > 1. - Updated the NOAA weather alerts feed URL to
https://api.weather.gov/alerts/active.atom.
ThinkGeo.UI.Maui Namespace:
New Features & Improvements
- Added mouse-wheel zoom support on the Windows MAUI target.
- Reduced peak memory usage by releasing tile
ImageContentbyte arrays after posting tiles to the screen and reloading them on demand fromInMemoryRasterTileCache.
Bug Fixes
- Fixed popups rendering at incorrect positions during initialization.
- Fixed
MapView.EventViewnot correctly replacing its visual child when reassigned. - Fixed a race condition in tile candidate resolution and cancellation cleanup inside
TileOverlay. - Fixed a memory leak where tile-view resources were not released and vector-tile event handlers were not detached on dispose.
- Fixed native
Imageinstances not being disposed, causing a memory leak. - Fixed seams on transparent background tiles through deterministic runtime compensation.
- Fixed
TrackInteractiveOverlay.VertexAddingnot being raised correctly. - Fixed the first overlay draw using an incorrect viewport size before
MapViewis fully laid out.
Major changes for ThinkGeo 14.4.2¶
Release date: 11/03/2025
ThinkGeo.Core Namespace:
- XyzLruCache: Handles Capacity == 0 gracefully (effectively disables caching without errors).
- Improved HatchStyle:
Fixed a bug (introduced in v14.4.1) where HatchStyle were not displayedRendering now respects the ScaleFactor, which make it work better on a High-Res screenAdded protected virtual method GeoHatchBrush.GetHatchPatternSvgCore to allow custom hatch patterns
Major changes for ThinkGeo 14.4.1¶
Release date: 10/20/2025
ThinkGeo.Core Namespace:
- Fixed an issue where creating a new table in a File GeoDatabase could fail.
- Fixed an issue where the Projection property doesn't work in WmsAsyncLayer.
- Added support for local sprite files in StyleJson.
- Added HatchBrush support in WpfDrawingCanvas and unified HatchBrush behavior between WpfDrawingCanvas and SkiaCanvas.
- Changed ProjectionConverter to suppress inner exceptions by default.
- Improved performance by adding caching to Projection and WmtsAsyncLayer.
ThinkGeo.UI.Maui Namespace
- Fixed an issue where a network stream could not be loaded into XmlDocument when multiple layers were present.
- Fixed an issue where the OGC API layer did not work in .NET MAUI.
Major changes for ThinkGeo 14.4¶
Release date: 10/10/2025
ThinkGeo.Core Namespace:
-
MvtTilesAsyncLayer greatly improved:
Supported ProjectionSupported Vector Tile CachingEnhanced robustness and reliability
-
WfsV2FeatureLayer improvements:
Added support for MultiPolygon geometriesImproved URI flexibility and automatic axis-order detection based on projectionFixed a bug preventing WFS from working correctly when added to a LayerOverlay.Enhanced robustness and reliability.
-
Upgraded ThinkGeo.Cad to use the latest ODA SDK v26.7.
- Fixed thread-safety issues in
GdalProjectionConverter.Convert(). - Created
SkiaGeoCanvas.CreatingSKTypefacesForTextevent to give user an option to customize the loading SKTypeface. - Fixed incorrect anchoring behavior in ScaleLineAdornmentLayer.
- Fixed exception when both
WhereClauseandMaxRecordsToDrawwere set in PostgresFeatureSource.
Major changes for ThinkGeo 14.3.2¶
Release date: 7/28/2025
ThinkGeo.Core Namespace:
- Fixed an issue where MapPrinterLayer.Projection wasn’t respected in MagneticDeclinationPrinterLayer.
- Fixed an issue where certain MultiPolygon geometries were not supported in WFS 2.
- Enhanced WfsV2Layer to accept more flexible URIs (e.g. URIs containing ?SERVICE=WFS&VERSION=2.0.0).
- Enhanced MvtAsyncLayer to support local MBTiles referenced in the style JSON.
- Enhanced SkiaRasterLayer to lazily load only the needed tiles when the image is backed by a CPU‑resident pixel buffer.
- Added a cache‑generation API: LayerBase.GenerateTileCacheAsync().
Major changes for ThinkGeo 14.3.1¶
Release date: 6/3/2025
ThinkGeo.Core Namespace:
- Fixed an issue where BulkSize was not applied in some cases when using OgcApiFeaturesSource.GetRequestUrlForFeatures.
- Fixed an issue where WMS layer sent larger than necessary requests when the scale factor exceeded 100%.
- Removed some restrictions on column names in feature sources (e.g., "[" is now a valid character in shapefile column names).
- Deprecated BingMapsAsyncLayer; added support for AzureMapsRasterAsyncLayer.
ThinkGeo.UI.Maui Namespace
- Ensured map animations are properly cancelled in Dispose().
Major changes for ThinkGeo 14.3¶
Release date: 5/7/2025
ThinkGeo.Core Namespace:
- Streamlined the architecture of all XYZ-based layers and improved performance.
- Added RenderBeyondZoom and ProjectionConverter support to all RasterXyzTileAsyncLayer types (including WmtsAsyncLayer, RasterMbTilesAsyncLayer, etc.).
- Added a CacheGenerator API on RasterXyzTileAsyncLayer to create tile caches for a specified extent and zoom range.
- Added support for MvtTilesAsyncLayer and enhanced MbVectorTilesLayer (now inheriting from VectorXyzTileAsyncLayer).
- Added ProjectionConverter support to WmsAsyncLayer.
- Exception Handling: Streamlined the error-handling workflow across all layers.
ThinkGeo.UI.Maui Namespace
- Supported Map Tilting
Major changes for ThinkGeo 14.2¶
Release date: 10/10/2024
ThinkGeo.Core Namespace:
- 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.
ThinkGeo.UI.Maui Namespace
- improve the performance of all WebBasedOverlays by avoiding unnecessary conversions to SKImage
- Support Marker.Tap event
- Support AdornmentOverlay.
ThinkGeo.UI.iOS nuget package is upgraded to .NET 8 from Xamarin.iOS.
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 Mobile has transitioned to .NET MAUI from Xamarin.Forms starting with this release. This change follows Microsoft’s discontinuation of support for Xamarin.Forms as of today (May 1, 2024). This release is a complete rewrite, enhancing the existing features and introducing significant improvements to the map, as detailed below:
- Expanded platform support to include iOS, Android, Windows, and MacCatalyst.
- Improved map animations for smoother and more responsive performance.
- Enhanced customization options for markers and pop-ups.
- Enhanced shape editing.
- Expanded dynamic labeling.
- Increased exposure of internal debugging information.
- Introduced progressive feature display, particularly for servers with paging capabilities, such as WFS V2 and OGC-API Features.
- Enhanced online data support out-of-the-box:
ArcGIS Server RESTBing MapsGoogle MapsHere Raster MapsMapBox Static TilesNOAA Weather StationsNOAA Weather WarningsOpenStreetMapOGC API FeaturesThinkGeo MapsWFS (Web Feature Service)WMS (Web Map Service)WMTS (Web Map Tile Service)XYZ-based Servers
- Enhanced offline data support out-of-the-box:
GeoTiffGridGpxRasterImagesShapefileSQLiteTabThinkGeo MBTilesTinyGeo
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.
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:
ArcGisServerRestLayerBingMapsLayerCloudMapClientGoogleMapsLayerHereMapsRasterTileLayerLayerAsyncMapBoxStaticTilesLayerOpenStreetMapLayerRasterLayerAsyncRasterSourceAsyncThinkGeoCloudRasterMapsLayerThinkGeoCloudVectorMapsLayerWebBasedLayerWmsRasterLayerWmsRasterSourceWmtsLayerXYZTileLayer
-
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
WmsLayerfunctionality with new helper methods and better server compatibility.
ThinkGeo.UI.iOS Namespace / ThinkGeo.UI.Android Namespace
- Upgrade all the WebBasedOverlays to internally use the new WebBasedLayers with asynchronous data fetching.
- Improved exception management using
Overlay.DrawingExceptionModeproperty andOverlay.ThrowingExceptionevent.
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.
ThinkGeo.UI.XamarinForms Namespace / ThinkGeo.UI.iOS Namespace / ThinkGeo.UI.Android Namespace
- Created Async versions, as necessary, for MapView and Overlays and marked the corresponding sync versions of the APIs as obsolete.
- Refined the Map Pinch Rotation feature.
- Significantly improved overall performance on both Android and iOS platforms.
- Implement the feature to position the map by defining the center point and scale, instead of setting a bounding box.
- Enhanced pop-ups for better compatibility with iOS Dark Theme.
- Optimized TrackInteractiveOverlay and EditInteractiveOverlay, added necessary events, and improved editing smoothness.
Major changes for ThinkGeo 13.0¶
Release date: 11/29/2022
ThinkGeo.Core Namespace:
- Improved the accuracy and performance of isolines.
- 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 HereMapsRasterTileLayer
- Supported deleting/adding/editing columns for TabFiles.
- Upgraded all the dependencies to the latest (up to 11/28/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.XamarinForms Namespace / ThinkGeo.UI.iOS Namespace / ThinkGeo.UI.Android Namespace
- Update Xamarin.Forms to the latest 5.0.0.2515.
- Improve the performance of map resizing by avoiding redrawing the layers in real time.
- Improved the map responsiveness by reaffirming using async for all the IO-intensive APIs.
- Fixed the issue where the event arguments of ExtentChanged and ExtentChanging are inaccurate.
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.XamarinForms Namespace / ThinkGeo.UI.iOS Namespace / ThinkGeo.UI.Android 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.
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.