本文整理汇总了C#中Geotools.Geometries.GeometryFactory.CreateLinearRing方法的典型用法代码示例。如果您正苦于以下问题:C# GeometryFactory.CreateLinearRing方法的具体用法?C# GeometryFactory.CreateLinearRing怎么用?C# GeometryFactory.CreateLinearRing使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Geotools.Geometries.GeometryFactory
的用法示例。
在下文中一共展示了GeometryFactory.CreateLinearRing方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Poly1
private Polygon Poly1()
{
_coords1 = new Coordinates();
Coordinate coord = new Coordinate(5, 1);
_coords1.Add(coord);
coord = new Coordinate(6, 2);
_coords1.Add(coord);
coord = new Coordinate(7, 3);
_coords1.Add(coord);
coord = new Coordinate(6, 4);
_coords1.Add(coord);
coord = new Coordinate(5, 5);
_coords1.Add(coord);
coord = new Coordinate(4, 4);
_coords1.Add(coord);
coord = new Coordinate(3, 3);
_coords1.Add(coord);
coord = new Coordinate(4, 2);
_coords1.Add(coord);
coord = new Coordinate(5, 1);
_coords1.Add(coord);
_gf = new GeometryFactory(_precMod, _sRID);
_exterior1 = _gf.CreateLinearRing(_coords1);
Polygon polygon = _gf.CreatePolygon(_exterior1);
return polygon;
}
示例2: ThrowsException
private LinearRing ThrowsException()
{
Coordinates coords = new Coordinates();
Coordinate coord ;//Coordinate(0, 0);
coord = new Coordinate(10, 13);
coords.Add(coord);
coord = new Coordinate(11, 13);
coords.Add(coord);
coord = new Coordinate(12, 13);
coords.Add(coord);
coord = new Coordinate(13, 14);
coords.Add(coord);
coord = new Coordinate(14, 15);
coords.Add(coord);
coord = new Coordinate(15, 16);
coords.Add(coord);
coord = new Coordinate(15, 17);
coords.Add(coord);
coord = new Coordinate(15, 18);
coords.Add(coord);
coord = new Coordinate(14, 19);
coords.Add(coord);
coord = new Coordinate(13, 20);
coords.Add(coord);
coord = new Coordinate(12, 21);
coords.Add(coord);
coord = new Coordinate(11, 21);
coords.Add(coord);
coord = new Coordinate(10, 21);
coords.Add(coord);
coord = new Coordinate(9, 20);
coords.Add(coord);
coord = new Coordinate(8, 19);
coords.Add(coord);
coord = new Coordinate(7, 18);
coords.Add(coord);
coord = new Coordinate(7, 17);
coords.Add(coord);
coord = new Coordinate(7, 16);
coords.Add(coord);
coord = new Coordinate(8, 15);
coords.Add(coord);
coord = new Coordinate(9, 14);
coords.Add(coord);
GeometryFactory gf = new GeometryFactory(_precMod, _sRID);
LinearRing lr = gf.CreateLinearRing(coords);
return lr;
}
示例3: NonSimple
/// <summary>
/// Method to create a NonSimple LinearRing for testing purposes
/// </summary>
/// <returns>A LinearRing</returns>
private LinearRing NonSimple()
{
Coordinates coords = new Coordinates();
Coordinate coord = new Coordinate(0, 0);
coord = new Coordinate(2, 2);
coords.Add(coord);
coord = new Coordinate(3, 1);
coords.Add(coord);
coord = new Coordinate(4, 2);
coords.Add(coord);
coord = new Coordinate(5, 3);
coords.Add(coord);
coord = new Coordinate(6, 4);
coords.Add(coord);
coord = new Coordinate(7, 5);
coords.Add(coord);
coord = new Coordinate(7, 6);
coords.Add(coord);
coord = new Coordinate(7, 7);
coords.Add(coord);
coord = new Coordinate(7, 8);
coords.Add(coord);
coord = new Coordinate(7, 9);
coords.Add(coord);
coord = new Coordinate(6, 10);
coords.Add(coord);
coord = new Coordinate(5, 11);
coords.Add(coord);
coord = new Coordinate(6, 12);
coords.Add(coord);
coord = new Coordinate(7, 13);
coords.Add(coord);
coord = new Coordinate(8, 14);
coords.Add(coord);
coord = new Coordinate(9, 13);
coords.Add(coord);
coord = new Coordinate(10, 12);
coords.Add(coord);
coord = new Coordinate(10, 11);
coords.Add(coord);
coord = new Coordinate(10, 10);
coords.Add(coord);
coord = new Coordinate(10, 9);
coords.Add(coord);
coord = new Coordinate(9, 8);
coords.Add(coord);
coord = new Coordinate(8, 7);
coords.Add(coord);
coord = new Coordinate(7, 7);
coords.Add(coord);
coord = new Coordinate(6, 7);
coords.Add(coord);
coord = new Coordinate(5, 8);
coords.Add(coord);
coord = new Coordinate(4, 8);
coords.Add(coord);
coord = new Coordinate(3, 7);
coords.Add(coord);
coord = new Coordinate(2, 6);
coords.Add(coord);
coord = new Coordinate(1, 5);
coords.Add(coord);
coord = new Coordinate(2, 4);
coords.Add(coord);
coord = new Coordinate(1, 3);
coords.Add(coord);
coord = new Coordinate(2, 2);
coords.Add(coord);
GeometryFactory gf = new GeometryFactory(_precMod, _sRID);
LinearRing lr = gf.CreateLinearRing(coords);
return lr;
}
示例4: Poly2
private Polygon Poly2()
{
Coordinates coords = new Coordinates();
Coordinate coord = new Coordinate(10, 13);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(11, 13);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(12, 13);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(13, 14);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(14, 15);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(15, 16);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(15, 17);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(15, 18);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(14, 19);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(13, 20);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(12, 21);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(11, 21);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(10, 21);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(9, 20);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(8, 19);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(7, 18);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(7, 17);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(7, 16);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(8, 15);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(9, 14);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(10, 13);
_coords2.Add(coord);
coords.Add(coord);
_gf = new GeometryFactory(_precMod, _sRID);
_exterior2 = _gf.CreateLinearRing(coords);
coords = new Coordinates();
coord = new Coordinate(10, 16);
_coords2.Add(coord);
coords.Add(coord);
coord = new Coordinate(11, 17);
coords.Add(coord);
_coords2.Add(coord);
coord = new Coordinate(10, 18);
coords.Add(coord);
_coords2.Add(coord);
coord = new Coordinate(9, 17);
coords.Add(coord);
_coords2.Add(coord);
coord = new Coordinate(10, 16);
coords.Add(coord);
_coords2.Add(coord);
_interior2 = _gf.CreateLinearRing(coords);
LinearRing[] linearRings = new LinearRing[1];
linearRings[0] = _interior2;
_gf = new GeometryFactory();
Polygon polygon = _gf.CreatePolygon(_exterior2, linearRings);
return polygon;
}
示例5: test_IsEmpty
public void test_IsEmpty()
{
Polygon poly = Poly1();
Assertion.AssertEquals("IsEmpty-1: ", false, poly.IsEmpty());
Coordinates coords = new Coordinates();
_gf = new GeometryFactory(_precMod, _sRID);
LinearRing lr = _gf.CreateLinearRing(coords);
poly = _gf.CreatePolygon(lr);
Assertion.AssertEquals("IsEmpty-2: ", true, poly.IsEmpty());
}
示例6: Read
/// <summary>
/// Reads a stream and converts the shapefile record to an equilivent geometry object.
/// </summary>
/// <param name="file">The stream to read.</param>
/// <param name="geometryFactory">The geometry factory to use when making the object.</param>
/// <returns>The Geometry object that represents the shape file record.</returns>
public override Geometry Read(BigEndianBinaryReader file, GeometryFactory geometryFactory)
{
int shapeTypeNum = file.ReadInt32();
ShapeType shapeType = (ShapeType)Enum.Parse(typeof(ShapeType),shapeTypeNum.ToString());
if (shapeType != ShapeType.Polygon)
{
throw new ShapefileException("Attempting to load a non-polygon as polygon.");
}
//read and for now ignore bounds.
double[] box = new double[4];
for (int i = 0; i < 4; i++)
{
box[i] = file.ReadDouble();
}
int[] partOffsets;
int numParts = file.ReadInt32();
int numPoints = file.ReadInt32();
partOffsets = new int[numParts];
for (int i = 0; i < numParts; i++)
{
partOffsets[i] = file.ReadInt32();
}
ArrayList shells = new ArrayList();
ArrayList holes = new ArrayList();
int start, finish, length;
for (int part = 0; part < numParts; part++)
{
start = partOffsets[part];
if (part == numParts - 1)
{
finish = numPoints;
}
else
{
finish = partOffsets[part + 1];
}
length = finish - start;
Coordinates points = new Coordinates();
points.Capacity=length;
for (int i = 0; i < length; i++)
{
Coordinate external = new Coordinate(file.ReadDouble(), file.ReadDouble() );
Coordinate internalCoord = geometryFactory.PrecisionModel.ToInternal(external);
points.Add(internalCoord);
}
LinearRing ring = geometryFactory.CreateLinearRing(points);
//Debug.Assert(ring.IsValid()==false,"Ring is not valid.");
if (_cga.IsCCW(points))
{
holes.Add(ring);
}
else
{
shells.Add(ring);
}
}
//now we have a list of all shells and all holes
ArrayList holesForShells = new ArrayList(shells.Count);
for (int i = 0; i < shells.Count; i++)
{
holesForShells.Add(new ArrayList());
}
//find homes
for (int i = 0; i < holes.Count; i++)
{
LinearRing testRing = (LinearRing) holes[i];
LinearRing minShell = null;
Envelope minEnv = null;
Envelope testEnv = testRing.GetEnvelopeInternal();
Coordinate testPt = testRing.GetCoordinateN(0);
LinearRing tryRing;
for (int j = 0; j < shells.Count; j++)
{
tryRing = (LinearRing) shells[j];
Envelope tryEnv = tryRing.GetEnvelopeInternal();
if (minShell != null)
{
minEnv = minShell.GetEnvelopeInternal();
}
bool isContained = false;
Coordinates coordList = tryRing.GetCoordinates() ;
if (tryEnv.Contains(testEnv)
&& (_cga.IsPointInRing(testPt,coordList ) ||
(PointInList(testPt,coordList))))
{
isContained = true;
}
// check if this new containing ring is smaller than the
//.........这里部分代码省略.........
示例7: CreateMP1
private MultiPolygon CreateMP1()
{
Polygon[] polygons = new Polygon[2];
LineString[] rings = new LineString[2];
Coordinates coords = new Coordinates();
Coordinate coord = new Coordinate(5, 1);
coords.Add(coord);
coord = new Coordinate(6, 2);
coords.Add(coord);
coord = new Coordinate(7, 3);
coords.Add(coord);
coord = new Coordinate(6, 4);
coords.Add(coord);
coord = new Coordinate(5, 5);
coords.Add(coord);
coord = new Coordinate(4, 4);
coords.Add(coord);
coord = new Coordinate(3, 3);
coords.Add(coord);
coord = new Coordinate(4, 2);
coords.Add(coord);
coord = new Coordinate(5, 1);
coords.Add(coord);
GeometryFactory gf = new GeometryFactory(_precMod, _sRID);
LinearRing exterior1 = gf.CreateLinearRing(coords);
polygons[0] = gf.CreatePolygon(exterior1);
rings[0] = exterior1 as LineString;
coords = new Coordinates();
coord = new Coordinate(5, 1);
coords.Add(coord);
coord = new Coordinate(6, 2);
coords.Add(coord);
coord = new Coordinate(7, 3);
coords.Add(coord);
coord = new Coordinate(6, 4);
coords.Add(coord);
coord = new Coordinate(5, 5);
coords.Add(coord);
coord = new Coordinate(4, 4);
coords.Add(coord);
coord = new Coordinate(3, 3);
coords.Add(coord);
coord = new Coordinate(4, 2);
coords.Add(coord);
coord = new Coordinate(5, 1);
coords.Add(coord);
LinearRing exterior2 = gf.CreateLinearRing(coords);
polygons[1] = gf.CreatePolygon(exterior2);
rings[1] = exterior2;
_mls1 = gf.CreateMultiLineString(rings);
return gf.CreateMultiPolygon(polygons);
}
示例8: CreateMP2
private MultiPolygon CreateMP2()
{
Polygon[] polygons = new Polygon[2];
GeometryFactory gf = new GeometryFactory(_precMod, _sRID);
Coordinates coords = new Coordinates();
Coordinate coord = new Coordinate(10, 13);
coords.Add(coord);
coord = new Coordinate(11, 13);
coords.Add(coord);
coord = new Coordinate(12, 13);
coords.Add(coord);
coord = new Coordinate(13, 14);
coords.Add(coord);
coord = new Coordinate(14, 15);
coords.Add(coord);
coord = new Coordinate(15, 16);
coords.Add(coord);
coord = new Coordinate(15, 17);
coords.Add(coord);
coord = new Coordinate(15, 18);
coords.Add(coord);
coord = new Coordinate(14, 19);
coords.Add(coord);
coord = new Coordinate(13, 20);
coords.Add(coord);
coord = new Coordinate(12, 21);
coords.Add(coord);
coord = new Coordinate(11, 21);
coords.Add(coord);
coord = new Coordinate(10, 21);
coords.Add(coord);
coord = new Coordinate(9, 20);
coords.Add(coord);
coord = new Coordinate(8, 19);
coords.Add(coord);
coord = new Coordinate(7, 18);
coords.Add(coord);
coord = new Coordinate(7, 17);
coords.Add(coord);
coord = new Coordinate(7, 16);
coords.Add(coord);
coord = new Coordinate(8, 15);
coords.Add(coord);
coord = new Coordinate(9, 14);
coords.Add(coord);
coord = new Coordinate(10, 13);
coords.Add(coord);
LinearRing exterior = gf.CreateLinearRing(coords);
coords = new Coordinates();
coord = new Coordinate(10, 16);
coords.Add(coord);
coord = new Coordinate(11, 17);
coords.Add(coord);
coord = new Coordinate(10, 18);
coords.Add(coord);
coord = new Coordinate(9, 17);
coords.Add(coord);
coord = new Coordinate(10, 16);
coords.Add(coord);
LinearRing interior = gf.CreateLinearRing(coords);
LinearRing[] linearRings = new LinearRing[1];
linearRings[0] = interior;
polygons[0] = gf.CreatePolygon(exterior, linearRings);
coords = new Coordinates();
coord = new Coordinate(5, 1);
coords.Add(coord);
coord = new Coordinate(6, 2);
coords.Add(coord);
coord = new Coordinate(7, 3);
coords.Add(coord);
coord = new Coordinate(6, 4);
coords.Add(coord);
coord = new Coordinate(5, 5);
coords.Add(coord);
coord = new Coordinate(4, 4);
coords.Add(coord);
coord = new Coordinate(3, 3);
coords.Add(coord);
coord = new Coordinate(4, 2);
coords.Add(coord);
coord = new Coordinate(5, 1);
coords.Add(coord);
exterior = gf.CreateLinearRing(coords);
polygons[1] = gf.CreatePolygon(exterior);
return gf.CreateMultiPolygon(polygons);
}