این صفحه هنوز ترجمه نشده است؛ نسخهٔ انگلیسی نمایش داده میشود.
IRI.Maptor.Core.SpatialReferenceSystem
Spatial reference systems, geodetic transformations, and map projections for the Maptor stack. Implements the horizontal coordinate systems of geodesy — terrestrial (conventional/instantaneous terrestrial, geodetic, local geodetic, local astronomic), celestial (apparent place, right ascension, horizontal angle), and orbital — together with the transformations between them and the common map projections.
Installation
dotnet add package IRI.Maptor.Core.SpatialReferenceSystem
Features
- Map projections: Mercator, Web Mercator, Transverse Mercator, UTM, cylindrical equal-area, Lambert conformal conic (1- and 2-parallel), and Albers equal-area conic (function form in
MapProjects) - Reference ellipsoids: predefined models (WGS84, GRS80, Clarke 1866/1880, Bessel 1841, International 1924, …) plus custom ellipsoids via semi-major/semi-minor axis parameters
- Coordinate system transformations (
Transformations): geodetic to geocentric Cartesian and back, datum change between ellipsoids (ChangeDatum), average/instantaneous terrestrial, local astronomic and local geodetic, horizontal angle, apparent place, and orbital conversions - Typed geodetic points (
GeodeticPoint<TLinear, TAngular>) built on the unit types ofIRI.Maptor.Core.Common - Ready-made SRS definitions (
SrsBases:GeodeticWgs84,WebMercator, UTM zones, Lambert variants) and SRID helpers (SridHelper: 4326, 3857, 102100)
Usage
Convert a geodetic position to geocentric Cartesian coordinates:
using IRI.Maptor.Core.Common.Primitives;
using IRI.Maptor.Core.SpatialReferenceSystem;
var wgs84 = Ellipsoids.WGS84;
var geodetic = new Point(51.123456, 35.123456); // longitude, latitude in degrees
var cartesian = Transformations.ToCartesian(geodetic, wgs84);
Project geodetic coordinates to Mercator:
using IRI.Maptor.Core.Common.Primitives;
using IRI.Maptor.Core.SpatialReferenceSystem;
var projected = MapProjects.GeodeticToMercator(new Point(51.4, 35.7));
Work with typed geodetic points:
using IRI.Maptor.Core.Common.Metrics;
using IRI.Maptor.Core.SpatialReferenceSystem;
var point = new GeodeticPoint<Meter, Degree>(
Ellipsoids.WGS84,
new Meter(0),
new Degree(51.123456),
new Degree(35.123456));
var cartesian = point.ToCartesian<Meter>();
See also
- Coordinate systems — the geocentric/topocentric systems and how
Transformationsconverts between them - Map projections — UTM, Web Mercator, and the other implemented projections
- Models — reference ellipsoids and horizontal datums