public MgPolygon parseString(string coordinates) { MgPolygon polygon = null; //Please type in the code between the comments MgGeometryFactory geoFactory = new MgGeometryFactory(); MgCoordinateCollection coordCol = new MgCoordinateCollection(); string[] num_coords = coordinates.Split('~'); int num = Convert.ToInt16(num_coords[0]); string[] coords = num_coords[1].Split('_'); for (int i = 0; i < num; i++) { string[] xyString = coords[i].Split('!'); double x = Convert.ToDouble(xyString[0]); double y = Convert.ToDouble(xyString[1]); MgCoordinate coord = geoFactory.CreateCoordinateXY(x, y); coordCol.Add(coord); } MgLinearRing outRing = geoFactory.CreateLinearRing(coordCol); polygon = geoFactory.CreatePolygon(outRing, null); /////////////////////////////////////// return polygon; }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); curveSegments.Add(linearSegment); MgCurveString curveString = gf.CreateCurveString(curveSegments); Assert.AreEqual(1, curveString.Count); Assert.AreEqual(pt1.ToString(), curveString.StartCoordinate.ToString()); Assert.AreEqual(pt4.ToString(), curveString.EndCoordinate.ToString()); Assert.AreEqual(MgGeometryType.CurveString, curveString.GeometryType); Assert.AreEqual(1, curveString.Dimension); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); curveSegments.Add(linearSegment); MgCurveRing outerRing = gf.CreateCurveRing(curveSegments); MgCurvePolygon cp = gf.CreateCurvePolygon(outerRing, null); Assert.AreEqual(outerRing.ToString(), cp.ExteriorRing.ToString()); Assert.AreEqual(0, cp.InteriorRingCount); Assert.AreEqual(MgGeometryType.CurvePolygon, cp.GeometryType); Assert.AreEqual(2, cp.Dimension); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); curveSegments.Add(linearSegment); MgCurveString curveString = gf.CreateCurveString(curveSegments); MgCurveStringCollection csc = new MgCurveStringCollection(); csc.Add(curveString); MgMultiCurveString mcs = gf.CreateMultiCurveString(csc); Assert.AreEqual(1, mcs.Count); Assert.AreEqual(MgGeometryType.MultiCurveString, mcs.GeometryType); Assert.AreEqual(1, mcs.Dimension); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); MgCurveRing curveRing = gf.CreateCurveRing(curveSegments); MgCurvePolygon cp = gf.CreateCurvePolygon(curveRing, null); MgCurvePolygonCollection cpc = new MgCurvePolygonCollection(); cpc.Add(cp); MgMultiCurvePolygon mcp = gf.CreateMultiCurvePolygon(cpc); Assert.AreEqual(1, mcp.Count); Assert.AreEqual(MgGeometryType.MultiCurvePolygon, mcp.GeometryType); Assert.AreEqual(2, mcp.Dimension); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate c1 = gf.CreateCoordinateXY(1.0, 1.0); MgCoordinate c2 = gf.CreateCoordinateXY(2.0, 2.0); MgCoordinate c3 = gf.CreateCoordinateXY(3.0, 3.0); MgCoordinate c4 = gf.CreateCoordinateXY(4.0, 4.0); MgCoordinateCollection coll = new MgCoordinateCollection(); coll.Add(c1); coll.Insert(1, c2); coll.Add(c3); coll.Add(c4); Assert.AreEqual(4, coll.Count); Assert.AreEqual(1.0, coll[0].GetX()); coll[3] = coll[2]; Assert.AreEqual(3.0, coll[3].GetX()); double sum = 0.0; foreach (MgCoordinate coord in coll) { sum += coord.GetX(); } Assert.AreEqual(9.0, sum); }
public MgCurveRing CreateCurveRing(double offset) { // Ring is a closed entity. // Create and return a ring consisting of // one circulararc segment and one linearstring segment // arcseg = (0,0), (0,1), (1,2) // lineseg = (1,2), (0,0) // ArcSegment MgCoordinate startPos = factory.CreateCoordinateXY(offset + 0.0, offset + 0.0); MgCoordinate midPos = factory.CreateCoordinateXY(offset + 0.0, offset + 1.0); MgCoordinate endPos = factory.CreateCoordinateXY(offset + 1.0, offset + 2.0); MgArcSegment arcSeg = factory.CreateArcSegment(startPos, endPos, midPos); // Linear Segment MgCoordinateCollection points = new MgCoordinateCollection(); MgCoordinate fromPt = factory.CreateCoordinateXY(offset + 1.0, offset + 2.0); MgCoordinate toPt = factory.CreateCoordinateXY(offset + 0.0, offset + 0.0); points.Add(fromPt); points.Add(toPt); MgLinearSegment lineSeg = factory.CreateLinearSegment(points); // Curve Segment MgCurveSegmentCollection curveSegs = new MgCurveSegmentCollection(); curveSegs.Add(arcSeg); curveSegs.Add(lineSeg); return(factory.CreateCurveRing(curveSegs)); }
public MgMultiLineString CreateMultiLineString() { MgCoordinate coord1 = factory.CreateCoordinateXYZ(0.0, 1.0, 2.0); MgCoordinate coord2 = factory.CreateCoordinateXYZ(3.0, 4.0, 5.0); MgCoordinate coord3 = factory.CreateCoordinateXYZ(6.0, 7.0, 8.0); MgCoordinateCollection coordColA = new MgCoordinateCollection(); coordColA.Add(coord1); coordColA.Add(coord2); coordColA.Add(coord3); MgCoordinate coord4 = factory.CreateCoordinateXYZ(9.0, 10.0, 11.0); MgCoordinate coord5 = factory.CreateCoordinateXYZ(12.0, 13.0, 14.0); MgCoordinate coord6 = factory.CreateCoordinateXYZ(15.0, 16.0, 17.0); MgCoordinateCollection coordColB = new MgCoordinateCollection(); coordColB.Add(coord4); coordColB.Add(coord5); coordColB.Add(coord6); MgLineString lineString1 = factory.CreateLineString(coordColA); MgLineString lineString2 = factory.CreateLineString(coordColB); MgLineStringCollection lineStrings = new MgLineStringCollection(); lineStrings.Add(lineString1); lineStrings.Add(lineString2); return(factory.CreateMultiLineString(lineStrings)); }
public MgCurveString CreateCurveString(double offset) { // Create and return a curvestring consisting of // one circulararc segment and one linearstring segment // arcseg = (0,0), (0,1), (1,2) // lineseg = (1,2), (3,0), (3,2) // ArcSegment MgCoordinate startPos = factory.CreateCoordinateXY(offset + 0.0, offset + 0.0); MgCoordinate midPos = factory.CreateCoordinateXY(offset + 0.0, offset + 1.0); MgCoordinate endPos = factory.CreateCoordinateXY(offset + 1.0, offset + 2.0); MgArcSegment arcSeg = factory.CreateArcSegment(startPos, endPos, midPos); // Linear Segment MgCoordinateCollection points = new MgCoordinateCollection(); MgCoordinate pt1 = factory.CreateCoordinateXY(offset + 1.0, offset + 2.0); MgCoordinate pt2 = factory.CreateCoordinateXY(offset + 3.0, offset + 0.0); MgCoordinate pt3 = factory.CreateCoordinateXY(offset + 3.0, offset + 2.0); points.Add(pt1); points.Add(pt2); points.Add(pt3); MgLinearSegment lineSeg = factory.CreateLinearSegment(points); // CurveSegment MgCurveSegmentCollection curveSegs = new MgCurveSegmentCollection(); curveSegs.Add(arcSeg); curveSegs.Add(lineSeg); return(factory.CreateCurveString(curveSegs)); }
public MgCurveRing CreateCurveRing(double offset) { // Ring is a closed entity. // Create and return a ring consisting of // one circulararc segment and one linearstring segment // arcseg = (0,0), (0,1), (1,2) // lineseg = (1,2), (0,0) // ArcSegment MgCoordinate startPos = factory.CreateCoordinateXY(offset+0.0, offset+0.0); MgCoordinate midPos = factory.CreateCoordinateXY(offset+0.0, offset+1.0); MgCoordinate endPos = factory.CreateCoordinateXY(offset+1.0, offset+2.0); MgArcSegment arcSeg = factory.CreateArcSegment(startPos, endPos, midPos); // Linear Segment MgCoordinateCollection points = new MgCoordinateCollection(); MgCoordinate fromPt = factory.CreateCoordinateXY(offset+1.0, offset+2.0); MgCoordinate toPt = factory.CreateCoordinateXY(offset+0.0, offset+0.0); points.Add(fromPt); points.Add(toPt); MgLinearSegment lineSeg = factory.CreateLinearSegment(points); // Curve Segment MgCurveSegmentCollection curveSegs = new MgCurveSegmentCollection(); curveSegs.Add(arcSeg); curveSegs.Add(lineSeg); return factory.CreateCurveRing(curveSegs); }
public MgPolygon CreatePolygon(double offset) { // OuterRing MgCoordinate oCoord1 = factory.CreateCoordinateXY(offset + 0.0, 0.0); MgCoordinate oCoord2 = factory.CreateCoordinateXY(offset + 5.0, 0.0); MgCoordinate oCoord3 = factory.CreateCoordinateXY(offset + 5.0, 5.0); MgCoordinate oCoord4 = factory.CreateCoordinateXY(offset + 0.0, 5.0); MgCoordinate oCoord5 = factory.CreateCoordinateXY(offset + 0.0, 0.0); MgCoordinateCollection outerRingCoord = new MgCoordinateCollection(); outerRingCoord.Add(oCoord1); outerRingCoord.Add(oCoord2); outerRingCoord.Add(oCoord3); outerRingCoord.Add(oCoord4); outerRingCoord.Add(oCoord5); // Inner Ring1 MgCoordinate i1Coord1 = factory.CreateCoordinateXY(offset + 1.0, 1.0); MgCoordinate i1Coord2 = factory.CreateCoordinateXY(offset + 2.0, 1.0); MgCoordinate i1Coord3 = factory.CreateCoordinateXY(offset + 2.0, 2.0); MgCoordinate i1Coord4 = factory.CreateCoordinateXY(offset + 1.0, 1.0); MgCoordinateCollection inner1RingCoord = new MgCoordinateCollection(); inner1RingCoord.Add(i1Coord1); inner1RingCoord.Add(i1Coord2); inner1RingCoord.Add(i1Coord3); inner1RingCoord.Add(i1Coord4); // Inner Ring2 MgCoordinate i2Coord1 = factory.CreateCoordinateXY(offset + 3.0, 3.0); MgCoordinate i2Coord2 = factory.CreateCoordinateXY(offset + 4.0, 3.0); MgCoordinate i2Coord3 = factory.CreateCoordinateXY(offset + 4.0, 4.0); MgCoordinate i2Coord4 = factory.CreateCoordinateXY(offset + 3.0, 3.0); MgCoordinateCollection inner2RingCoord = new MgCoordinateCollection(); inner2RingCoord.Add(i2Coord1); inner2RingCoord.Add(i2Coord2); inner2RingCoord.Add(i2Coord3); inner2RingCoord.Add(i2Coord4); MgLinearRing extRing = factory.CreateLinearRing(outerRingCoord); MgLinearRing intRing1 = factory.CreateLinearRing(inner1RingCoord); MgLinearRing intRing2 = factory.CreateLinearRing(inner2RingCoord); MgLinearRingCollection intRings = new MgLinearRingCollection(); intRings.Add(intRing1); intRings.Add(intRing2); return(factory.CreatePolygon(extRing, intRings)); }
private void OnLineDigitized(double x1, double y1, double x2, double y2) { CheckRedlineLayer(); MgCoordinateCollection coords = new MgCoordinateCollection(); coords.Add(_geomFact.CreateCoordinateXY(x1, y1)); coords.Add(_geomFact.CreateCoordinateXY(x2, y2)); MgGeometry line = _geomFact.CreateLineString(coords); InsertRedlineGeometry(line); }
private void OnLineStringDigitized(double[,] coordinates) { CheckRedlineLayer(); MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < coordinates.GetLength(0); i++) { coords.Add(_geomFact.CreateCoordinateXY(coordinates[i, 0], coordinates[i, 1])); } MgGeometry line = _geomFact.CreateLineString(coords); InsertRedlineGeometry(line); }
public MgLineString CreateLineString(double offset) { MgCoordinateCollection coordCol = new MgCoordinateCollection(); MgCoordinate coord1 = factory.CreateCoordinateXY(offset + 0.0, 1.0); MgCoordinate coord2 = factory.CreateCoordinateXY(offset + 2.0, 3.0); MgCoordinate coord3 = factory.CreateCoordinateXY(offset + 4.0, 5.0); coordCol.Add(coord1); coordCol.Add(coord2); coordCol.Add(coord3); return(factory.CreateLineString(coordCol)); }
private void btnSelectPolygon_Click(object sender, EventArgs e) { mgMapViewer1.DigitizePolygon((coordinates) => { MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < coordinates.GetLength(0); i++) { coords.Add(_geomFact.CreateCoordinateXY(coordinates[i, 0], coordinates[i, 1])); } coords.Add(_geomFact.CreateCoordinateXY(coordinates[0, 0], coordinates[0, 1])); MgLinearRing ring = _geomFact.CreateLinearRing(coords); MgGeometry poly = _geomFact.CreatePolygon(ring, null); mgMapViewer1.SelectByGeometry(poly); }); }
private void OnPolygonDigitized(double[,] coordinates) { CheckRedlineLayer(); MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < coordinates.GetLength(0); i++) { coords.Add(_geomFact.CreateCoordinateXY(coordinates[i, 0], coordinates[i, 1])); } coords.Add(_geomFact.CreateCoordinateXY(coordinates[0, 0], coordinates[0, 1])); MgLinearRing ring = _geomFact.CreateLinearRing(coords); MgGeometry poly = _geomFact.CreatePolygon(ring, null); InsertRedlineGeometry(poly); }
private void AddLine(RedlineTextFunction retrieveTextMethod, RedlineAction onRedlineAdded) { _viewer.DigitizeLine((x1, y1, x2, y2) => { string text = string.Empty; if (retrieveTextMethod != null) { text = retrieveTextMethod(); } MgCoordinateCollection coords = new MgCoordinateCollection(); coords.Add(_geomFact.CreateCoordinateXY(x1, y1)); coords.Add(_geomFact.CreateCoordinateXY(x2, y2)); MgGeometry line = _geomFact.CreateLineString(coords); InsertRedlineGeometry(text, line, onRedlineAdded); }); }
private void btnPolygon_Click(object sender, EventArgs e) { _viewer.DigitizePolygon((coordinates) => { ClearFilterGeometry(); MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < coordinates.GetLength(0); i++) { coords.Add(_geomFact.CreateCoordinateXY(coordinates[i, 0], coordinates[i, 1])); } coords.Add(_geomFact.CreateCoordinateXY(coordinates[0, 0], coordinates[0, 1])); MgLinearRing ring = _geomFact.CreateLinearRing(coords); _filterGeometry = _geomFact.CreatePolygon(ring, null); lblSpatialFilterGeomSet.Visible = true; }); }
private void AddLineString(RedlineTextFunction retrieveTextMethod, RedlineAction onRedlineAdded) { _viewer.DigitizeLineString((coordinates) => { string text = string.Empty; if (retrieveTextMethod != null) { text = retrieveTextMethod(); } MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < coordinates.GetLength(0); i++) { coords.Add(_geomFact.CreateCoordinateXY(coordinates[i, 0], coordinates[i, 1])); } MgGeometry line = _geomFact.CreateLineString(coords); InsertRedlineGeometry(text, line, onRedlineAdded); }); }
public MgLinearRing CreateLinearRing(double offset) { MgCoordinate oCoord1 = factory.CreateCoordinateXY(0.0, offset); MgCoordinate oCoord2 = factory.CreateCoordinateXY(5.0, offset); MgCoordinate oCoord3 = factory.CreateCoordinateXY(5.0, offset + 5.0); MgCoordinate oCoord4 = factory.CreateCoordinateXY(0.0, offset + 5.0); MgCoordinate oCoord5 = factory.CreateCoordinateXY(0.0, offset); MgCoordinateCollection outerRingCoord = new MgCoordinateCollection(); outerRingCoord.Add(oCoord1); outerRingCoord.Add(oCoord2); outerRingCoord.Add(oCoord3); outerRingCoord.Add(oCoord4); outerRingCoord.Add(oCoord5); return(factory.CreateLinearRing(outerRingCoord)); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearRing linearRing = gf.CreateLinearRing(coordinates); Assert.AreEqual(MgGeometryComponentType.LinearRing, linearRing.ComponentType); Assert.AreEqual(2, linearRing.Dimension); }
void OnSelectPolygon(object sender, EventArgs e) { if (_viewer == null) { return; } _viewer.DigitizePolygon((coordinates) => { MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < coordinates.GetLength(0); i++) { coords.Add(_geomFact.CreateCoordinateXY(coordinates[i, 0], coordinates[i, 1])); } coords.Add(_geomFact.CreateCoordinateXY(coordinates[0, 0], coordinates[0, 1])); MgLinearRing ring = _geomFact.CreateLinearRing(coords); MgGeometry poly = _geomFact.CreatePolygon(ring, null); _viewer.SelectByGeometry(poly); }); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); Assert.AreEqual(MgGeometryComponentType.LinearSegment, linearSegment.ComponentType); Assert.AreEqual(pt1.ToString(), linearSegment.StartCoordinate.ToString()); Assert.AreEqual(pt4.ToString(), linearSegment.EndCoordinate.ToString()); Assert.AreEqual(1, linearSegment.Dimension); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearRing linearRing = gf.CreateLinearRing(coordinates); MgPolygon polygon = gf.CreatePolygon(linearRing, null); Assert.AreEqual(linearRing.ToString(), polygon.ExteriorRing.ToString()); Assert.AreEqual(0, polygon.InteriorRingCount); Assert.AreEqual(MgGeometryType.Polygon, polygon.GeometryType); Assert.AreEqual(2, polygon.Dimension); }
public override void Invoke() { var viewer = this.Viewer; viewer.DigitizePolygon((coordinates) => { if (_geomFact == null) { _geomFact = new MgGeometryFactory(); } MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < coordinates.GetLength(0); i++) { coords.Add(_geomFact.CreateCoordinateXY(coordinates[i, 0], coordinates[i, 1])); } coords.Add(_geomFact.CreateCoordinateXY(coordinates[0, 0], coordinates[0, 1])); MgLinearRing ring = _geomFact.CreateLinearRing(coords); MgGeometry poly = _geomFact.CreatePolygon(ring, null); viewer.SelectByGeometry(poly); }); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLineString ls = gf.CreateLineString(coordinates); MgLineStringCollection lineStringCollection = new MgLineStringCollection(); lineStringCollection.Add(ls); MgMultiLineString mls = gf.CreateMultiLineString(lineStringCollection); Assert.AreEqual(1, mls.Count); Assert.AreEqual(MgGeometryType.MultiLineString, mls.GeometryType); Assert.AreEqual(1, mls.Dimension); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); curveSegments.Add(linearSegment); MgCurveRing outerRing = gf.CreateCurveRing(curveSegments); Assert.AreEqual(MgGeometryComponentType.CurveRing, outerRing.ComponentType); Assert.AreEqual(1, outerRing.Count); Assert.AreEqual(2, outerRing.Dimension); }
public void AddPolygon() { MgGeometryFactory geometryFactory = new MgGeometryFactory(); MgAgfReaderWriter agfWriter = new MgAgfReaderWriter(); String[] vertices = GetParameter(this.args, "GEOMETRY").Split(new Char[] { ',' }); int count = (int)Double.Parse(vertices[0]); MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < count; i++) { MgCoordinate coord = geometryFactory.CreateCoordinateXY(Double.Parse(vertices[(i * 2) + 1]), Double.Parse(vertices[(i * 2) + 2])); coords.Add(coord); } MgLinearRing linearRing = geometryFactory.CreateLinearRing(coords); MgPolygon polygon = geometryFactory.CreatePolygon(linearRing, null); polygon = (MgPolygon)polygon.Transform(this.GetTransform()); MgByteReader byteReader = agfWriter.Write(polygon); MgPropertyCollection propertyValues = CreatePropertyCollection(byteReader); this.InsertMarkupFeature(propertyValues); }
private void HandleMouseUp(MouseEventArgs e) { if (isDragging) { isDragging = false; if (this.ActiveTool == MapActiveTool.Pan) { //FIXME: This is not perfect. The view will be slightly off of where you released the mouse button //System.Diagnostics.Trace.TraceInformation("Dragged screen distance (" + translate.X + ", " + translate.Y + ")"); //NOXLATE int dx = e.X - dragStart.X; int dy = e.Y - dragStart.Y; var centerScreen = new Point(this.Location.X + (this.Width / 2), this.Location.Y + (this.Height / 2)); centerScreen.X -= translate.X; centerScreen.Y -= translate.Y; var pt = _map.ViewCenter.Coordinate; var coord = ScreenToMapUnits(centerScreen.X, centerScreen.Y); double mdx = coord.X - pt.X; double mdy = coord.Y - pt.Y; ZoomToView(coord.X, coord.Y, _map.ViewScale, true); //Trace.TraceInformation("END PANNING"); //NOXLATE } else if (this.ActiveTool == MapActiveTool.Select) { var mapPt = ScreenToMapUnits(e.X, e.Y); var mapDragPt = ScreenToMapUnits(dragStart.X, dragStart.Y); var ringCoords = new MgCoordinateCollection(); ringCoords.Add(_geomFact.CreateCoordinateXY(mapDragPt.X, mapDragPt.Y)); ringCoords.Add(_geomFact.CreateCoordinateXY(mapPt.X, mapDragPt.Y)); ringCoords.Add(_geomFact.CreateCoordinateXY(mapPt.X, mapPt.Y)); ringCoords.Add(_geomFact.CreateCoordinateXY(mapDragPt.X, mapPt.Y)); ringCoords.Add(_geomFact.CreateCoordinateXY(mapDragPt.X, mapDragPt.Y)); //Close it var poly = _geomFact.CreatePolygon(_geomFact.CreateLinearRing(ringCoords), new MgLinearRingCollection()); SelectByGeometry(poly); } else if (this.ActiveTool == MapActiveTool.ZoomIn) { var mapPt = ScreenToMapUnits(e.X, e.Y); var mapDragPt = ScreenToMapUnits(dragStart.X, dragStart.Y); PointF ll; PointF ur; if (mapPt.X <= mapDragPt.X && mapPt.Y <= mapDragPt.Y) { ll = mapPt; ur = mapDragPt; } else { ll = mapDragPt; ur = mapPt; } ZoomToExtents(ll.X, ll.Y, ur.X, ur.Y); } } }
public MgPolygon CreatePolygon(double offset) { // OuterRing MgCoordinate oCoord1 = factory.CreateCoordinateXY(offset + 0.0, 0.0); MgCoordinate oCoord2 = factory.CreateCoordinateXY(offset + 5.0, 0.0); MgCoordinate oCoord3 = factory.CreateCoordinateXY(offset + 5.0, 5.0); MgCoordinate oCoord4 = factory.CreateCoordinateXY(offset + 0.0, 5.0); MgCoordinate oCoord5 = factory.CreateCoordinateXY(offset + 0.0, 0.0); MgCoordinateCollection outerRingCoord = new MgCoordinateCollection(); outerRingCoord.Add(oCoord1); outerRingCoord.Add(oCoord2); outerRingCoord.Add(oCoord3); outerRingCoord.Add(oCoord4); outerRingCoord.Add(oCoord5); // Inner Ring1 MgCoordinate i1Coord1 = factory.CreateCoordinateXY(offset + 1.0, 1.0); MgCoordinate i1Coord2 = factory.CreateCoordinateXY(offset + 2.0, 1.0); MgCoordinate i1Coord3 = factory.CreateCoordinateXY(offset + 2.0, 2.0); MgCoordinate i1Coord4 = factory.CreateCoordinateXY(offset + 1.0, 1.0); MgCoordinateCollection inner1RingCoord = new MgCoordinateCollection(); inner1RingCoord.Add(i1Coord1); inner1RingCoord.Add(i1Coord2); inner1RingCoord.Add(i1Coord3); inner1RingCoord.Add(i1Coord4); // Inner Ring2 MgCoordinate i2Coord1 = factory.CreateCoordinateXY(offset + 3.0, 3.0); MgCoordinate i2Coord2 = factory.CreateCoordinateXY(offset + 4.0, 3.0); MgCoordinate i2Coord3 = factory.CreateCoordinateXY(offset + 4.0, 4.0); MgCoordinate i2Coord4 = factory.CreateCoordinateXY(offset + 3.0, 3.0); MgCoordinateCollection inner2RingCoord = new MgCoordinateCollection(); inner2RingCoord.Add(i2Coord1); inner2RingCoord.Add(i2Coord2); inner2RingCoord.Add(i2Coord3); inner2RingCoord.Add(i2Coord4); MgLinearRing extRing = factory.CreateLinearRing(outerRingCoord); MgLinearRing intRing1 = factory.CreateLinearRing(inner1RingCoord); MgLinearRing intRing2 = factory.CreateLinearRing(inner2RingCoord); MgLinearRingCollection intRings = new MgLinearRingCollection(); intRings.Add(intRing1); intRings.Add(intRing2); return factory.CreatePolygon(extRing, intRings); }
public void CurveString() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); curveSegments.Add(linearSegment); MgCurveString curveString = gf.CreateCurveString(curveSegments); Assert.AreEqual(1, curveString.Count); Assert.AreEqual(pt1.ToString(), curveString.StartCoordinate.ToString()); Assert.AreEqual(pt4.ToString(), curveString.EndCoordinate.ToString()); Assert.AreEqual(MgGeometryType.CurveString, curveString.GeometryType); Assert.AreEqual(1, curveString.Dimension); }
public void LinearSegment() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); Assert.AreEqual(MgGeometryComponentType.LinearSegment, linearSegment.ComponentType); Assert.AreEqual(pt1.ToString(), linearSegment.StartCoordinate.ToString()); Assert.AreEqual(pt4.ToString(), linearSegment.EndCoordinate.ToString()); Assert.AreEqual(1, linearSegment.Dimension); }
public void Polygon() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearRing linearRing = gf.CreateLinearRing(coordinates); MgPolygon polygon = gf.CreatePolygon(linearRing, null); Assert.AreEqual(linearRing.ToString(), polygon.ExteriorRing.ToString()); Assert.AreEqual(0, polygon.InteriorRingCount); Assert.AreEqual(MgGeometryType.Polygon, polygon.GeometryType); Assert.AreEqual(2, polygon.Dimension); }
public void MultiLineString() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLineString ls = gf.CreateLineString(coordinates); MgLineStringCollection lineStringCollection = new MgLineStringCollection(); lineStringCollection.Add(ls); MgMultiLineString mls = gf.CreateMultiLineString(lineStringCollection); Assert.AreEqual(1, mls.Count); Assert.AreEqual(MgGeometryType.MultiLineString, mls.GeometryType); Assert.AreEqual(1, mls.Dimension); }
public void MultiGeometry() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLineString ls = gf.CreateLineString(coordinates); MgGeometryCollection geometries = new MgGeometryCollection(); geometries.Add(ls); MgMultiGeometry mg = gf.CreateMultiGeometry(geometries); Assert.AreEqual(1, mg.Count); Assert.AreEqual(MgGeometryType.MultiGeometry, mg.GeometryType); Assert.AreEqual(4, mg.Dimension); }
public void MultiCurveString() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); curveSegments.Add(linearSegment); MgCurveString curveString = gf.CreateCurveString(curveSegments); MgCurveStringCollection csc = new MgCurveStringCollection(); csc.Add(curveString); MgMultiCurveString mcs = gf.CreateMultiCurveString(csc); Assert.AreEqual(1, mcs.Count); Assert.AreEqual(MgGeometryType.MultiCurveString, mcs.GeometryType); Assert.AreEqual(1, mcs.Dimension); }
public MgMultiLineString CreateMultiLineString() { MgCoordinate coord1 = factory.CreateCoordinateXYZ(0.0, 1.0, 2.0); MgCoordinate coord2 = factory.CreateCoordinateXYZ(3.0, 4.0, 5.0); MgCoordinate coord3 = factory.CreateCoordinateXYZ(6.0, 7.0, 8.0); MgCoordinateCollection coordColA = new MgCoordinateCollection(); coordColA.Add(coord1); coordColA.Add(coord2); coordColA.Add(coord3); MgCoordinate coord4 = factory.CreateCoordinateXYZ( 9.0, 10.0, 11.0); MgCoordinate coord5 = factory.CreateCoordinateXYZ(12.0, 13.0, 14.0); MgCoordinate coord6 = factory.CreateCoordinateXYZ(15.0, 16.0, 17.0); MgCoordinateCollection coordColB = new MgCoordinateCollection(); coordColB.Add(coord4); coordColB.Add(coord5); coordColB.Add(coord6); MgLineString lineString1 = factory.CreateLineString(coordColA); MgLineString lineString2 = factory.CreateLineString(coordColB); MgLineStringCollection lineStrings = new MgLineStringCollection(); lineStrings.Add(lineString1); lineStrings.Add(lineString2); return factory.CreateMultiLineString(lineStrings); }
public void LineString() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLineString linestring = gf.CreateLineString(coordinates); Assert.AreEqual(pt1.ToString(), linestring.StartCoordinate.ToString()); Assert.AreEqual(pt4.ToString(), linestring.EndCoordinate.ToString()); Assert.AreEqual(MgGeometryType.LineString, linestring.GeometryType); Assert.AreEqual(1, linestring.Dimension); }
private void AddLineString(RedlineTextFunction retrieveTextMethod, RedlineAction onRedlineAdded) { _viewer.DigitizeLineString((coordinates) => { string text = string.Empty; if (retrieveTextMethod != null) text = retrieveTextMethod(); MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < coordinates.GetLength(0); i++) { coords.Add(_geomFact.CreateCoordinateXY(coordinates[i, 0], coordinates[i, 1])); } MgGeometry line = _geomFact.CreateLineString(coords); InsertRedlineGeometry(text, line, onRedlineAdded); }); }
private void AddLine(RedlineTextFunction retrieveTextMethod, RedlineAction onRedlineAdded) { _viewer.DigitizeLine((x1, y1, x2, y2) => { string text = string.Empty; if (retrieveTextMethod != null) text = retrieveTextMethod(); MgCoordinateCollection coords = new MgCoordinateCollection(); coords.Add(_geomFact.CreateCoordinateXY(x1, y1)); coords.Add(_geomFact.CreateCoordinateXY(x2, y2)); MgGeometry line = _geomFact.CreateLineString(coords); InsertRedlineGeometry(text, line, onRedlineAdded); }); }
public MgLineString CreateLineString(double offset) { MgCoordinateCollection coordCol = new MgCoordinateCollection(); MgCoordinate coord1 = factory.CreateCoordinateXY(offset + 0.0, 1.0); MgCoordinate coord2 = factory.CreateCoordinateXY(offset + 2.0, 3.0); MgCoordinate coord3 = factory.CreateCoordinateXY(offset + 4.0, 5.0); coordCol.Add(coord1); coordCol.Add(coord2); coordCol.Add(coord3); return factory.CreateLineString(coordCol); }
public void CoordinateCollection() { MgCoordinate c1 = factory.CreateCoordinateXY(1.0, 1.0); MgCoordinate c2 = factory.CreateCoordinateXY(2.0, 2.0); MgCoordinate c3 = factory.CreateCoordinateXY(3.0, 3.0); MgCoordinate c4 = factory.CreateCoordinateXY(4.0, 4.0); MgCoordinateCollection coll = new MgCoordinateCollection(); coll.Add(c1); coll.Insert(1, c2); coll.Add(c3); coll.Add(c4); Assert.AreEqual(4, coll.Count); Assert.AreEqual(1.0, coll[0].GetX()); coll[3] = coll[2]; Assert.AreEqual(3.0, coll[3].GetX()); double sum = 0.0; foreach (MgCoordinate coord in coll) { sum += coord.GetX(); } Assert.AreEqual(9.0, sum); }
public MgLinearRing CreateLinearRing(double offset) { MgCoordinate oCoord1 = factory.CreateCoordinateXY(0.0, offset); MgCoordinate oCoord2 = factory.CreateCoordinateXY(5.0, offset); MgCoordinate oCoord3 = factory.CreateCoordinateXY(5.0, offset+5.0); MgCoordinate oCoord4 = factory.CreateCoordinateXY(0.0, offset+5.0); MgCoordinate oCoord5 = factory.CreateCoordinateXY(0.0, offset); MgCoordinateCollection outerRingCoord = new MgCoordinateCollection(); outerRingCoord.Add(oCoord1); outerRingCoord.Add(oCoord2); outerRingCoord.Add(oCoord3); outerRingCoord.Add(oCoord4); outerRingCoord.Add(oCoord5); return factory.CreateLinearRing(outerRingCoord); }
public void LinearRing() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearRing linearRing = gf.CreateLinearRing(coordinates); Assert.AreEqual(MgGeometryComponentType.LinearRing, linearRing.ComponentType); Assert.AreEqual(2, linearRing.Dimension); }
public void CurvePolygon() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); curveSegments.Add(linearSegment); MgCurveRing outerRing = gf.CreateCurveRing(curveSegments); MgCurvePolygon cp = gf.CreateCurvePolygon(outerRing, null); Assert.AreEqual(outerRing.ToString(), cp.ExteriorRing.ToString()); Assert.AreEqual(0, cp.InteriorRingCount); Assert.AreEqual(MgGeometryType.CurvePolygon, cp.GeometryType); Assert.AreEqual(2, cp.Dimension); }
public override void Invoke() { var viewer = this.Viewer; viewer.DigitizePolygon((coordinates) => { if (_geomFact == null) _geomFact = new MgGeometryFactory(); MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < coordinates.GetLength(0); i++) { coords.Add(_geomFact.CreateCoordinateXY(coordinates[i, 0], coordinates[i, 1])); } coords.Add(_geomFact.CreateCoordinateXY(coordinates[0, 0], coordinates[0, 1])); MgLinearRing ring = _geomFact.CreateLinearRing(coords); MgGeometry poly = _geomFact.CreatePolygon(ring, null); viewer.SelectByGeometry(poly); }); }
public void CurveRing() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); curveSegments.Add(linearSegment); MgCurveRing outerRing = gf.CreateCurveRing(curveSegments); Assert.AreEqual(MgGeometryComponentType.CurveRing, outerRing.ComponentType); Assert.AreEqual(1, outerRing.Count); Assert.AreEqual(2, outerRing.Dimension); }
private MgPolygon CreatePolygonFromGeomText(String geomText) { MgGeometryFactory geometryFactory = new MgGeometryFactory(); String[] vertices = geomText.Split(new Char[] { ',' }); int count = Int32.Parse(vertices[0]); MgCoordinateCollection coords = new MgCoordinateCollection(); for (int i = 0; i < count; i++) { MgCoordinate coord = geometryFactory.CreateCoordinateXY(Double.Parse(vertices[(i * 2) + 1]), Double.Parse(vertices[(i * 2) + 2])); coords.Add(coord); } MgLinearRing linearRing = geometryFactory.CreateLinearRing(coords); MgPolygon polygon = geometryFactory.CreatePolygon(linearRing, null); return polygon; }
private string QueryFirstVisibleTooltip(int x, int y) { //No intialized map if (_map == null) return string.Empty; //No change in position if (_lastTooltipX == x && _lastTooltipY == y && !string.IsNullOrEmpty(_activeTooltipText)) return _activeTooltipText; if (_lastTooltipX.HasValue && _lastTooltipY.HasValue) { //Not considered a significant change if (Math.Abs(x - _lastTooltipX.Value) < MOUSE_MOVE_TOLERANCE || Math.Abs(y - _lastTooltipY.Value) < MOUSE_MOVE_TOLERANCE) return _activeTooltipText; } _lastTooltipX = x; _lastTooltipY = y; var mapPt1 = ScreenToMapUnits(x - this.PointPixelBuffer, y - this.PointPixelBuffer); var mapPt2 = ScreenToMapUnits(x + this.PointPixelBuffer, y + this.PointPixelBuffer); var ringCoords = new MgCoordinateCollection(); ringCoords.Add(_geomFact.CreateCoordinateXY(mapPt2.X, mapPt2.Y)); ringCoords.Add(_geomFact.CreateCoordinateXY(mapPt1.X, mapPt2.Y)); ringCoords.Add(_geomFact.CreateCoordinateXY(mapPt1.X, mapPt1.Y)); ringCoords.Add(_geomFact.CreateCoordinateXY(mapPt2.X, mapPt1.Y)); ringCoords.Add(_geomFact.CreateCoordinateXY(mapPt2.X, mapPt2.Y)); //Close it var poly = _geomFact.CreatePolygon(_geomFact.CreateLinearRing(ringCoords), new MgLinearRingCollection()); MgTooltipQueryResult tr = _provider.QueryMapFeatures(MgQueryRequestType.Tooltip, null, poly, MgFeatureSpatialOperations.Intersects, "", 1, 5 /* has tooltips */) as MgTooltipQueryResult; if (tr != null) { _activeTooltipText = tr.Tooltip; return _activeTooltipText; } return string.Empty; }
public void MultiCurvePolygon() { MgGeometryFactory gf = new MgGeometryFactory(); MgCoordinate pt1 = gf.CreateCoordinateXY(0, 0); MgCoordinate pt2 = gf.CreateCoordinateXY(0, 10); MgCoordinate pt3 = gf.CreateCoordinateXY(10, 10); MgCoordinate pt4 = gf.CreateCoordinateXY(10, 0); MgCoordinateCollection coordinates = new MgCoordinateCollection(); coordinates.Add(pt1); coordinates.Add(pt2); coordinates.Add(pt3); coordinates.Add(pt4); MgLinearSegment linearSegment = gf.CreateLinearSegment(coordinates); MgCurveSegmentCollection curveSegments = new MgCurveSegmentCollection(); MgCurveRing curveRing = gf.CreateCurveRing(curveSegments); MgCurvePolygon cp = gf.CreateCurvePolygon(curveRing, null); MgCurvePolygonCollection cpc = new MgCurvePolygonCollection(); cpc.Add(cp); MgMultiCurvePolygon mcp = gf.CreateMultiCurvePolygon(cpc); Assert.AreEqual(1, mcp.Count); Assert.AreEqual(MgGeometryType.MultiCurvePolygon, mcp.GeometryType); Assert.AreEqual(2, mcp.Dimension); }
public MgCurveString CreateCurveString(double offset) { // Create and return a curvestring consisting of // one circulararc segment and one linearstring segment // arcseg = (0,0), (0,1), (1,2) // lineseg = (1,2), (3,0), (3,2) // ArcSegment MgCoordinate startPos = factory.CreateCoordinateXY(offset+0.0, offset+0.0); MgCoordinate midPos = factory.CreateCoordinateXY(offset+0.0, offset+1.0); MgCoordinate endPos = factory.CreateCoordinateXY(offset+1.0, offset+2.0); MgArcSegment arcSeg = factory.CreateArcSegment(startPos, endPos, midPos); // Linear Segment MgCoordinateCollection points = new MgCoordinateCollection(); MgCoordinate pt1 = factory.CreateCoordinateXY(offset+1.0, offset+2.0); MgCoordinate pt2 = factory.CreateCoordinateXY(offset+3.0, offset+0.0); MgCoordinate pt3 = factory.CreateCoordinateXY(offset+3.0, offset+2.0); points.Add(pt1); points.Add(pt2); points.Add(pt3); MgLinearSegment lineSeg = factory.CreateLinearSegment(points); // CurveSegment MgCurveSegmentCollection curveSegs = new MgCurveSegmentCollection(); curveSegs.Add(arcSeg); curveSegs.Add(lineSeg); return factory.CreateCurveString(curveSegs); }