public static System.Data.Entity.Spatial.DbGeometry Buffer(System.Data.Entity.Spatial.DbGeometry location,
                                                                   double distance)
        {
            var sqlGeometry = SqlGeometry.STGeomFromWKB(new SqlBytes(location.AsBinary()), 0).STBuffer(distance);

            return(System.Data.Entity.Spatial.DbGeometry.FromBinary(sqlGeometry.STAsBinary().Buffer));
        }
示例#2
0
        public static System.Data.Entity.Spatial.DbGeometry Reverse(
            this System.Data.Entity.Spatial.DbGeometry linestring)
        {
            var fromWkb = SqlGeometry.STGeomFromWKB(new SqlBytes(linestring.AsBinary()), 0);

            // Create a new Geometry Builder
            var gb = new SqlGeometryBuilder();

            // Set the Spatial Reference ID equal to the supplied linestring
            gb.SetSrid((int)(fromWkb.STSrid));
            // Start the linestring
            gb.BeginGeometry(OpenGisGeometryType.LineString);
            // Add the first point using BeginFigure()
            gb.BeginFigure((double)fromWkb.STEndPoint().STX, (double)fromWkb.STEndPoint().STY);
            // Loop through remaining points in reverse order
            for (var x = (int)fromWkb.STNumPoints() - 1; x > 0; --x)
            {
                gb.AddLine((double)fromWkb.STPointN(x).STX, (double)fromWkb.STPointN(x).STY);
            }
            // End the figure
            gb.EndFigure();
            // End the geometry
            gb.EndGeometry();
            // Return that as a SqlGeometry instance
            return(System.Data.Entity.Spatial.DbGeometry.FromBinary(gb.ConstructedGeometry.STAsBinary().Buffer));
        }
示例#3
0
        public static string ToGeoJson(System.Data.Entity.Spatial.DbGeometry location)
        {
            var wktReader     = new WKTReader();
            var geometry      = wktReader.Read(location.WellKnownValue.WellKnownText);
            var geoJsonWriter = new GeoJsonWriter();

            return(geoJsonWriter.Write(geometry));
        }
示例#4
0
        public static string ToGeoJson(System.Data.Entity.Spatial.DbGeometry location, ProjectionInfo pStart,
                                       ProjectionInfo pEnd)
        {
            var wktReader = new WKTReader();
            var geometry  = wktReader.Read(location.WellKnownValue.WellKnownText);

            geometry = Project(geometry, pStart, pEnd);
            var geoJsonWriter = new GeoJsonWriter();

            return(geoJsonWriter.Write(geometry));
        }
示例#5
0
        public static System.Data.Entity.Spatial.DbGeometry MakeValid(
            this System.Data.Entity.Spatial.DbGeometry geometry)
        {
            var coordinateSystemId = 0;

            return
                (System.Data.Entity.Spatial.DbGeometry.FromText(
                     SqlGeometry.STGeomFromText(new SqlChars(geometry.AsText()), coordinateSystemId)
                     .MakeValid()
                     .STAsText()
                     .ToSqlString()
                     .ToString(), coordinateSystemId));
        }
        public static System.Data.Entity.Spatial.DbGeometry Project(System.Data.Entity.Spatial.DbGeometry source,
                                                                    ProjectionInfo pStart, ProjectionInfo pEnd)
        {
            var wkt        = source.WellKnownValue.WellKnownText;
            var wktReader  = new WKTReader();
            var geometry   = wktReader.Read(wkt);
            var featureSet = new FeatureSet();

            featureSet.Features.Add(geometry.ToDotSpatial());
            featureSet.Projection = pStart;
            featureSet.Reproject(pEnd);
            var projected =
                (featureSet.Features.First().BasicGeometry as IGeometry).ToGeoAPI();
            var wktWriter    = new WKTWriter();
            var projectedWkt = wktWriter.Write(projected);

            return(System.Data.Entity.Spatial.DbGeometry.FromText(projectedWkt));
        }
        public virtual int spAgregarSucursal_1(Nullable <System.TimeSpan> horaEntrada, Nullable <System.TimeSpan> horaSalida, System.Data.Entity.Spatial.DbGeometry ubicacion, string pais)
        {
            var horaEntradaParameter = horaEntrada.HasValue ?
                                       new ObjectParameter("horaEntrada", horaEntrada) :
                                       new ObjectParameter("horaEntrada", typeof(System.TimeSpan));

            var horaSalidaParameter = horaSalida.HasValue ?
                                      new ObjectParameter("horaSalida", horaSalida) :
                                      new ObjectParameter("horaSalida", typeof(System.TimeSpan));

            var ubicacionParameter = ubicacion != null ?
                                     new ObjectParameter("ubicacion", ubicacion) :
                                     new ObjectParameter("ubicacion", typeof(System.Data.Entity.Spatial.DbGeometry));

            var paisParameter = pais != null ?
                                new ObjectParameter("pais", pais) :
                                new ObjectParameter("pais", typeof(string));

            return(((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("spAgregarSucursal_1", horaEntradaParameter, horaSalidaParameter, ubicacionParameter, paisParameter));
        }
 public static System.Data.Entity.Spatial.DbGeometry Intersection(System.Data.Entity.Spatial.DbGeometry source,
                                                                  System.Data.Entity.Spatial.DbGeometry target)
 {
     return(source.Intersection(target));
 }
示例#9
0
 public IQueryable <T> GetRegion(System.Data.Entity.Spatial.DbGeometry bbox)
 {
     throw new NotImplementedException();
 }
示例#10
0
 public SHAPE_ViewModel(System.Data.Entity.Spatial.DbGeometry Shape)
 {
     SHAPE = Shape.ToString();
 }
示例#11
0
 public static SqlGeometry ToSqlGeometry(this System.Data.Entity.Spatial.DbGeometry dbGeometry)
 {
     return(SqlGeometry.STGeomFromWKB(new SqlBytes(dbGeometry.AsBinary()), 0));
 }
示例#12
0
 /// <summary>
 ///     This will convert geometry and project it from sourceEpsg to EPSG 4326
 /// </summary>
 /// <param name="geometry"></param>
 /// <param name="pStart"></param>
 /// <returns></returns>
 public static string ToGeoJson(this System.Data.Entity.Spatial.DbGeometry geometry, ProjectionInfo pStart)
 {
     geometry = geometry.MakeValid();
     return(GeoJsonHelper.ToGeoJson(geometry, pStart,
                                    Definitions.WorldProjection));
 }
示例#13
0
 public static string ToGeoJson(this System.Data.Entity.Spatial.DbGeometry geometry)
 {
     return(GeoJsonHelper.ToGeoJson(geometry));
 }