Skip to content

Latest commit

 

History

History
109 lines (84 loc) · 5.32 KB

Readme.md

File metadata and controls

109 lines (84 loc) · 5.32 KB

What is DotSpatial?

DotSpatial is a geographic information system library written for .NET Framework (please see Pandell variant for .NET Core 3.1+). It allows developers to incorporate spatial data, analysis and mapping functionality into their applications or to contribute GIS extensions to the community.

DotSpatial provides a map control for .NET and several GIS capabilities including:

  • Display a map in a .NET Windows Forms.
  • Open shapefiles, grids, rasters and images.
  • Render symbology and labels.
  • Reproject on the fly.
  • Manipulate and display attribute data.
  • Scientific analysis.
  • Read GPS data.

Questions & Documentation

Please use the discussion list to post any discussions related to the development or use of DotSpatial libraries. This is a great place to discuss potential features and to ask questions about how to use the libraries.

Documentation and code samples:

Still have questions? Maybe someone already asked them.

Contribute

See Contributing for information about how to contribute!

Links

License

It's MIT. The original DotSpatial (dotspatial.codeplex.com) was released under the LGPL, the new version hosted on GitHub is released under the MIT license.

NuGet packages

You can download the latest stable release via NuGet.

Package
DotSpatial.Serialization
DotSpatial.Data
DotSpatial.Data.Forms
DotSpatial.Topology
DotSpatial.Projections
DotSpatial.Projections.Forms
DotSpatial.Analysis
DotSpatial.Compatibility
DotSpatial.Controls
DotSpatial.Extensions
DotSpatial.Modeling.Forms
DotSpatial.Symbology
DotSpatial.Symbology.Forms
DotSpatial.Mono
DotSpatial.Positioning
DotSpatial.Positioning.Forms
DotSpatial.Positioning.Design

Pandell variant

  • Builds using .NET Core SDK (3.1.301 or newer)
  • Removes dependency on GeoAPI
  • Updates NetTopologySuite dependency to version 2.0.0

How to develop

# verify .NET SDK
dotnet --info
# => .NET Core SDK (reflecting any global.json):
# => Version: 3.1.402
# => ...

# download repository
cd [development-directory-root]
git clone https://github.com/pandell/DotSpatial.git
cd DotSpatial

# build ("Debug" configuration)
dotnet build

# test ("Debug" configuration)
dotnet test -m:1 # "-m:1" tests assemblies sequentially, not in parallel
dotnet test -m:1 -v normal --no-build # prints tests being run, faster startup, sequential

# package ("Release" configuration)
# note: only specify "IsExperimental=True" property for pre-release builds
# this will create packages with version "X.Y.Z-preview.Q"
git clean -dfx
dotnet pack --configuration Release --output build -p:BUILD_NUMBER=X.Y.Z.Q -p:IsExperimental=True

# push all projects to Pandell's MyGet server (requires "package" step above to be run first)
# note: in addition to ".nupkg", the command below will automatically
# detect ".snupkg" symbol package and push both ".nupkg" and ".snupkg"
# to the specified NuGet server; for more information see
# https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg
# dotnet nuget push build/*.nupkg --api-key SECRET --source https://api.nuget.org/v3/index.json
# (note about package pattern: .NET Core SDK 3.1.402 fails with "File does not exist"
# when using "universal directory separator" '/', so we have to use Windows-only '\' for now)
dotnet nuget push build\*.nupkg --api-key SECRET --source https://www.myget.org/F/pandell-nuget/auth/SECRET/api/v3/index.json