private static Binary GetBinary(ISimpleGeometry geometry) { if (geometry == null) { return(null); } Binary ret = null; var sgw = geometry as SqlServer.SqlGeography; if ((sgw == null) || !sgw.CoordinateSystem.IsEquivalentTo(ServiceLocator.Current.GetInstance <ICoordinateSystemProvider>().Wgs84)) { var b = new SqlServer.SqlGeometryBuilder(ServiceLocator.Current.GetInstance <ICoordinateSystemProvider>().Wgs84); geometry.Populate(b); sgw = (SqlServer.SqlGeography)b.ConstructedGeometry; } using (var ms = new MemoryStream()) using (var bw = new BinaryWriter(ms)) { ((SqlTypes.SqlGeography)sgw).Write(bw); ret = new Binary(ms.ToArray()); } return(ret); }
private static SharpGeometry Convert(ISimpleGeometry geometry) { var sg = geometry as SharpGeometry; if (sg != null) { return(sg); } var sgb = new SharpGeometryBuilder(); geometry.Populate(sgb); return((SharpGeometry)sgb.ConstructedGeometry); }
/// <summary>Fills the current bounding box with the specified geometry information.</summary> /// <param name="g">THe geometry to fill this bounding box with.</param> public void InitFromGeometry(ISimpleGeometry g) { if (g == null) { LowerCorner = null; UpperCorner = null; return; } CoordinateSystem = g.CoordinateSystem; var lc = new List <double>(2); var uc = new List <double>(2); ISimpleGeometry env = g.Envelope(); var envelope = env as Gml.V311.Envelope; if (envelope == null) { envelope = new Gml.V311.Envelope(); env.Populate(envelope); } Debug.Assert(envelope != null); lc.Add(envelope.lowerCorner.TypedValue[0]); lc.Add(envelope.lowerCorner.TypedValue[1]); uc.Add(envelope.upperCorner.TypedValue[0]); uc.Add(envelope.upperCorner.TypedValue[1]); // Bug in LinqToXsd : serialization is culture dependent... //LowerCorner=lc; //UpperCorner=uc; LowerCorner = new List <double>(); foreach (XElement el in Untyped.Descendants("{http://www.opengis.net/ows}LowerCorner")) { el.Value = string.Join( " ", lc.Select <double, string>(d => d.ToString(CultureInfo.InvariantCulture)) ); } UpperCorner = new List <double>(); foreach (XElement el in Untyped.Descendants("{http://www.opengis.net/ows}UpperCorner")) { el.Value = string.Join( " ", uc.Select <double, string>(d => d.ToString(CultureInfo.InvariantCulture)) ); } }
/// <summary>Converts the specified <paramref name="geometry" /> into a <see cref="SqlGeometry" />.</summary> /// <param name="geometry">The geometry to convert.</param> /// <returns>The converted geometry.</returns> public static SqlGeometry ToGeometry(ISimpleGeometry geometry) { var sg = geometry as SqlGeometry; if (sg != null) { return(sg); } var sgb = new SqlGeometryBuilderWrapper(); geometry.Populate(sgb); return(sgb.ConstructedGeometry); }
private static FdoGeometry Convert(ISimpleGeometry geometry) { var sg = geometry as FdoGeometry; if (sg != null) { return(sg.Clone()); } var sgb = new FdoGeometryBuilder(); geometry.Populate(sgb); return(sgb.ConstructedGeometry); }
/// <summary>Converts the specified <paramref name="geometry" /> into a <see cref="SpatialGeography" />.</summary> /// <param name="geometry">The geometry to convert.</param> /// <returns>The converted geometry.</returns> public static SpatialGeography ToGeography(ISimpleGeometry geometry) { var sg = geometry as SpatialGeography; if (sg != null) { return(sg); } var sgb = new SpatialGeometryBuilder(); geometry.Populate(sgb); return(sgb.ConstructedGeometry as SpatialGeography); }
/// <summary>Fills the current bounding box with the specified geometry information.</summary> /// <param name="g">THe geometry to fill this bounding box with.</param> public void InitFromGeometry(ISimpleGeometry g) { if (g == null) { westBoundLongitude = null; eastBoundLongitude = null; southBoundLatitude = null; northBoundLatitude = null; return; } var lc = new List <decimal>(2); var uc = new List <decimal>(2); // Make sure it is WGS 84, and a GML 3.1.1 instance var builder = new Ogc.Gml.V311.GmlGeometryBuilder(CommonServiceLocator.GetCoordinateSystemProvider().Wgs84); g.Populate(builder); var envelope = builder.ConstructedGeometry.Envelope() as Ogc.Gml.V311.Envelope; lc.Add(Convert.ToDecimal(envelope.lowerCorner.TypedValue[0])); lc.Add(Convert.ToDecimal(envelope.lowerCorner.TypedValue[1])); uc.Add(Convert.ToDecimal(envelope.upperCorner.TypedValue[0])); uc.Add(Convert.ToDecimal(envelope.upperCorner.TypedValue[1])); westBoundLongitude = new Gco.Decimal_PropertyType() { Decimal = new Gco.Decimal(lc[0]) }; eastBoundLongitude = new Gco.Decimal_PropertyType() { Decimal = new Gco.Decimal(uc[0]) }; southBoundLatitude = new Gco.Decimal_PropertyType() { Decimal = new Gco.Decimal(lc[1]) }; northBoundLatitude = new Gco.Decimal_PropertyType() { Decimal = new Gco.Decimal(uc[1]) }; }
private void _WriteBox() { var geometry = _Tap as ISimpleGeometry; if (geometry != null) { ISimpleGeometry envelope = null; try { envelope = geometry.Envelope(); } catch { // Empty } if (envelope != null) { var sink = new JsonEnvelopeSink(_Writer); envelope.Populate(sink); } } }
/// <summary>Fills the current bounding box with the specified geometry information.</summary> /// <param name="g">THe geometry to fill this bounding box with.</param> public void InitFromGeometry(ISimpleGeometry g) { if (g==null) { westBoundLongitude=null; eastBoundLongitude=null; southBoundLatitude=null; northBoundLatitude=null; return; } var lc=new List<decimal>(2); var uc=new List<decimal>(2); // Make sure it is WGS 84, and a GML 3.1.1 instance var builder=new Ogc.Gml.V311.GmlGeometryBuilder(CommonServiceLocator.GetCoordinateSystemProvider().Wgs84); g.Populate(builder); var envelope=builder.ConstructedGeometry.Envelope() as Ogc.Gml.V311.Envelope; lc.Add(Convert.ToDecimal(envelope.lowerCorner.TypedValue[0])); lc.Add(Convert.ToDecimal(envelope.lowerCorner.TypedValue[1])); uc.Add(Convert.ToDecimal(envelope.upperCorner.TypedValue[0])); uc.Add(Convert.ToDecimal(envelope.upperCorner.TypedValue[1])); westBoundLongitude=new Gco.Decimal_PropertyType() { Decimal=new Gco.Decimal(lc[0]) }; eastBoundLongitude=new Gco.Decimal_PropertyType() { Decimal=new Gco.Decimal(uc[0]) }; southBoundLatitude=new Gco.Decimal_PropertyType() { Decimal=new Gco.Decimal(lc[1]) }; northBoundLatitude=new Gco.Decimal_PropertyType() { Decimal=new Gco.Decimal(uc[1]) }; }
/// <summary>Converts the specified <paramref name="geometry" /> into a <see cref="SpatialGeometry" />.</summary> /// <param name="geometry">The geometry to convert.</param> /// <returns>The converted geometry.</returns> public static SpatialGeometry ToGeometry(ISimpleGeometry geometry) { var sg=geometry as SpatialGeometry; if (sg!=null) return sg; var sgb=new SpatialGeometryBuilder(); geometry.Populate(sgb); return sgb.ConstructedGeometry as SpatialGeometry; }
/// <summary>Converts the specified <paramref name="geometry" /> into a <see cref="SqlGeography" />.</summary> /// <param name="geometry">The geometry to convert.</param> /// <returns>The converted geometry.</returns> public static SqlGeography ToGeography(ISimpleGeometry geometry) { var sg=geometry as SqlGeography; if (sg!=null) return sg; var sgb=new SqlGeographyBuilderWrapper(); geometry.Populate(sgb); return sgb.ConstructedGeometry; }
private static byte[] GetBinary(ISimpleGeometry geometry) { if (geometry==null) return null; byte[] ret=null; var sgw=geometry as SqlServer.SqlGeometry; if ((sgw==null) || !sgw.CoordinateSystem.IsEquivalentTo(ServiceLocator.Current.GetInstance<ICoordinateSystemProvider>().Wgs84)) { var b=new SqlServer.SqlGeometryBuilder(ServiceLocator.Current.GetInstance<ICoordinateSystemProvider>().Wgs84); geometry.Populate(b); sgw=(SqlServer.SqlGeometry)b.ConstructedGeometry; } using (var ms=new MemoryStream()) using (var bw=new BinaryWriter(ms)) { ((SqlTypes.SqlGeometry)sgw).Write(bw); ret=ms.ToArray(); } return ret; }
private static FdoGeometry Convert(ISimpleGeometry geometry) { var sg=geometry as FdoGeometry; if (sg!=null) return sg.Clone(); var sgb=new FdoGeometryBuilder(); geometry.Populate(sgb); return sgb.ConstructedGeometry; }
private static SharpGeometry Convert(ISimpleGeometry geometry) { var sg=geometry as SharpGeometry; if (sg!=null) return sg; var sgb=new SharpGeometryBuilder(); geometry.Populate(sgb); return (SharpGeometry)sgb.ConstructedGeometry; }