Procesamiento de Geometría
Contents
[
Hide
]
Reducir la Precisión de una Geometría
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
Point point = new Point(1.344, 2.345, 3.345, 4.345); | |
point.RoundXY(digits: 2); | |
// 1.34, 2.35, 3.345, 4.345 | |
Console.WriteLine("{0}, {1}, {2}, {3}", point.X, point.Y, point.Z, point.M); | |
point.RoundZ(digits: 1); | |
// 1.34, 2.35, 3.3, 4.345 | |
Console.WriteLine("{0}, {1}, {2}, {3}", point.X, point.Y, point.Z, point.M); | |
LineString line = new LineString(); | |
line.AddPoint(1.2, 2.3); | |
line.AddPoint(2.4, 3.1); | |
line.RoundXY(digits: 0); | |
// 1, 2 | |
Console.WriteLine("{0}, {1}", line[0].X, line[0].Y); | |
// 2, 3 | |
Console.WriteLine("{0}, {1}", line[1].X, line[1].Y); |
Obtener el Área de una Geometría
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var triangleRing = new LinearRing(); | |
triangleRing.AddPoint(4, 6); | |
triangleRing.AddPoint(1, 3); | |
triangleRing.AddPoint(8, 7); | |
triangleRing.AddPoint(4, 6); | |
var triangle = new Polygon(triangleRing); | |
var squareRing = new LinearRing(); | |
squareRing.AddPoint(0, 9); | |
squareRing.AddPoint(0, 7); | |
squareRing.AddPoint(2, 7); | |
squareRing.AddPoint(2, 9); | |
squareRing.AddPoint(0, 9); | |
var square = new Polygon(squareRing); | |
var multiPolygon = new MultiPolygon { triangle, square }; | |
Console.WriteLine("{0:F}", triangle.GetArea()); // 4.50 | |
Console.WriteLine("{0:F}", square.GetArea()); // 4.00 | |
Console.WriteLine("{0:F}", multiPolygon.GetArea()); // 8.50 |
Obtener el Centroide
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var polygon = new Polygon(); | |
polygon.ExteriorRing = new LinearRing(new[] | |
{ | |
new Point(1, 0), | |
new Point(2, 2), | |
new Point(0, 4), | |
new Point(5, 5), | |
new Point(6, 1), | |
new Point(1, 0), | |
}); | |
IPoint centroid = polygon.GetCentroid(); | |
Console.WriteLine("{0:F} {1:F}", centroid.X, centroid.Y); // 3.33 2.58 |
Obtener la Envolvente Convexa de una Geometría
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var geometry = new MultiPoint | |
{ | |
new Point(3, 2), | |
new Point(0, 0), | |
new Point(6, 5), | |
new Point(5, 10), | |
new Point(10, 0), | |
new Point(8, 2), | |
new Point(4, 3), | |
}; | |
var convexHull = geometry.GetConvexHull(); | |
// [0] = (0 0) | |
// [1] = (5 10) | |
// [2] = (10 0) | |
// [3] = (0 0) | |
var ring = (ILinearRing)convexHull; | |
for (int i = 0; i < ring.Count; ++i) | |
{ | |
Console.WriteLine("[{0}] = ({1} {2})", i, ring[i].X, ring[i].Y); | |
} |
Obtener el Buffer de una Geometría
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var line = new LineString(); | |
line.AddPoint(0, 0); | |
line.AddPoint(3, 3); | |
// buffer with positive distance contains all points whose distance to input geometry is less or equal to 'distance' argument. | |
var lineBuffer = line.GetBuffer(distance: 1); | |
Console.WriteLine(lineBuffer.SpatiallyContains(new Point(1, 2))); // True | |
Console.WriteLine(lineBuffer.SpatiallyContains(new Point(3.1, 3.1))); // True | |
var polygon = new Polygon(); | |
polygon.ExteriorRing = new LinearRing(new[] | |
{ | |
new Point(0, 0), | |
new Point(0, 3), | |
new Point(3, 3), | |
new Point(3, 0), | |
new Point(0, 0), | |
}); | |
// buffer with negative distance 'shrinks' geometry. | |
var polygonBuffer = (IPolygon)polygon.GetBuffer(distance: -1); | |
// [0] = (1 1) | |
// [1] = (1 2) | |
// [2] = (2 2) | |
// [3] = (2 1) | |
// [4] = (1 1) | |
var ring = polygonBuffer.ExteriorRing; | |
for (int i = 0; i < ring.Count; ++i) | |
{ | |
Console.WriteLine("[{0}] = ({1} {2})", i, ring[i].X, ring[i].Y); | |
} |
Obtener la Longitud de una Geometría
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var line = new LineString(); | |
line.AddPoint(0, 0); | |
line.AddPoint(2, 2); | |
line.AddPoint(2, 0); | |
Console.WriteLine("{0:F}", line.GetLength()); // 4.83 | |
var rectangle = new Polygon(new LinearRing(new[] | |
{ | |
new Point(0, 0), | |
new Point(0, 1), | |
new Point(1, 1), | |
new Point(1, 0), | |
new Point(0, 0), | |
})); | |
// GetLength() returns perimeter for polygons | |
Console.WriteLine("{0:F}", rectangle.GetLength()); // 4.00 |
Obtener un Punto en la Superficie
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
var polygon = new Polygon(); | |
polygon.ExteriorRing = new LinearRing(new[] | |
{ | |
new Point(0, 0), | |
new Point(0, 1), | |
new Point(1, 1), | |
new Point(0, 0), | |
}); | |
IPoint pointOnSurface = polygon.GetPointOnSurface(); | |
// point on surface is guaranteed to be inside a polygon. | |
Console.WriteLine(polygon.SpatiallyContains(pointOnSurface)); // True |
Reemplazar Polígonos por Líneas
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-gis/Aspose.GIS-for-.NET | |
{ | |
var srcGeometry = Geometry.FromText(@"GeometryCollection (POLYGON((1 2, 1 4, 3 4, 3 2)), Point (5 1))"); | |
var dstGeometry = srcGeometry.ReplacePolygonsByLines(); | |
Console.WriteLine($"source: {srcGeometry.AsText()}"); | |
Console.WriteLine($"result: {dstGeometry.AsText()}"); | |
} |