public static GeometryType Convert(SmGeometries.GeometryType2 type) { switch (type) { case SmGeometries.GeometryType2.GeometryCollection: return GeometryType.GeometryCollection; case SmGeometries.GeometryType2.LineString: return GeometryType.LineString; case SmGeometries.GeometryType2.MultiLineString: return GeometryType.MultiLineString; case SmGeometries.GeometryType2.MultiPoint: return GeometryType.MultiPoint; case SmGeometries.GeometryType2.MultiPolygon: return GeometryType.MultiPolygon; case SmGeometries.GeometryType2.MultiSurface: return GeometryType.Point; case SmGeometries.GeometryType2.Polygon: return GeometryType.Polygon; } throw new NotSupportedException( string.Format( CultureInfo.CurrentCulture, SR.UnsupportedGeometryTypeException, type ) ); }
/// <summary>Creates a new instance of the <see cref="SharpGeometry" /> class.</summary> /// <param name="geometry">The <see cref="SmGeometries.Geometry" /> to encapsulate. /// Its spatial reference must be initialized. </param> /// <exception cref="ArgumentNullException"> /// <para>The <paramref name="geometry" /> is <c>null</c>.</para> /// </exception> /// <exception cref="ArgumentException"> /// <para>The spatial reference of the specified <paramref name="geometry" /> was /// not initialized.</para> /// </exception> public SharpGeometry(SmGeometries.Geometry geometry) { Debug.Assert(geometry!=null); if (geometry==null) throw new ArgumentNullException("geometry"); Debug.Assert(geometry.SpatialReference!=null); if (geometry.SpatialReference==null) throw new ArgumentException(SR.SharpMapSpatialReferenceMustBeInitializedException, "geometry"); _Geometry=geometry; }
/// <summary> /// Creates an R-Tree query rectangle from a SharpMap bounding box /// </summary> /// <param name="bbox">The SharpMap bounding box</param> /// <returns></returns> public static Rectangle RectFromBoundingBox(Sm.BoundingBox bbox) { return new Rectangle((float)bbox.Left, (float)bbox.Bottom, (float)bbox.Right, (float)bbox.Top, (float)0.0, (float)0.0); }
/// <summary> /// Creates an FDO envelope from a SharpMap bounding box /// </summary> /// <param name="bbox">The SharpMap bounding box.</param> /// <returns></returns> public static Fdo.IEnvelope EnvelopeFromBoundingBox(Sm.BoundingBox bbox) { return FdoGeometryFactory.Instance.CreateEnvelopeXY(bbox.Left, bbox.Bottom, bbox.Right, bbox.Top); }
/// <summary> /// Converts an SharpMap Geometry to a FDO geometry /// </summary> /// <param name="geom">The SharpMap geometry</param> /// <returns></returns> public static FdoGeometry ToFdoGeometry(Sm.Geometry geom) { //Get the WKB form of the geometry byte[] wkb = GeometryToWKB.Write(geom); Fdo.IGeometry fg = FdoGeometryFactory.Instance.CreateGeometryFromWkb(wkb); return new FdoGeometry(fg); }
/// <summary>Converts the specified <paramref name="geometry" /> into a <see cref="SharpGeometry" />.</summary> /// <param name="geometry">The geometry to convert.</param> /// <returns>The converted geometry.</returns> public static SharpGeometry ToSharpGeometry(SmGeometries.Geometry geometry) { return new SharpGeometry(geometry); }
private static void _PopulateSimpleType(IGeometrySink sink, SmGeometries.Geometry geometry) { sink.BeginGeometry(GeometryTypeUtils.Convert(geometry.GeometryType)); switch (geometry.GeometryType) { case SmGeometries.GeometryType2.LineString: CreateFigure(sink, ((SmGeometries.LineString)geometry).Vertices); break; case SmGeometries.GeometryType2.Point: CreateFigure(sink, new SmGeometries.Point[] { (SmGeometries.Point)geometry }); break; case SmGeometries.GeometryType2.Polygon: { var pol=(SmGeometries.Polygon)geometry; CreateFigure(sink, pol.ExteriorRing.Vertices); if (pol.InteriorRings!=null) foreach (SmGeometries.LinearRing lr in pol.InteriorRings) CreateFigure(sink, lr.Vertices); } break; default: throw new NotSupportedException( string.Format( CultureInfo.CurrentCulture, SR.UnsupportedGeometryTypeException, geometry.GeometryType ) ); } sink.EndGeometry(); }