private static Models.GeoJson.Polygon GeoJsonPolygonFromGeometry(SqlGeometry Geometry, int numDigitsMantissa) { Debug.Assert(Geometry.STGeometryType().ToString() == OpenGisGeometryType.Polygon.ToString()); var geoType = (string)Geometry.STGeometryType(); // return a MultiPolygon containing the coordinates of the polygons var mpoly = new Models.GeoJson.Polygon() { coordinates = PolygonCoordinatesFromGeometry(Geometry, numDigitsMantissa) }; return(mpoly); }
/// <summary> /// Build an SqlGeography Polygon from a GeoJson Polygon. /// </summary> /// <param name="poly">GeoJson Polygon</param> /// <returns>SqlGeography Polygon</returns> public static SqlGeography GeographyFromGeoJsonPolygon(Models.GeoJson.Polygon poly, int SRID) { var geob = new SqlGeographyBuilder(); geob.SetSrid(SRID); geob.BeginGeography(OpenGisGeographyType.Polygon); geob.BeginFigure(poly.coordinates[0][0][0], poly.coordinates[0][0][1]); foreach (var pair in poly.coordinates[0].Skip(1)) { geob.AddLine(pair[0], pair[1]); } geob.EndFigure(); geob.EndGeography(); var geog = geob.ConstructedGeography; Debug.WriteLine(geog.AsGml().Value); return(geog); }