protected void Button1Click(object sender, DirectEventArgs e) { SpacialDataSet sd = new SpacialDataSet(); sd.vehicule = vehicule.Text; sd.dateDepart = DateTime.Parse(dateDepart.Text) + TimeSpan.Parse(HD.Text); sd.dateArivee = DateTime.Parse(dateArivee.Text) + TimeSpan.Parse(HA.Text); if (pm.Checked == true) { SqlGeometry sqlG = SqlGeometry.Parse(trajet.Text); sd.trajet = DbGeometry.FromBinary(sqlG.STAsBinary().Buffer); } else if (pm.Checked == false) { SqlGeometry sqlG = SqlGeometry.Parse(trajet.Text); sd.trajet = DbGeometry.FromBinary(sqlG.STAsBinary().Buffer); } sd.active = (bool?)SqlBoolean.Parse(active.Text); db = new demoDB(); db.SpacialDataSets.Add(sd); db.SaveChanges(); X.Msg.Alert("INFO", "l'opération a été effectuée avec succès").Show(); ResetInputs(); Store1.Reload(); X.Call("resetMap"); }
public void loadReleaseFile(string inFileName) { List <base_release> myReleaseSites = new List <base_release>(); IFeatureSet fs = FeatureSet.Open(inFileName); DataTable dt = fs.DataTable; for (int i = 0; i < dt.Rows.Count; i++) { base_release br = new base_release(); IFeature f = fs.Features[i]; br.geom = DbGeometry.FromBinary(f.BasicGeometry.ToBinary(), 0); br.MALES = GetLong(dt.Rows[i], "MALES"); br.FEMS = GetLong(dt.Rows[i], "FEMS"); br.RELEASESIT = GetLong(dt.Rows[i], "RELEASESIT"); myReleaseSites.Add(br); } using (me = new MapEntites()) { me.Database.ExecuteSqlCommand("Truncate Table [base_release]"); me.base_release.AddRange(myReleaseSites); me.SaveChanges(); } }
public static DbGeometry ToDbGeometry(this IGeometry self) { if (self == null) { return(null); } return(DbGeometry.FromBinary(self.AsBinary())); }
public static DbGeometry ToDbGeometry(this SqlGeometry sqlGeometry) { if (sqlGeometry == null) { return(null); } return(DbGeometry.FromBinary(sqlGeometry.STAsBinary().Buffer, sqlGeometry.STSrid.Value)); }
public override DbGeometry GeometryFromBinary(byte[] wellKnownBinary) { if (wellKnownBinary == null) { throw new ArgumentNullException("wellKnownBinary"); } DbGeometry mysqlValue = DbGeometry.FromBinary(wellKnownBinary); return(GeometryFromProviderValue(mysqlValue)); }
/// <summary> /// IFeature转换为DbGeometry /// </summary> /// <param name="feature"></param> /// <returns></returns> public static DbGeometry featureToDbGeometry(IFeature feature) { IWkb wkb = (IWkb)feature.Shape; byte[] wkb_bytes = new byte[wkb.WkbSize]; int byte_count = wkb.WkbSize; wkb.ExportToWkb(ref byte_count, out wkb_bytes[0]); DbGeometry result = DbGeometry.FromBinary(wkb_bytes, SRID); return(result); }
/// <summary>Parses the geometry defined by the specified WKB representation, in the specified coordinate system.</summary> /// <param name="data">The WKB representation of the geometry.</param> /// <param name="system">The coordinate system of the WKB representation.</param> void IGeometryBuilder.Parse(byte[] data, ICoordinateSystem system) { Debug.Assert(system != null); if (system == null) { throw new ArgumentNullException("system"); } var g = DbGeometry.FromBinary(data); _Builder = new Gml.GmlGeometryBuilder(system); _Builder.Parse(g.AsText(), system); }
public static DbGeometry ProjectCaliforniaStatePlaneVIToWebMercator(DbGeometry inputGeometry) { var wkb = inputGeometry.AsBinary(); NetTopologySuite.IO.WKBReader reader = new NetTopologySuite.IO.WKBReader(); Geometry internalGeometry = (Geometry)reader.Read(wkb); double[] pointArray = new double[internalGeometry.Coordinates.Count() * 2]; double[] zArray = new double[1]; zArray[0] = 1; int counterX = 0; int counterY = 1; foreach (var coordinate in internalGeometry.Coordinates) { pointArray[counterX] = coordinate.X; pointArray[counterY] = coordinate.Y; counterX = counterX + 2; counterY = counterY + 2; } Reproject.ReprojectPoints(pointArray, zArray, CaStatePlane, WebMercator, 0, (pointArray.Length / 2)); counterX = 0; counterY = 1; foreach (var coordinate in internalGeometry.Coordinates) { coordinate.X = pointArray[counterX]; coordinate.Y = pointArray[counterY]; counterX = counterX + 2; counterY = counterY + 2; } var outputWkb = internalGeometry.AsBinary(); var dbGeometry = DbGeometry.FromBinary(outputWkb, WGS_1984_SRID); if (!dbGeometry.IsValid) { dbGeometry = dbGeometry.ToSqlGeometry().MakeValid().ToDbGeometry().FixSrid(WGS_1984_SRID); } return(dbGeometry); }
/// <summary> /// Create a <see cref="DbGeography"/> or <see cref="DbGeometry"/> from <paramref name="jsonObject"/>. /// </summary> /// <param name="jsonObject"> /// The JSON object. /// </param> /// <param name="objectType"> /// The object type. /// </param> /// <returns> /// The <see cref="DbGeography"/> or <see cref="DbGeometry"/> /// </returns> /// <exception cref="ArgumentException"> /// <paramref name="objectType"/> is not a <see cref="DbGeography"/> or <see cref="DbGeometry"/>. /// </exception> private static object CreateDbGeo(JObject jsonObject, Type objectType) { Func <Tuple <byte[], int>, object> returnValue; int defaultCoordinateSystemId; if (typeof(DbGeography).IsAssignableFrom(objectType)) { returnValue = x => (object)DbGeography.FromBinary(x.Item1, x.Item2); defaultCoordinateSystemId = DbGeography.DefaultCoordinateSystemId; } else if (typeof(DbGeometry).IsAssignableFrom(objectType)) { returnValue = x => (object)DbGeometry.FromBinary(x.Item1, x.Item2); defaultCoordinateSystemId = DbGeometry.DefaultCoordinateSystemId; } else { throw new ArgumentException(string.Format("Expected a DbGeography or DbGeometry objectType. Got {0}", objectType.CSharpName()), "objectType"); } return(jsonObject.Type == JTokenType.Null || jsonObject.Type == JTokenType.None ? null : returnValue(GetWellKnownBinary(jsonObject, defaultCoordinateSystemId))); }
/// <inheritdoc/> public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { Func <Tuple <byte[], int>, object> returnValue; int defaultCoordinateSystemId; if (typeof(DbGeography).IsAssignableFrom(objectType)) { returnValue = x => (object)DbGeography.FromBinary(x.Item1, x.Item2); defaultCoordinateSystemId = DbGeography.DefaultCoordinateSystemId; } else if (typeof(DbGeometry).IsAssignableFrom(objectType)) { returnValue = x => (object)DbGeometry.FromBinary(x.Item1, x.Item2); defaultCoordinateSystemId = DbGeometry.DefaultCoordinateSystemId; } else { throw new ArgumentException(string.Format("Expected a DbGeography or DbGeometry objectType. Got {0}", objectType.FullName), "objectType"); } return(reader.TokenType == JsonToken.Null ? null : returnValue(GetWellKnownBinary(reader, defaultCoordinateSystemId))); }
public static DbGeometry ProjectWebMercatorToCaliforniaStatePlaneVI(DbGeometry inputGeometry) { var wkb = inputGeometry.AsBinary(); NetTopologySuite.IO.WKBReader reader = new NetTopologySuite.IO.WKBReader(); Geometry internalGeometry = (Geometry)reader.Read(wkb); double[] pointArray = new double[internalGeometry.Coordinates.Count() * 2]; double[] zArray = new double[1]; zArray[0] = 1; int counterX = 0; int counterY = 1; foreach (var coordinate in internalGeometry.Coordinates) { pointArray[counterX] = coordinate.X; pointArray[counterY] = coordinate.Y; counterX = counterX + 2; counterY = counterY + 2; } Reproject.ReprojectPoints(pointArray, zArray, WebMercator, CaStatePlane, 0, (pointArray.Length / 2)); counterX = 0; counterY = 1; foreach (var coordinate in internalGeometry.Coordinates) { coordinate.X = pointArray[counterX]; coordinate.Y = pointArray[counterY]; counterX = counterX + 2; counterY = counterY + 2; } var outputWkb = internalGeometry.AsBinary(); return(DbGeometry.FromBinary(outputWkb, NAD_83_HARN_CA_ZONE_VI_SRID)); }
public async Task <IHttpActionResult> GetAll(string modelId, int projectId, int caseId, int zoom, string bbox) { var tolerance = res[zoom] * 2; var bboxParts = bbox.Split(',') .Take(4) .Select(v => { double d = double.NaN; double.TryParse(v, NumberStyles.Any, CultureInfo.InvariantCulture, out d); return(d); }) .ToArray(); if (bboxParts.Count(v => !double.IsNaN(v)) != 4 || bboxParts[0] >= bboxParts[2] || bboxParts[1] >= bboxParts[3]) { return(BadRequest("bounding box is invalid")); } var bboxPartsAsString = bboxParts.Select(v => v.ToString(CultureInfo.InvariantCulture)).ToArray(); var bboxGeometry = DbGeometry.FromText(System.String.Format("POLYGON (({0} {1}, {2} {1}, {2} {3}, {0} {3}, {0} {1}))", bboxPartsAsString)); var selections = (await db.Exceptions .Where(e => e.CaseId == caseId) .ToArrayAsync()) .Select(e => { e.area = (e.geo.Area.HasValue) ? e.geo.Area.Value : 0.0; e.bbox = e.geo.Envelope; e.geo = e.geo.Intersects(bboxGeometry) ? zoom > 8 ? e.geo : DbGeometry.FromBinary(TopologyPreservingSimplifier.Simplify(new WKTReader().Read(e.geo.AsText()), tolerance).AsBinary()) : e.geo.Envelope; return(e); }); return(Ok(selections)); }
public static DbGeometry UnionListGeometries(this IList <DbGeometry> inputGeometries) { if (inputGeometries.Count == 0) { return(null); } DbGeometry union; try { // all geometries have to have the same SRS or the union isn't defined anyway, so just grab the first one var coordinateSystemId = inputGeometries.First().CoordinateSystemId; NetTopologySuite.IO.WKBReader reader = new NetTopologySuite.IO.WKBReader(); var internalGeometries = inputGeometries.Select(x => x.Buffer(0)).Select(x => reader.Read(x.AsBinary())) .ToList(); var geometry = NetTopologySuite.Operation.Union.CascadedPolygonUnion.Union(internalGeometries); union = DbGeometry.FromBinary(geometry.AsBinary(), coordinateSystemId); return(union); } catch (TopologyException) { // fall back on the iterative union union = inputGeometries.First(); for (var i = 1; i < inputGeometries.Count; i++) { var temp = union.Union(inputGeometries[i]); union = temp; } return(union); } }
private static IEnumerable <MethodInfo> GetSupportedMethods() { yield return(GetStaticMethod(() => DbGeography.FromText(default(string)))); yield return(GetStaticMethod(() => DbGeography.FromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeography.PointFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeography.LineFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeography.PolygonFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeography.MultiPointFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeography.MultiLineFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeography.MultiPolygonFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeography.GeographyCollectionFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeography.FromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeography.FromBinary(default(byte[])))); yield return(GetStaticMethod(() => DbGeography.PointFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeography.LineFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeography.PolygonFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeography.MultiPointFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeography.MultiLineFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeography.MultiPolygonFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeography.GeographyCollectionFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeography.FromGml(default(string)))); yield return(GetStaticMethod(() => DbGeography.FromGml(default(string), default(int)))); yield return(GetInstanceMethod((DbGeography geo) => geo.AsBinary())); yield return(GetInstanceMethod((DbGeography geo) => geo.AsGml())); yield return(GetInstanceMethod((DbGeography geo) => geo.AsText())); yield return(GetInstanceMethod((DbGeography geo) => geo.SpatialEquals(default(DbGeography)))); yield return(GetInstanceMethod((DbGeography geo) => geo.Disjoint(default(DbGeography)))); yield return(GetInstanceMethod((DbGeography geo) => geo.Intersects(default(DbGeography)))); yield return(GetInstanceMethod((DbGeography geo) => geo.Buffer(default(double)))); yield return(GetInstanceMethod((DbGeography geo) => geo.Distance(default(DbGeography)))); yield return(GetInstanceMethod((DbGeography geo) => geo.Intersection(default(DbGeography)))); yield return(GetInstanceMethod((DbGeography geo) => geo.Union(default(DbGeography)))); yield return(GetInstanceMethod((DbGeography geo) => geo.Difference(default(DbGeography)))); yield return(GetInstanceMethod((DbGeography geo) => geo.SymmetricDifference(default(DbGeography)))); yield return(GetInstanceMethod((DbGeography geo) => geo.ElementAt(default(int)))); yield return(GetInstanceMethod((DbGeography geo) => geo.PointAt(default(int)))); yield return(GetStaticMethod(() => DbGeometry.FromText(default(string)))); yield return(GetStaticMethod(() => DbGeometry.FromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeometry.PointFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeometry.LineFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeometry.PolygonFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeometry.MultiPointFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeometry.MultiLineFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeometry.MultiPolygonFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeometry.GeometryCollectionFromText(default(string), default(int)))); yield return(GetStaticMethod(() => DbGeometry.FromBinary(default(byte[])))); yield return(GetStaticMethod(() => DbGeometry.FromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeometry.PointFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeometry.LineFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeometry.PolygonFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeometry.MultiPointFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeometry.MultiLineFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeometry.MultiPolygonFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeometry.GeometryCollectionFromBinary(default(byte[]), default(int)))); yield return(GetStaticMethod(() => DbGeometry.FromGml(default(string)))); yield return(GetStaticMethod(() => DbGeometry.FromGml(default(string), default(int)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.AsBinary())); yield return(GetInstanceMethod((DbGeometry geo) => geo.AsGml())); yield return(GetInstanceMethod((DbGeometry geo) => geo.AsText())); yield return(GetInstanceMethod((DbGeometry geo) => geo.SpatialEquals(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Disjoint(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Intersects(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Touches(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Crosses(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Within(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Contains(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Overlaps(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Relate(default(DbGeometry), default(string)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Buffer(default(double)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Distance(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Intersection(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Union(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.Difference(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.SymmetricDifference(default(DbGeometry)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.ElementAt(default(int)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.PointAt(default(int)))); yield return(GetInstanceMethod((DbGeometry geo) => geo.InteriorRingAt(default(int)))); }
private static Dictionary <MethodInfo, string> GetRenamedMethodFunctions() { var result = new Dictionary <MethodInfo, string>(); result.Add(GetStaticMethod(() => DbGeography.FromText(default(string))), "GeographyFromText"); result.Add(GetStaticMethod(() => DbGeography.FromText(default(string), default(int))), "GeographyFromText"); result.Add(GetStaticMethod(() => DbGeography.PointFromText(default(string), default(int))), "GeographyPointFromText"); result.Add(GetStaticMethod(() => DbGeography.LineFromText(default(string), default(int))), "GeographyLineFromText"); result.Add( GetStaticMethod(() => DbGeography.PolygonFromText(default(string), default(int))), "GeographyPolygonFromText"); result.Add( GetStaticMethod(() => DbGeography.MultiPointFromText(default(string), default(int))), "GeographyMultiPointFromText"); result.Add( GetStaticMethod(() => DbGeography.MultiLineFromText(default(string), default(int))), "GeographyMultiLineFromText"); result.Add( GetStaticMethod(() => DbGeography.MultiPolygonFromText(default(string), default(int))), "GeographyMultiPolygonFromText"); result.Add( GetStaticMethod(() => DbGeography.GeographyCollectionFromText(default(string), default(int))), "GeographyCollectionFromText"); result.Add(GetStaticMethod(() => DbGeography.FromBinary(default(byte[]), default(int))), "GeographyFromBinary"); result.Add(GetStaticMethod(() => DbGeography.FromBinary(default(byte[]))), "GeographyFromBinary"); result.Add( GetStaticMethod(() => DbGeography.PointFromBinary(default(byte[]), default(int))), "GeographyPointFromBinary"); result.Add(GetStaticMethod(() => DbGeography.LineFromBinary(default(byte[]), default(int))), "GeographyLineFromBinary"); result.Add( GetStaticMethod(() => DbGeography.PolygonFromBinary(default(byte[]), default(int))), "GeographyPolygonFromBinary"); result.Add( GetStaticMethod(() => DbGeography.MultiPointFromBinary(default(byte[]), default(int))), "GeographyMultiPointFromBinary"); result.Add( GetStaticMethod(() => DbGeography.MultiLineFromBinary(default(byte[]), default(int))), "GeographyMultiLineFromBinary"); result.Add( GetStaticMethod(() => DbGeography.MultiPolygonFromBinary(default(byte[]), default(int))), "GeographyMultiPolygonFromBinary"); result.Add( GetStaticMethod(() => DbGeography.GeographyCollectionFromBinary(default(byte[]), default(int))), "GeographyCollectionFromBinary"); result.Add(GetStaticMethod(() => DbGeography.FromGml(default(string))), "GeographyFromGml"); result.Add(GetStaticMethod(() => DbGeography.FromGml(default(string), default(int))), "GeographyFromGml"); result.Add(GetInstanceMethod((DbGeography geo) => geo.AsBinary()), "AsBinary"); result.Add(GetInstanceMethod((DbGeography geo) => geo.AsGml()), "AsGml"); result.Add(GetInstanceMethod((DbGeography geo) => geo.AsText()), "AsText"); result.Add(GetInstanceMethod((DbGeography geo) => geo.SpatialEquals(default(DbGeography))), "SpatialEquals"); result.Add(GetInstanceMethod((DbGeography geo) => geo.Disjoint(default(DbGeography))), "SpatialDisjoint"); result.Add(GetInstanceMethod((DbGeography geo) => geo.Intersects(default(DbGeography))), "SpatialIntersects"); result.Add(GetInstanceMethod((DbGeography geo) => geo.Buffer(default(double))), "SpatialBuffer"); result.Add(GetInstanceMethod((DbGeography geo) => geo.Distance(default(DbGeography))), "Distance"); result.Add(GetInstanceMethod((DbGeography geo) => geo.Intersection(default(DbGeography))), "SpatialIntersection"); result.Add(GetInstanceMethod((DbGeography geo) => geo.Union(default(DbGeography))), "SpatialUnion"); result.Add(GetInstanceMethod((DbGeography geo) => geo.Difference(default(DbGeography))), "SpatialDifference"); result.Add( GetInstanceMethod((DbGeography geo) => geo.SymmetricDifference(default(DbGeography))), "SpatialSymmetricDifference"); result.Add(GetInstanceMethod((DbGeography geo) => geo.ElementAt(default(int))), "SpatialElementAt"); result.Add(GetInstanceMethod((DbGeography geo) => geo.PointAt(default(int))), "PointAt"); result.Add(GetStaticMethod(() => DbGeometry.FromText(default(string))), "GeometryFromText"); result.Add(GetStaticMethod(() => DbGeometry.FromText(default(string), default(int))), "GeometryFromText"); result.Add(GetStaticMethod(() => DbGeometry.PointFromText(default(string), default(int))), "GeometryPointFromText"); result.Add(GetStaticMethod(() => DbGeometry.LineFromText(default(string), default(int))), "GeometryLineFromText"); result.Add(GetStaticMethod(() => DbGeometry.PolygonFromText(default(string), default(int))), "GeometryPolygonFromText"); result.Add( GetStaticMethod(() => DbGeometry.MultiPointFromText(default(string), default(int))), "GeometryMultiPointFromText"); result.Add( GetStaticMethod(() => DbGeometry.MultiLineFromText(default(string), default(int))), "GeometryMultiLineFromText"); result.Add( GetStaticMethod(() => DbGeometry.MultiPolygonFromText(default(string), default(int))), "GeometryMultiPolygonFromText"); result.Add( GetStaticMethod(() => DbGeometry.GeometryCollectionFromText(default(string), default(int))), "GeometryCollectionFromText"); result.Add(GetStaticMethod(() => DbGeometry.FromBinary(default(byte[]))), "GeometryFromBinary"); result.Add(GetStaticMethod(() => DbGeometry.FromBinary(default(byte[]), default(int))), "GeometryFromBinary"); result.Add(GetStaticMethod(() => DbGeometry.PointFromBinary(default(byte[]), default(int))), "GeometryPointFromBinary"); result.Add(GetStaticMethod(() => DbGeometry.LineFromBinary(default(byte[]), default(int))), "GeometryLineFromBinary"); result.Add( GetStaticMethod(() => DbGeometry.PolygonFromBinary(default(byte[]), default(int))), "GeometryPolygonFromBinary"); result.Add( GetStaticMethod(() => DbGeometry.MultiPointFromBinary(default(byte[]), default(int))), "GeometryMultiPointFromBinary"); result.Add( GetStaticMethod(() => DbGeometry.MultiLineFromBinary(default(byte[]), default(int))), "GeometryMultiLineFromBinary"); result.Add( GetStaticMethod(() => DbGeometry.MultiPolygonFromBinary(default(byte[]), default(int))), "GeometryMultiPolygonFromBinary"); result.Add( GetStaticMethod(() => DbGeometry.GeometryCollectionFromBinary(default(byte[]), default(int))), "GeometryCollectionFromBinary"); result.Add(GetStaticMethod(() => DbGeometry.FromGml(default(string))), "GeometryFromGml"); result.Add(GetStaticMethod(() => DbGeometry.FromGml(default(string), default(int))), "GeometryFromGml"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.AsBinary()), "AsBinary"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.AsGml()), "AsGml"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.AsText()), "AsText"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.SpatialEquals(default(DbGeometry))), "SpatialEquals"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Disjoint(default(DbGeometry))), "SpatialDisjoint"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Intersects(default(DbGeometry))), "SpatialIntersects"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Touches(default(DbGeometry))), "SpatialTouches"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Crosses(default(DbGeometry))), "SpatialCrosses"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Within(default(DbGeometry))), "SpatialWithin"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Contains(default(DbGeometry))), "SpatialContains"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Overlaps(default(DbGeometry))), "SpatialOverlaps"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Relate(default(DbGeometry), default(string))), "SpatialRelate"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Buffer(default(double))), "SpatialBuffer"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Distance(default(DbGeometry))), "Distance"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Intersection(default(DbGeometry))), "SpatialIntersection"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Union(default(DbGeometry))), "SpatialUnion"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.Difference(default(DbGeometry))), "SpatialDifference"); result.Add( GetInstanceMethod((DbGeometry geo) => geo.SymmetricDifference(default(DbGeometry))), "SpatialSymmetricDifference"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.ElementAt(default(int))), "SpatialElementAt"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.PointAt(default(int))), "PointAt"); result.Add(GetInstanceMethod((DbGeometry geo) => geo.InteriorRingAt(default(int))), "InteriorRingAt"); return(result); }
public static DbGeometry ToDbGeometry(this IGeometryObject geometryObject, int coordinateSystemId = 4326) { return(DbGeometry.FromBinary(WkbEncode.Encode(geometryObject), coordinateSystemId)); }
/// <summary> /// Create new instance of <see cref="ObjectMapper" />. /// </summary> public ObjectMapper() { var assemblyName = new AssemblyName("Dextrys_ILEmit_TypeMaps"); _moduleBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave) .DefineDynamicModule(assemblyName.Name, assemblyName.Name + ".dll", false); _converters = new ConverterCollection(this); _converters.Add(new PrimitiveConverter { Intrinsic = true }); _converters.Add(new ObjectToStringConverter { Intrinsic = true }); _converters.Add(new FromStringConverter { Intrinsic = true }); #region bool Converters // sbyte -> bool Converters.AddIntrinsic((sbyte source) => source != 0); // byte -> bool Converters.AddIntrinsic((byte source) => source != 0); // char -> bool Converters.AddIntrinsic((char source) => source != 0); // int -> bool Converters.AddIntrinsic((int source) => source != 0); // uint -> bool Converters.AddIntrinsic((uint source) => source != 0); // long -> bool Converters.AddIntrinsic((long source) => source != 0); // ulong -> bool Converters.AddIntrinsic((ulong source) => source != 0); // short -> bool Converters.AddIntrinsic((short source) => source != 0); // ushort -> bool Converters.AddIntrinsic((ushort source) => source != 0); // decimal -> bool Converters.AddIntrinsic((decimal source) => source != 0); // float -> bool Converters.AddIntrinsic((float source) => source != 0); // double -> bool Converters.AddIntrinsic((double source) => source != 0); // bool -> int Converters.AddIntrinsic((bool source) => (source ? 1 : 0)); // bool -> char Converters.AddIntrinsic((bool source) => source ? 'T' : 'F'); // bool -> byte Converters.AddIntrinsic((bool source) => (byte)(source ? 1 : 0)); // bool -> short Converters.AddIntrinsic((bool source) => (short)(source ? 1 : 0)); // bool -> ushort Converters.AddIntrinsic((bool source) => (ushort)(source ? 1 : 0)); // bool -> uint Converters.AddIntrinsic((bool source) => (uint)(source ? 1 : 0)); // bool -> long Converters.AddIntrinsic((bool source) => (long)(source ? 1 : 0)); // bool -> ulong Converters.AddIntrinsic((bool source) => (ulong)(source ? 1 : 0)); // bool -> decimal Converters.AddIntrinsic((bool source) => (decimal)(source ? 1 : 0)); // bool -> float Converters.AddIntrinsic((bool source) => (float)(source ? 1 : 0)); // bool -> double Converters.AddIntrinsic((bool source) => (double)(source ? 1 : 0)); // bool -> sbyte Converters.AddIntrinsic((bool source) => (sbyte)(source ? 1 : 0)); #endregion #region DateTime Converters // DateTime -> long Converters.AddIntrinsic((DateTime source) => source.Ticks); // DateTime -> ulong Converters.AddIntrinsic((DateTime source) => (ulong)source.Ticks); // sbyte -> DateTime Converters.AddIntrinsic((sbyte source) => new DateTime(source)); // byte -> DateTime Converters.AddIntrinsic((byte source) => new DateTime(source)); // char -> DateTime Converters.AddIntrinsic((char source) => new DateTime(source)); // int -> DateTime Converters.AddIntrinsic((int source) => new DateTime(source)); // uint -> DateTime Converters.AddIntrinsic((uint source) => new DateTime(source)); // long -> DateTime Converters.AddIntrinsic((long source) => new DateTime(source)); // ulong -> DateTime Converters.AddIntrinsic((ulong source) => new DateTime((long)source)); // short -> DateTime Converters.AddIntrinsic((short source) => new DateTime(source)); // ushort -> DateTime Converters.AddIntrinsic((ushort source) => new DateTime(source)); // decimal -> DateTime Converters.AddIntrinsic((decimal source) => new DateTime((long)source)); // float -> DateTime Converters.AddIntrinsic((float source) => new DateTime((long)source)); // double -> DateTime Converters.AddIntrinsic((double source) => new DateTime((long)source)); #endregion #region TimeSpan Converters // TimeSpan -> long Converters.AddIntrinsic((TimeSpan source) => source.Ticks); // TimeSpan -> ulong Converters.AddIntrinsic((TimeSpan source) => (ulong)source.Ticks); // sbyte -> TimeSpan Converters.AddIntrinsic((sbyte source) => new TimeSpan(source)); // byte -> TimeSpan Converters.AddIntrinsic((byte source) => new TimeSpan(source)); // char -> TimeSpan Converters.AddIntrinsic((char source) => new TimeSpan(source)); // int -> TimeSpan Converters.AddIntrinsic((int source) => new TimeSpan(source)); // uint -> TimeSpan Converters.AddIntrinsic((uint source) => new TimeSpan(source)); // long -> TimeSpan Converters.AddIntrinsic((long source) => new TimeSpan(source)); // ulong -> TimeSpan Converters.AddIntrinsic((ulong source) => new TimeSpan((long)source)); // short -> TimeSpan Converters.AddIntrinsic((short source) => new TimeSpan(source)); // ushort -> TimeSpan Converters.AddIntrinsic((ushort source) => new TimeSpan(source)); // decimal -> TimeSpan Converters.AddIntrinsic((decimal source) => new TimeSpan((long)source)); // float -> TimeSpan Converters.AddIntrinsic((float source) => new TimeSpan((long)source)); // double -> TimeSpan Converters.AddIntrinsic((double source) => new TimeSpan((long)source)); #endregion #region Byte Array Converters // bool -> byte[] Converters.AddIntrinsic((bool source) => BitConverter.GetBytes(source)); // byte[] -> bool Converters.AddIntrinsic((byte[] source) => source != null && BitConverter.ToBoolean(source, 0)); // char -> byte[] Converters.AddIntrinsic((char source) => BitConverter.GetBytes(source)); // byte[] -> char Converters.AddIntrinsic((byte[] source) => source == null ? '\0' : BitConverter.ToChar(source, 0)); // double -> byte[] Converters.AddIntrinsic((double source) => BitConverter.GetBytes(source)); // byte[] -> double Converters.AddIntrinsic((byte[] source) => source == null ? (double)0 : BitConverter.ToDouble(source, 0)); // float -> byte[] Converters.AddIntrinsic((float source) => BitConverter.GetBytes(source)); // byte[] -> float Converters.AddIntrinsic((byte[] source) => source == null ? (float)0 : BitConverter.ToSingle(source, 0)); // short -> byte[] Converters.AddIntrinsic((short source) => BitConverter.GetBytes(source)); // byte[] -> short Converters.AddIntrinsic((byte[] source) => source == null ? (short)0 : BitConverter.ToInt16(source, 0)); // ushort -> byte[] Converters.AddIntrinsic((ushort source) => BitConverter.GetBytes(source)); // byte[] -> ushort Converters.AddIntrinsic((byte[] source) => source == null ? (ushort)0 : BitConverter.ToUInt16(source, 0)); // int -> byte[] Converters.AddIntrinsic((int source) => BitConverter.GetBytes(source)); // byte[] -> int Converters.AddIntrinsic((byte[] source) => source == null ? 0 : BitConverter.ToInt32(source, 0)); // uint -> byte[] Converters.AddIntrinsic((uint source) => BitConverter.GetBytes(source)); // byte[] -> uint Converters.AddIntrinsic((byte[] source) => source == null ? (uint)0 : BitConverter.ToUInt32(source, 0)); // long -> byte[] Converters.AddIntrinsic((long source) => BitConverter.GetBytes(source)); // byte[] -> long Converters.AddIntrinsic((byte[] source) => source == null ? (long)0 : BitConverter.ToInt64(source, 0)); // ulong -> byte[] Converters.AddIntrinsic((ulong source) => BitConverter.GetBytes(source)); // byte[] -> ulong Converters.AddIntrinsic((byte[] source) => source == null ? (ulong)0 : BitConverter.ToUInt64(source, 0)); #endregion #region Spartial Converters.AddIntrinsic((DbGeography source) => source); Converters.AddIntrinsic((DbGeography source) => source == null ? null : source.AsText()); Converters.AddIntrinsic((DbGeography source) => source == null ? null : source.AsBinary()); Converters.AddIntrinsic((string source) => string.IsNullOrWhiteSpace(source) ? null : DbGeography.FromText(source)); Converters.AddIntrinsic((DbGeography source) => source.AsBinary()); Converters.AddIntrinsic((byte[] source) => source == null ? null : DbGeography.FromBinary(source)); Converters.AddIntrinsic((DbGeometry source) => source); Converters.AddIntrinsic((DbGeometry source) => source.AsText()); Converters.AddIntrinsic((string source) => string.IsNullOrWhiteSpace(source) ? null : DbGeometry.FromText(source)); Converters.AddIntrinsic((DbGeometry source) => source.AsBinary()); Converters.AddIntrinsic((byte[] source) => source == null ? null : DbGeometry.FromBinary(source)); #endregion #region Misc Converters // DateTime -> DateTimeOffset Converters.AddIntrinsic((DateTime source) => new DateTimeOffset(source)); // Guid -> byte[] Converters.AddIntrinsic((Guid source) => source.ToByteArray()); // byte[] -> Guid Converters.AddIntrinsic((byte[] source) => source == null ? Guid.Empty : new Guid(source)); // byte[] -> IPAddress Converters.AddIntrinsic((byte[] source) => source != null ? new IPAddress(source) : null); // IPAddress -> byte[] Converters.AddIntrinsic((IPAddress source) => source == null ? (byte[])null : source.GetAddressBytes()); // Type -> string Converters.AddIntrinsic((Type source) => source == null ? null : source.AssemblyQualifiedName); // TimeZoneInfo -> string Converters.AddIntrinsic((TimeZoneInfo source) => source == null ? null : source.ToSerializedString()); // string -> Uri Converters.AddIntrinsic((string source) => string.IsNullOrWhiteSpace(source) ? null : new Uri(source.Trim())); // string -> Type Converters.AddIntrinsic( (string source) => string.IsNullOrWhiteSpace(source) ? null : HostingEnvironment.IsHosted ? BuildManager.GetType(source, true) : Type.GetType(source.Trim(), true)); // string -> TimeZoneInfo Converters.AddIntrinsic( (string source) => string.IsNullOrWhiteSpace(source) ? null : TimeZoneInfo.FromSerializedString(source.Trim())); #endregion Conventions.Add <MatchNameConvention>(); }
public static DbGeometry ToDbGeometry(this SqlGeometry sqlGeometry) { return(DbGeometry.FromBinary(sqlGeometry.STAsBinary().Buffer)); }
public static DbGeometry ToDbGeometryWithCoordinateSystem(this SqlGeometry sqlGeometry) { return(DbGeometry.FromBinary(sqlGeometry.STAsBinary().Buffer, sqlGeometry.STSrid.Value)); }
public static DbGeometry ToDbGeometry(this IGeometryObject geometryObject) { return(DbGeometry.FromBinary(WkbEncode.Encode(geometryObject))); }
public static DbGeometry ToDbGeometry(this SqlGeometry sqlGeometry, int coordinateSystemIDToUse) { return(DbGeometry.FromBinary(sqlGeometry.STAsBinary().Buffer, coordinateSystemIDToUse)); }