Skip to content

Latest commit

 

History

History
135 lines (95 loc) · 4.64 KB

README.md

File metadata and controls

135 lines (95 loc) · 4.64 KB

NuGet Version NuGet Version NuGet Version Build status

GeoJSON.Net.Contrib

Repository for all GeoJSON.Net *.Contrib projects

GeoJSON.Net.Contrib.MsSqlSpatial

Allows conversion from / to Microsoft Sql Server geometry and geography data types.

NuGet package: Install-Package GeoJSON.Net.Contrib.MsSqlSpatial

Conversion examples:

using GeoJSON.Net.Geometry;
using Microsoft.SqlServer.Types;
using GeoJSON.Net.Contrib.MsSqlSpatial;

// SqlGeometry sample point
SqlGeometry simplePoint = SqlGeometry.Point(1, 47, 4326);

// SqlGeometry -> GeoJSON example
Point point = simplePoint.ToGeoJSONObject<Point>();

// GeoJSON -> SqlGeometry example
SqlGeometry sqlPoint = point.ToSqlGeometry(4326);

WKT conversion examples:

using GeoJSON.Net.Contrib.MsSqlSpatial;
using GeoJSON.Net.Geometry;

// LineString from WKT
LineString lineString = WktConvert.GeoJSONObject<LineString>("LINESTRING(1 47,1 46,0 46,0 47,1 47)");

// LineString IGeometryObject from WKT
IGeometryObject lineStringGeom = WktConvert.GeoJSONGeometry("LINESTRING(1 47,1 46,0 46,0 47,1 47)");

GeoJSON.Net.Contrib.EntityFramework

Allows conversion from / to EntityFramework geometry and geography data types.

NuGet package: Install-Package GeoJSON.Net.Contrib.EntityFramework

Conversion examples:

using GeoJSON.Net.Geometry;
using GeoJSON.Net.Contrib.EntityFramework;

// DbGeography sample point
var dbGeographyPoint = DbGeography.FromText("POINT(30 10)", 4326);

// DbGeography -> GeoJSON example
Point point = dbGeographyPoint.ToGeoJSONObject<Point>();

// GeoJSON -> DbGeography example
DbGeography dbGeographyPoint = point.ToDbGeography();

GeoJSON.Net.Contrib.Wkb

Allows conversion from / to Wkb binary types. Only X,Y,Z coordinates are supported, attempting to convert a geometry with M coordinates will throw an Exception.

NuGet package: Install-Package GeoJSON.Net.Contrib.Wkb

Conversion examples:

using GeoJSON.Net.Geometry;
using GeoJSON.Net.Contrib.Wkb;

// GeoJson sample point
Point point = new Point(new Position(53.2455662, 90.65464646));

// GeoJson -> Wkb example
byte[] wkbPoint = point.ToWkb();

// Wkb -> GeoJson example
Point pointFromWkb = wkbPoint.ToGeoJSONObject<Point>();

Contribution Guide

Development Environment

Build, test and package the solution

Use shell of your choice (cmd.exe, powershell.exe, pwsh, bash, etc) to run the following commands:

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

# download repository
cd <development-directory-root>
git clone https://github.com/GeoJSON-Net/GeoJSON.Net.Contrib.git
cd GeoJSON.Net.Contrib

# build ("Debug" configuration)
dotnet build src/GeoJSON.Net.Contrib.sln

# test ("Debug" configuration)
dotnet test src/GeoJSON.Net.Contrib.sln

# package ("Release" configuration)
git clean -dfx
dotnet pack --configuration Release src/GeoJSON.Net.Contrib.sln

# push all projects to NuGet 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 **/*.nupkg --api-key SECRET --source https://api.nuget.org/v3/index.json