Układy odniesienia przestrzennego
Tworzenie układów odniesienia przestrzennego
Utwórz układ odniesienia przestrzennego za pomocą identyfikatora EPSG (SRID)
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var srs = SpatialReferenceSystem.CreateFromEpsg(26918); | |
Console.WriteLine("SRS Name: {0}", srs.Name); // NAD83 / UTM zone 18N | |
Console.WriteLine("SRS EPSG code: {0}", srs.EpsgCode); // 26918 | |
Console.WriteLine("Datum name: {0}", srs.GeographicDatum.Name); // North_American_Datum_1983 | |
Console.WriteLine("Datum EPSG code: {0}", srs.GeographicDatum.EpsgCode); // 6269 | |
Console.WriteLine("Ellipsoid name: {0}", srs.GeographicDatum.Ellipsoid.Name); // GRS 1980 | |
Console.WriteLine("Ellipsoid EPSG code: {0}", srs.GeographicDatum.EpsgCode); // 6269 | |
Console.WriteLine("Type: {0}", srs.Type); // Projected | |
Console.WriteLine("Dimensions count: {0}", srs.DimensionsCount); // 2 | |
Console.WriteLine("First dimension name: {0}", srs.GetAxis(0).Name); // X | |
Console.WriteLine("First dimension direction: {0}", srs.GetAxis(0).Direction); // East | |
Console.WriteLine("Second dimension name: {0}", srs.GetAxis(1).Name); // Y | |
Console.WriteLine("Second dimension direction: {0}", srs.GetAxis(1).Direction); // North | |
Console.WriteLine("First dimension unit: {0}, {1}", srs.GetUnit(0).Name, srs.GetUnit(0).Factor); // metre, 1 | |
Console.WriteLine("Second dimension unit: {0}, {1}", srs.GetUnit(1).Name, srs.GetUnit(1).Factor); // metre, 1 |
Utwórz układ odniesienia przestrzennego z WKT (Well-Known text)
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
string wkt = @" | |
GEOGCS[""WGS 84"", | |
DATUM[""WGS_1984"", | |
SPHEROID[""WGS 84"",6378137,298.257223563, | |
AUTHORITY[""EPSG"",""7030""]], | |
AUTHORITY[""EPSG"",""6326""]], | |
PRIMEM[""Greenwich"",0, | |
AUTHORITY[""EPSG"",""8901""]], | |
UNIT[""degree"",0.01745329251994328, | |
AUTHORITY[""EPSG"",""9122""]], | |
AUTHORITY[""EPSG"",""4326""]] | |
"; | |
var srs = SpatialReferenceSystem.CreateFromWkt(wkt); | |
Console.WriteLine("SRS Name: {0}", srs.Name); // WGS 84 | |
Console.WriteLine("SRS EPSG code: {0}", srs.EpsgCode); // 4326 | |
Console.WriteLine("Datum name: {0}", srs.GeographicDatum.Name); // WGS_1984 | |
Console.WriteLine("Datum EPSG code: {0}", srs.GeographicDatum.EpsgCode); // 6326 | |
Console.WriteLine("Ellipsoid name: {0}", srs.GeographicDatum.Ellipsoid.Name); // WGS 84 | |
Console.WriteLine("Ellipsoid EPSG code: {0}", srs.GeographicDatum.EpsgCode); // 7030 | |
Console.WriteLine("Type: {0}", srs.Type); // Geographic | |
Console.WriteLine("Dimensions count: {0}", srs.DimensionsCount); // 2 | |
Console.WriteLine("First dimension name: {0}", srs.GetAxis(0).Name); // Longitude | |
Console.WriteLine("First dimension direction: {0}", srs.GetAxis(0).Direction); // EAST | |
Console.WriteLine("Second dimension name: {0}", srs.GetAxis(1).Name); // Latitude | |
Console.WriteLine("Second dimension direction: {0}", srs.GetAxis(1).Direction); // NORTH | |
Console.WriteLine("First dimension unit: {0}, {1}", srs.GetUnit(0).Name, srs.GetUnit(0).Factor); // degree, 0.01745... | |
Console.WriteLine("Second dimension unit: {0}, {1}", srs.GetUnit(1).Name, srs.GetUnit(1).Factor); // degree, 0.01745... | |
var geogSrs = srs.AsGeographic; | |
Console.WriteLine("Angular unit: {0}, {1}", geogSrs.AngularUnit.Name, geogSrs.AngularUnit.Factor); // degree, 0.01745... | |
Console.WriteLine("Prime meridian: {0}, {1}", geogSrs.PrimeMeridian.Name, geogSrs.PrimeMeridian.Longitude); // Greenwich, 0 |
Utwórz układ odniesienia przestrzennego z niestandardowymi parametrami
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var parameters = new ProjectedSpatialReferenceSystemParameters | |
{ | |
Name = "WGS 84 / World Mercator", | |
Base = SpatialReferenceSystem.Wgs84, | |
ProjectionMethodName = "Mercator_1SP", | |
LinearUnit = Unit.Meter, | |
XAxis = new Axis("Easting", AxisDirection.East), | |
YAxis = new Axis("Northing", AxisDirection.North), | |
AxisesOrder = ProjectedAxisesOrder.XY, | |
}; | |
parameters.AddProjectionParameter("central_meridian", 0); | |
parameters.AddProjectionParameter("scale_factor", 1); | |
parameters.AddProjectionParameter("false_easting", 100); | |
parameters.AddProjectionParameter("false_northing", 100); | |
var projectedSrs = SpatialReferenceSystem.CreateProjected(parameters, Identifier.Epsg(3395)); |
Praca z układami odniesienia przestrzennego
Sprawdź obsługę układu odniesienia przestrzennego przez sterownik
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs72); // true | |
Drivers.GeoJson.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84); // true | |
Drivers.GeoJson.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs72); // false |
Eksportuj układ odniesienia przestrzennego do WKT
Tekst Well-Known (WKT) to język znaczników tekstowych służący do reprezentowania obiektów geometrii wektorowej na mapie, układów odniesienia przestrzennego obiektów przestrzennych i transformacji między układami odniesienia przestrzennego. API Aspose.GIS umożliwia tworzenie układu odniesienia przestrzennego z WKT, jak pokazano w następującym przykładowym kodzie.
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var parameters = new ProjectedSpatialReferenceSystemParameters | |
{ | |
Name = "WGS 84 / World Mercator", | |
Base = SpatialReferenceSystem.Wgs84, | |
ProjectionMethodName = "Mercator_1SP", | |
LinearUnit = Unit.Meter, | |
XAxis = new Axis("Easting", AxisDirection.East), | |
YAxis = new Axis("Northing", AxisDirection.North), | |
AxisesOrder = ProjectedAxisesOrder.XY, | |
}; | |
parameters.AddProjectionParameter("central_meridian", 0); | |
parameters.AddProjectionParameter("scale_factor", 1); | |
parameters.AddProjectionParameter("false_easting", 0); | |
parameters.AddProjectionParameter("false_northing", 0); | |
var projectedSrs = SpatialReferenceSystem.CreateProjected(parameters, Identifier.Epsg(3395)); | |
string wkt = projectedSrs.ExportToWkt(); | |
Console.WriteLine(wkt); |
Porównaj układy odniesienia przestrzennego
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
string wkt = @" | |
GEOGCS[""WGS 84"", | |
DATUM[""WGS_1984"", | |
SPHEROID[""WGS 84"",6378137,298.257223563, | |
AUTHORITY[""EPSG"",""7030""]], | |
AUTHORITY[""EPSG"",""6326""]], | |
PRIMEM[""Greenwich"",0, | |
AUTHORITY[""EPSG"",""8901""]], | |
UNIT[""degree"",0.01745329251994328, | |
AUTHORITY[""EPSG"",""9122""]], | |
AUTHORITY[""EPSG"",""4326""]] | |
"; | |
var srs = SpatialReferenceSystem.CreateFromWkt(wkt); | |
srs.IsEquivalent(SpatialReferenceSystem.Wgs84); // true |