HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon
1.0.7
Prefix Reserved
dotnet add package HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon --version 1.0.7
NuGet\Install-Package HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon -Version 1.0.7
<PackageReference Include="HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon" Version="1.0.7" />
<PackageVersion Include="HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon" Version="1.0.7" />
<PackageReference Include="HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon" />
paket add HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon --version 1.0.7
#r "nuget: HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon, 1.0.7"
#:package HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon@1.0.7
#addin nuget:?package=HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon&version=1.0.7
#tool nuget:?package=HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon&version=1.0.7
GeoJsonCircleToPolygon
GeoJsonCircleToPolygon is a library to convert circles to polygons and to generate GeoJSON representations of them, a fork of https://github.com/gabzim/circle-to-polygon ported to C#. Special thanks to Gabriel Zimmermann, Johannes Jarbratt and Jan Žák for the original work.
Available for
- Net 8.0
- Net 10.0
Net Core and Net Framework latest and LTS versions
Basic usage
public void Test()
{
// For decimals:
var coordinatesDecimal = new decimal[] { 173.283966m, -41.270634m };
var resultDecimal = CircleToPolygonHelperDecimal.GetPolygonFromCircle(coordinatesDecimal, 200000, 32);
// For usage in the GeoJSON format.
var featureCollectionDecimal = new GeoJsonFeatureCollectionDecimal();
featureCollectionDecimal.AddCoordinates(resultDecimal);
var geoJsonDecimal = featureCollectionDecimal.ToString();
// -----------------------------------------------------------
// For doubles:
var coordinatesDouble = new double[] { 173.283966, -41.270634 };
var resultDouble = CircleToPolygonHelperDouble.GetPolygonFromCircle(coordinatesDouble, 200000, 32);
// For usage in the GeoJSON format.
var featureCollectionDouble = new GeoJsonFeatureCollectionDouble();
featureCollectionDouble.AddCoordinates(resultDouble);
var geoJsonDouble = featureCollectionDouble.ToString();
}
Parameters
center: The center coordinates: Array of length 2 (Required)- First element: Longitude (Required)
- Second element: Latitude (Required)
radiusInMeters: Radius in meters (Required)numberOfEdges: The number of edges (Defaults to 32)bearing: How many degrees the circle should be rotated which is most noticeable for "circles" with few edges (Defaults to 0)direction: The direction of the circle (1 means right-hand-rule, -1 is opposite) (Defaults to 1)earthRadius: The earth radius (Defaults to 6378137)
Disclaimers
- A circle whose edge cross longitude edges (-180 or 180) or a latitude edge (-90 or 90) will contain coordinate points that are outside the standardized coordinates (eg: [182, 23]). This is because there are two ways to represent a line going from [179, x] to [181, y]. One way is simply writing it as [[179, x], [182, y]] while the other is to write it as a multi-polygon. There is a plan to support multi-polygons but it has not yet been implemented.
NuGet
The project can be found on nuget.
Install
dotnet add package HaemmerElectronics.SeppPenner.GeoJsonCircleToPolygon
Change history
See the Changelog.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version 1.0.7.0 (2026-08-12): Merged the duplicated circle calculation into one generic implementation, the public API is unchanged, fixed the broken package description.