Esempio n. 1
0
        public ActionResult Identify(string service)
        {
            double x, y;
            var    is_x = Double.TryParse(Request.Params["x"], out x);
            var    is_y = Double.TryParse(Request.Params["y"], out y);

            if (!is_x || !is_y)
            {
                return(Json(new { error = true, message = "Please provide an x and y value in decimal degrees" }, JsonRequestBehavior.AllowGet));
            }

            var inPoint = DbGeometry.FromText("POINT(" + x + " " + y + ")", 4326);
            var env     = new Envelope(x, y, x, y);

            var t    = Global.r.Search(env);
            var res  = t.Where(p => Global.taxlots[p.Data].Intersects(inPoint));
            var test = res.Count();

            if (test <= 0)
            {
                return(Json(new { x, y, error = true, message = "Nobody there" }, JsonRequestBehavior.AllowGet));
            }

            var taxlotnum = res.FirstOrDefault().Data;

            return(Json(new { TLID = taxlotnum, geom = Global.taxlots[taxlotnum].AsText() }, "application/json", JsonRequestBehavior.AllowGet));
        }
        /// <summary> Get the Network Links crossing the operational Object for a given extent</summary>
        /// <param name="boundingBoxCoordinates">bbox coordinates</param>
        /// <param name="accessLink">accesslink coordinate array</param>
        /// <returns>List<NetworkLinkDTO></returns>
        public bool GetCrossingNetworkLink(string boundingBoxCoordinates, DbGeometry accessLink)
        {
            using (loggingHelper.RMTraceManager.StartTrace("DataService.GetCrossingNetworkLink"))
            {
                string methodName = typeof(AccessLinkDataService) + "." + nameof(GetCrossingNetworkLink);
                loggingHelper.LogMethodEntry(methodName, priority, entryEventId);

                ConfigureMapper();
                bool isNetworkLinkCrossing = default(bool);
                List <NetworkLinkDataDTO> networkLinkDTOs = new List <NetworkLinkDataDTO>();

                DbGeometry extent = DbGeometry.FromText(boundingBoxCoordinates.ToString(), BNGCOORDINATESYSTEM);

                List <NetworkLink>        crossingNetworkLinks    = DataContext.NetworkLinks.AsNoTracking().Where(nl => nl.LinkGeometry != null && nl.LinkGeometry.Intersects(extent) && nl.LinkGeometry.Crosses(accessLink)).ToList();
                List <NetworkLinkDataDTO> crossingNetworkLinkDTOs = Mapper.Map <List <NetworkLink>, List <NetworkLinkDataDTO> >(crossingNetworkLinks);
                networkLinkDTOs.AddRange(crossingNetworkLinkDTOs);

                List <NetworkLink>        overLappingNetworkLinks    = DataContext.NetworkLinks.AsNoTracking().Where(nl => nl.LinkGeometry != null && nl.LinkGeometry.Intersects(extent) && nl.LinkGeometry.Overlaps(accessLink)).ToList();
                List <NetworkLinkDataDTO> overLappingNetworkLinkDTOs = Mapper.Map <List <NetworkLink>, List <NetworkLinkDataDTO> >(overLappingNetworkLinks);
                networkLinkDTOs.AddRange(overLappingNetworkLinkDTOs);

                if (networkLinkDTOs.Count > 0)
                {
                    isNetworkLinkCrossing = false;
                }
                else
                {
                    isNetworkLinkCrossing = true;
                }

                loggingHelper.LogMethodExit(methodName, priority, exitEventId);
                return(isNetworkLinkCrossing);
            }
        }
Esempio n. 3
0
        public void UpdateModel(Models.OnlandVisualTrashAssessmentArea onlandVisualTrashAssessmentArea)
        {
            if (IsParcelPicker.GetValueOrDefault())
            {
                // since this is parcel picks, we don't need to reproject; the parcels are already in the correct system (State Plane)
                var unionListGeometries = HttpRequestStorage.DatabaseEntities.Parcels.Where(x => ParcelIDs.Contains(x.ParcelID)).Select(x => x.ParcelGeometry).ToList().UnionListGeometries();
                var onlandVisualTrashAssessmentAreaGeometry2771 = unionListGeometries.FixSrid(CoordinateSystemHelper.NAD_83_HARN_CA_ZONE_VI_SRID);
                onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaGeometry     = onlandVisualTrashAssessmentAreaGeometry2771;
                onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaGeometry4326 = CoordinateSystemHelper.ProjectWebMercatorToCaliforniaStatePlaneVI(onlandVisualTrashAssessmentAreaGeometry2771);
            }
            else
            {
                var dbGeometrys = WktAndAnnotations.Select(x =>
                                                           DbGeometry.FromText(x.Wkt, CoordinateSystemHelper.NAD_83_HARN_CA_ZONE_VI_SRID).ToSqlGeometry().MakeValid()
                                                           .ToDbGeometry());
                var newGeometry4326 = dbGeometrys.ToList().UnionListGeometries();

                // since this is coming from the browser, we have to transform to State Plane
                onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaGeometry =
                    CoordinateSystemHelper.ProjectWebMercatorToCaliforniaStatePlaneVI(newGeometry4326);

                onlandVisualTrashAssessmentArea.OnlandVisualTrashAssessmentAreaGeometry4326 =
                    newGeometry4326.FixSrid(CoordinateSystemHelper.WGS_1984_SRID);

                HttpRequestStorage.DatabaseEntities.SaveChanges();
            }
        }
Esempio n. 4
0
        private static void SaveProjectDetailedLocations(ProjectLocationDetailViewModel viewModel, Project project)
        {
            //update the editable ProjectLocations
            if (viewModel.ProjectLocationJsons != null)
            {
                foreach (var projectLocationJson in viewModel.ProjectLocationJsons.Where(x => !x.ArcGisObjectID.HasValue))
                {
                    var projectLocationGeometry =
                        DbGeometry.FromText(projectLocationJson.ProjectLocationGeometryWellKnownText,
                                            FirmaWebConfiguration.GeoSpatialReferenceID);
                    var projectLocation = new ProjectLocation(project, projectLocationJson.ProjectLocationName,
                                                              projectLocationGeometry, projectLocationJson.ProjectLocationTypeID,
                                                              projectLocationJson.ProjectLocationNotes);
                    project.ProjectLocations.Add(projectLocation);
                }
            }

            //update arcGIS ProjectLocations for the notes
            foreach (var matched in viewModel.ArcGisProjectLocationJsons.Where(x => x.ArcGisObjectID.HasValue)
                     .Join(project.ProjectLocations, plj => plj.ProjectLocationID, pl => pl.ProjectLocationID,
                           (lhs, rhs) => new { ProjectLocationJson = lhs, ProjectLocation = rhs }))
            {
                matched.ProjectLocation.ProjectLocationNotes = matched.ProjectLocationJson.ProjectLocationNotes;
            }
        }
Esempio n. 5
0
        public ActionResult Test()
        {
            var foo = DbGeometry.FromText(
                "POLYGON ((-122.66018778173442 45.601605211473235,-122.66024700952981 45.6014165334974,-122.6603231949731 45.601428354870642,-122.6602639784374 45.60161701917621,-122.66018778173442 45.601605211473235))");

            return(Json(new { foo }, JsonRequestBehavior.AllowGet));
        }
        public void FixtureSetUp()
        {
            using (var context = new UniversityContext())
            {
                var connectionString = context.Database.Connection.ConnectionString;
                LogManager.GetCurrentClassLogger().Debug(fmh => fmh("Connected with: {0}", connectionString));

                //Delete old entries
                var entries = context.Universities.AsEnumerable();
                context.Universities.RemoveRange(entries);
                context.SaveChanges();

                // Add new
                context.Universities.Add(new University
                {
                    Name       = "Graphic Design Institute",
                    DbGeometry = DbGeometry.FromText("POINT(-122.336106 47.605049)"),
                });

                context.Universities.Add(new University
                {
                    Name       = "School of Fine Art",
                    DbGeometry = DbGeometry.FromText("POINT(-122.335197 47.646711)"),
                });
                context.SaveChanges();
            }
        }
        public override void Register()
        {
            Mapper.Register <RegisterLocationCoordinateItem, LocationCoordinate>()
            .Function(dest => dest.Coordinate, source => DbGeometry.FromText(string.Format("POINT({0} {1})", source.Longitude.ToString(CultureInfo.InvariantCulture), source.Latitude.ToString(CultureInfo.InvariantCulture)), DbGeography.DefaultCoordinateSystemId));

            Mapper.Register <DeleteLocationCoordinatesCommand, LocationCoordinate>();
        }
        public void CanUseBufferFunction()
        {
            if (version < new Version(5, 6))
            {
                return;
            }

            using (DistribuitorsContext context = new DistribuitorsContext())
            {
                context.Database.Delete();
                context.Database.Create();

                context.Distributors.Add(new Distributor()
                {
                    Name  = "Graphic Design Institute",
                    point = DbGeometry.FromText("POINT(-122.336106 47.605049)"),
                });
                context.SaveChanges();

                var result = (from u in context.Distributors
                              select u.point.Buffer(1212).AsText()).First();

                Assert.AreEqual("POLYGON((-122.336106 -1164.394951,-181.80612728483064 -1162.935043920669,-241.13288007942745 -1158.5588397267024,-300.17344103989853 -1151.2768810773146,-358.78557628354747 -1141.1067108487152,-416.8280840427558 -1128.0728298717872,-474.16113483240827 -1112.2066379074372,-530.6466083113708 -1093.5463580018213,-586.1484260264888 -1072.1369444036795,-640.5328792375019 -1048.0299742656134,-693.668951033109 -1021.2835233902063,-745.4286319621847 -991.9620263203299,-795.6872284197578 -960.1361211106848,-844.3236630448292 -925.8824791545416,-891.2207664063383 -889.2836204756372,-936.2655592745862 -850.4277149302104,-979.3495247980954 -809.4083697980955,-1020.3688699302104 -766.3244042745862,-1059.2247754756372 -721.2796114063383,-1095.8236341545417 -674.3825080448293,-1130.0772761106848 -625.7460734197579,-1161.9031813203298 -575.4874769621847,-1191.2246783902062 -523.727796033109,-1217.9711292656134 -470.5917242375019,-1242.0780994036795 -416.2072710264888,-1263.4875130018213 -360.7054533113708,-1282.1477929074372 -304.2199798324083,-1298.0139848717872 -246.8869290427558,-1311.0478658487152 -188.8444212835475,-1321.2180360773145 -130.2322860398985,-1328.4999947267024 -71.19172507942744,-1332.876198920669 -11.864972284830642,-1334.336106 47.605049,-1328.4999947267024 166.40182307942746,-1321.2180360773145 225.4423840398985,-1311.0478658487152 284.0545192835475,-1298.0139848717872 342.0970270427558,-1282.1477929074372 399.4300778324083,-1263.4875130018213 455.9155513113708,-1242.0780994036795 511.4173690264888,-1217.9711292656134 565.8018222375019,-1191.2246783902062 618.937894033109,-1161.9031813203298 670.6975749621847,-1130.0772761106848 720.9561714197579,-1095.8236341545417 769.5926060448293,-1059.2247754756372 816.4897094063383,-1020.3688699302104 861.5345022745862,-979.3495247980954 904.6184677980955,-936.2655592745862 945.6378129302104,-891.2207664063383 984.4937184756373,-844.3236630448292 1021.0925771545416,-795.6872284197578 1055.3462191106848,-745.4286319621847 1087.1721243203299,-693.668951033109 1116.4936213902063,-640.5328792375019 1143.2400722656134,-586.1484260264888 1167.3470424036796,-530.6466083113708 1188.7564560018213,-474.16113483240827 1207.4167359074372,-416.8280840427558 1223.2829278717873,-358.78557628354747 1236.3168088487153,-300.17344103989853 1246.4869790773146,-241.13288007942745 1253.7689377267025,-181.80612728483064 1258.145141920669,-122.336106 1259.605049,-62.86608471516936 1258.145141920669,-3.5393319205725504 1253.7689377267025,55.501229039898504 1246.4869790773146,114.1133642835475 1236.3168088487153,172.15587204275582 1223.2829278717873,229.4889228324083 1207.4167359074372,285.9743963113708 1188.7564560018213,341.47621402648883 1167.3470424036796,395.86066723750196 1143.2400722656134,448.99673903310907 1116.4936213902063,500.75641996218474 1087.1721243203299,551.0150164197579 1055.3462191106848,599.6514510448293 1021.0925771545416,646.5485544063383 984.4937184756373,691.5933472745862 945.6378129302104,734.6773127980955 904.6184677980955,775.6966579302104 861.5345022745862,814.5525634756373 816.4897094063383,851.1514221545416 769.5926060448293,885.4050641106849 720.9561714197579,917.2309693203299 670.6975749621847,946.5524663902063 618.937894033109,973.2989172656135 565.8018222375019,997.4058874036796 511.4173690264888,1018.8153010018214 455.9155513113708,1037.4755809074372 399.4300778324083,1053.3417728717873 342.0970270427558,1066.3756538487153 284.0545192835475,1076.5458240773146 225.4423840398985,1083.8277827267025 166.40182307942746,1088.203986920669 107.07507028483064,1089.663894 47.605049,1083.8277827267025 -71.19172507942744,1076.5458240773146 -130.2322860398985,1066.3756538487153 -188.8444212835475,1053.3417728717873 -246.8869290427558,1037.4755809074372 -304.2199798324083,1018.8153010018214 -360.7054533113708,997.4058874036796 -416.2072710264888,973.2989172656135 -470.5917242375019,946.5524663902063 -523.727796033109,917.2309693203299 -575.4874769621847,885.4050641106849 -625.7460734197579,851.1514221545416 -674.3825080448293,814.5525634756373 -721.2796114063383,775.6966579302104 -766.3244042745862,734.6773127980955 -809.4083697980955,691.5933472745862 -850.4277149302104,646.5485544063383 -889.2836204756372,599.6514510448293 -925.8824791545416,551.0150164197579 -960.1361211106848,500.75641996218474 -991.9620263203299,448.99673903310907 -1021.2835233902063,395.86066723750196 -1048.0299742656134,341.47621402648883 -1072.1369444036795,285.9743963113708 -1093.5463580018213,229.4889228324083 -1112.2066379074372,172.15587204275582 -1128.0728298717872,114.1133642835475 -1141.1067108487152,55.501229039898504 -1151.2768810773146,-3.5393319205725504 -1158.5588397267024,-62.86608471516936 -1162.935043920669,-122.336106 -1164.394951))", result);

                context.Database.Delete();
            }
        }
        public void CanGetCoordinatesFromGeometry()
        {
            using (DistribuitorsContext context = new DistribuitorsContext())
            {
                context.Database.Delete();
                context.Database.Create();

                context.Distributors.Add(new Distributor()
                {
                    Name  = "Graphic Design Institute",
                    point = DbGeometry.FromText("POINT(-122.336106 47.605049)"),
                });

                context.SaveChanges();

                var point = (from u in context.Distributors
                             select u.point).First();

                Assert.AreEqual(-122.336106, point.XCoordinate);

                Assert.AreEqual(47.605049, point.YCoordinate);

                var result = (from u in context.Distributors
                              select u.point.XCoordinate).ToList();


                foreach (var item in result)
                {
                    Assert.AreEqual(-122.336106, item);
                }
                context.Database.Delete();
            }
        }
        public void CanUseGeomatryAsTextFunction()
        {
            using (DistribuitorsContext context = new DistribuitorsContext())
            {
                context.Database.Delete();
                context.Database.Create();

                context.Distributors.Add(new Distributor()
                {
                    Name  = "Graphic Design Institute",
                    point = DbGeometry.FromText("POINT(-122.336106 47.605049)"),
                });
                context.SaveChanges();

                var result = (from u in context.Distributors
                              select u.point.AsText()).ToList();

                foreach (var item in result)
                {
                    Assert.AreEqual("POINT(-122.336106 47.605049)", item);
                }

                context.Database.Delete();
            }
        }
        public void CanUseIsSimpleFunction()
        {
            if (version < new Version(5, 6))
            {
                return;
            }

            using (DistribuitorsContext context = new DistribuitorsContext())
            {
                context.Database.Delete();
                context.Database.Create();

                context.Distributors.Add(new Distributor()
                {
                    Name  = "Graphic Design Institute",
                    point = DbGeometry.FromText("POINT(-122.336106 47.605049)", 101),
                });

                context.SaveChanges();
                var result = (from u in context.Distributors
                              select u.point.IsSimple).ToList();

                foreach (var item in result)
                {
                    Assert.AreEqual(true, item);
                }

                context.Database.Delete();
            }
        }
        public void CanUseDimensionFunction()
        {
            using (DistribuitorsContext context = new DistribuitorsContext())
            {
                context.Database.Delete();
                context.Database.Create();

                context.Distributors.Add(new Distributor()
                {
                    Name  = "Graphic Design Institute",
                    point = DbGeometry.FromText("POINT(-122.336106 47.605049)"),
                });

                context.Distributors.Add(new Distributor()
                {
                    Name  = "School of Fine Art",
                    point = DbGeometry.FromText("POINT(-122.335197 47.646711)"),
                });

                context.SaveChanges();

                var dimensions = (from u in context.Distributors
                                  select u.point.Dimension).ToList();

                foreach (var item in dimensions)
                {
                    Assert.AreEqual(0, item);
                }

                context.Database.Delete();
            }
        }
        public void CanThrowExceptionForUnkownFunction()
        {
            using (DistribuitorsContext context = new DistribuitorsContext())
            {
                context.Database.Delete();
                context.Database.Create();

                context.Distributors.Add(new Distributor()
                {
                    Name  = "Graphic Design Institute",
                    point = DbGeometry.FromText("POINT(-122.336106 47.605049)"),
                });

                context.Distributors.Add(new Distributor()
                {
                    Name  = "School of Fine Art",
                    point = DbGeometry.FromText("POINT(-122.335197 47.646711)"),
                });

                context.SaveChanges();

                var myLocation = DbGeometry.FromText("POINT(-122.296623 47.640405)");

                var university = (from u in context.Distributors
                                  orderby u.point.Distance(myLocation)
                                  select u).FirstOrDefault();
            }
        }
Esempio n. 14
0
    static void Main(string[] args)
    {
        DbGeometry test   = DbGeometry.FromText("POLYGON((1 1, 1 2, 3 3, 1 1))");
        var        foo    = test.AsText();
        var        points = new List <Point>();

        Console.WriteLine(foo);
        if (foo.StartsWith("POLYGON ((") &&
            foo.EndsWith("))"))
        {
            foo = foo.Substring(10, foo.Length - 12);
            var rawPoints = foo.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
            foreach (var rawPoint in rawPoints)
            {
                var splitPoint = rawPoint.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                points.Add(new Point()
                {
                    X = decimal.Parse(splitPoint[1]), Y = decimal.Parse(splitPoint[0])
                });
            }
        }
        foreach (var point in points)
        {
            Console.WriteLine(point.ToString());
        }
        Console.ReadKey();
    }
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        JObject location  = JObject.Load(reader);
        JToken  token     = location["Geometry"]["WellKnownText"];
        string  value     = token.ToString();
        JToken  sridToken = location["Geometry"]["CoordinateSystemId"];
        int     srid;

        if (sridToken == null || int.TryParse(sridToken.ToString(), out srid) == false || value.Contains("SRID"))
        {
            //Set default coordinate system here.
            srid = 0;
        }
        DbGeometry converted;

        if (srid > 0)
        {
            converted = DbGeometry.FromText(value, srid);
        }
        else
        {
            converted = DbGeometry.FromText(value);
        }
        return(converted);
    }
Esempio n. 16
0
        public void Simple_entities_can_be_binary_serialized_when_running_under_full_trust()
        {
            using (var context = new ProxiesContext())
            {
                var proxy = context.MeSimpleEntities.Create();
                Assert.False(proxy is IEntityWithRelationships);

                proxy.Id   = 77;
                proxy.Name = "Entity";
                proxy.MeComplexTypeS.Number = 88;
#if NET452
                proxy.Geometry = DbGeometry.FromText("POINT (30 10)");
#endif
                proxy.Enum = MeSimpleEntitiesS.EnumType.ZERO;

                var deserialized = DeserializeFromBinaryFormatter(proxy);

                Assert.Same(proxy.GetType(), deserialized.GetType());
                Assert.Equal(77, deserialized.Id);
                Assert.Equal("Entity", deserialized.Name);
                Assert.Equal(88, deserialized.MeComplexTypeS.Number);
#if NET452
                Assert.Equal(DbGeometry.FromText("POINT (30 10)").AsText(), deserialized.Geometry.AsText());
#endif
                Assert.Equal(MeSimpleEntitiesS.EnumType.ZERO, deserialized.Enum);
            }
        }
Esempio n. 17
0
        public void UpdateModel()
        {
            var defaultBoundingBox = DbGeometry.FromText(String.Format("POLYGON(({0} {1}, {0} {2}, {3} {2}, {3} {1}, {0} {1}))", West, North, South, East), LtInfoGeometryConfiguration.DefaultCoordinateSystemId);
            var tenantAttribute    = HttpRequestStorage.DatabaseEntities.AllTenantAttributes.Single(x => x.TenantID == TenantID);

            tenantAttribute.DefaultBoundingBox = defaultBoundingBox;
        }
Esempio n. 18
0
        private DbGeometry GmapRoutToDbGeomerty(List <PointLatLng> route)
        {
            var stringBuilder = new StringBuilder();

            stringBuilder.Append(@"LINESTRING (");
            int count = 0;

            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
            foreach (var point in route)
            {
                if (count == 0)
                {
                    stringBuilder.Append(point.Lat + " " + point.Lng);
                }
                else
                {
                    stringBuilder.Append("," + point.Lat + " " + point.Lng);
                }

                count++;
            }
            stringBuilder.Append(@")");

            return(DbGeometry.FromText(stringBuilder.ToString()));
        }
            // <summary>
            // Initializes a map from primitive spatial types in the C-Space to default values
            // used within the placeholder.
            // </summary>
            private static Dictionary <PrimitiveTypeKind, object> InitializeSpatialTypeDefaultMap()
            {
                var typeDefaultMap = new Dictionary <PrimitiveTypeKind, object>(
                    EqualityComparer <PrimitiveTypeKind> .Default);

                typeDefaultMap[PrimitiveTypeKind.Geometry]                = DbGeometry.FromText("POINT EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeometryPoint]           = DbGeometry.FromText("POINT EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeometryLineString]      = DbGeometry.FromText("LINESTRING EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeometryPolygon]         = DbGeometry.FromText("POLYGON EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeometryMultiPoint]      = DbGeometry.FromText("MULTIPOINT EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeometryMultiLineString] = DbGeometry.FromText("MULTILINESTRING EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeometryMultiPolygon]    = DbGeometry.FromText("MULTIPOLYGON EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeometryCollection]      = DbGeometry.FromText("GEOMETRYCOLLECTION EMPTY");

                typeDefaultMap[PrimitiveTypeKind.Geography]                = DbGeography.FromText("POINT EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeographyPoint]           = DbGeography.FromText("POINT EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeographyLineString]      = DbGeography.FromText("LINESTRING EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeographyPolygon]         = DbGeography.FromText("POLYGON EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeographyMultiPoint]      = DbGeography.FromText("MULTIPOINT EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeographyMultiLineString] = DbGeography.FromText("MULTILINESTRING EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeographyMultiPolygon]    = DbGeography.FromText("MULTIPOLYGON EMPTY");
                typeDefaultMap[PrimitiveTypeKind.GeographyCollection]      = DbGeography.FromText("GEOMETRYCOLLECTION EMPTY");

#if DEBUG
                foreach (var o in typeDefaultMap.Values)
                {
                    Debug.Assert(null != o, "DbConstantExpression instances do not support null values");
                }
#endif

                return(typeDefaultMap);
            }
Esempio n. 20
0
 public TmpCadx(string handle, string geoStr, string entityType, string fileName)
 {
     Handle     = handle;
     EntityType = entityType;
     Geometry   = DbGeometry.FromText(geoStr);
     FileName   = fileName;
 }
Esempio n. 21
0
        public void loadMoveFiles(string inFileName)
        {
            List <base_move> myMoveSites = new List <base_move>();
            IFeatureSet      fs          = FeatureSet.Open(inFileName);
            DataTable        dt          = fs.DataTable;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                base_move move = new base_move();
                IFeature  f    = fs.Features[i];
                move.geom       = DbGeometry.FromText(f.BasicGeometry.ToString());
                move.CROSSING   = GetNullableDouble(dt.Rows[i], "CROSSING");
                move.ENERGYUSED = GetNullableDouble(dt.Rows[i], "ENERGYUSED");
                move.MSL        = GetLong(dt.Rows[i], "MSL");
                move.MVL        = GetNullableDouble(dt.Rows[i], "MVL");
                move.PR_X       = GetNullableDouble(dt.Rows[i], "PR_X");
                myMoveSites.Add(move);
            }
            using (me = new MapEntites())
            {
                me.Database.ExecuteSqlCommand("Truncate Table [base_move]");
                me.base_move.AddRange(myMoveSites);
                me.SaveChanges();
            }
        }
Esempio n. 22
0
        public void Geometry_should_add_column_to_table_model()
        {
            var column = new ColumnBuilder().Geometry();

            Assert.Equal(PrimitiveTypeKind.Geometry, column.Type);
            Assert.True(DbGeometry.FromText("POINT(0 0)").SpatialEquals((DbGeometry)column.ClrDefaultValue));
        }
Esempio n. 23
0
        public void Simple_entities_can_be_data_contract_deserialized_with_resolver_when_running_under_full_trust()
        {
            using (var context = new ProxiesContext())
            {
                var proxy = context.MeSimpleEntities.Create();
                Assert.False(proxy is IEntityWithRelationships);

                proxy.Id   = 77;
                proxy.Name = "Entity";
                proxy.MeComplexTypeS.Number = 88;
#if NET452
                proxy.Geometry = DbGeometry.FromText("POINT (30 10)");
#endif
                proxy.Enum = MeSimpleEntitiesS.EnumType.ZERO;

                var serializer = new DataContractSerializer(
                    typeof(MeSimpleEntitiesS), new DataContractSerializerSettings {
                    PreserveObjectReferences = true, DataContractResolver = new ProxyDataContractResolver()
                });
                var deserialized = DeserializeWithDatacontractSerializer(proxy, serializer);

                // Resolver returns non-proxy type
                Assert.IsType <MeSimpleEntitiesS>(deserialized);
                Assert.Equal(77, deserialized.Id);
                Assert.Equal("Entity", deserialized.Name);
                Assert.Equal(88, deserialized.MeComplexTypeS.Number);
#if NET452
                Assert.Equal(DbGeometry.FromText("POINT (30 10)").AsText(), deserialized.Geometry.AsText());
#endif
                Assert.Equal(MeSimpleEntitiesS.EnumType.ZERO, deserialized.Enum);
            }
        }
Esempio n. 24
0
        public static DbGeometry FixSrid(this DbGeometry geometry, int srid)
        {
            if (geometry == null)
            {
                return(geometry);
            }
            var wellKnownText = geometry.ToString();

            // geometry.ToString() includes the SRID at the beginning of the string but is otherwise legal WKT
            if (wellKnownText.IndexOf("MULTIPOLYGON", StringComparison.InvariantCulture) > -1)
            {
                wellKnownText = wellKnownText.Substring(wellKnownText.IndexOf("MULTIPOLYGON", StringComparison.InvariantCulture));
            }
            else if (wellKnownText.IndexOf("POLYGON", StringComparison.InvariantCulture) > -1)
            {
                wellKnownText = wellKnownText.Substring(wellKnownText.IndexOf("POLYGON", StringComparison.InvariantCulture));
            }
            else if (wellKnownText.IndexOf("LINESTRING", StringComparison.InvariantCulture) > -1)
            {
                wellKnownText = wellKnownText.Substring(wellKnownText.IndexOf("LINESTRING", StringComparison.InvariantCulture));
            }

            geometry = DbGeometry.FromText(wellKnownText, srid);
            return(geometry);
        }
        public void Update_Fantasy_entities_using_stored_procedures()
        {
            using (var context = new FantasyStoredProceduresContext())
            {
                var city     = context.Cities.OrderBy(c => c.Id).First();
                var creature = context.Creatures.OrderBy(c => c.Id).First();
                var province = context.Provinces.OrderBy(h => h.Id).First();
                var npc      = context.Npcs.OrderBy(n => n.Id).First();
                var spell    = context.Spells.OrderBy(s => s.Id).First();

                city.Name = "Changed City";
                creature.Details.Attributes.Mana = 123;
                province.Shape    = DbGeometry.FromText("POINT(23 45)", DbGeometry.DefaultCoordinateSystemId);
                npc.Name          = "Changed NPC Name";
                spell.MagickaCost = 166;

                context.SaveChanges();
            }

            using (var context = new FantasyStoredProceduresContext())
            {
                var city     = context.Cities.OrderBy(c => c.Id).First();
                var creature = context.Creatures.OrderBy(c => c.Id).First();
                var province = context.Provinces.OrderBy(h => h.Id).First();
                var npc      = context.Npcs.OrderBy(n => n.Id).First();
                var spell    = context.Spells.OrderBy(s => s.Id).First();

                Assert.Equal("Changed City", city.Name);
                Assert.Equal(123, creature.Details.Attributes.Mana);
                Assert.Equal(23, province.Shape.XCoordinate);
                Assert.Equal(45, province.Shape.YCoordinate);
                Assert.Equal("Changed NPC Name", npc.Name);
                Assert.Equal(166, spell.MagickaCost);
            }
        }
        private void UnarySpatialFunctionsHelper(Func <DbExpression, DbFunctionExpression> operation, string functionName)
        {
            var argument = DbExpressionBuilder.Constant(DbGeometry.FromText("POINT(1 1)"));
            var function = operation(argument);

            Assert.Equal(functionName, function.Function.FunctionName);
            Assert.Same(argument, function.Arguments[0]);
        }
 public void UpdateModel(Models.Project project)
 {
     project.DefaultBoundingBox = North.HasValue && South.HasValue && East.HasValue && West.HasValue
         ? DbGeometry.FromText(
         string.Format("POLYGON(({0} {1}, {0} {2}, {3} {2}, {3} {1}, {0} {1}))", West, North, South, East),
         FirmaWebConfiguration.GeoSpatialReferenceID)
         : null;
 }
        public void IsGeometryColumn_returns_true_for_geometry_column()
        {
            var dbGeometry           = DbGeometry.FromText("POINT (90 50)");
            var mockSqlDataReader    = CreateSqlDataReaderWrapper(dbGeometry.ProviderValue, "sys.geometry");
            var sqlSpatialDataReader = new SqlSpatialDataReader(SqlSpatialServices.Instance, mockSqlDataReader);

            Assert.True(sqlSpatialDataReader.IsGeometryColumn(0));
        }
 public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
 {
     if (WktAndAnnotations.Select(x => DbGeometry.FromText(x.Wkt, CoordinateSystemHelper.NAD_83_HARN_CA_ZONE_VI_SRID))
         .Any(x => !x.IsValid))
     {
         yield return(new ValidationResult("The Assessment Area contained invalid (self-intersecting) shapes. Please try again."));
     }
 }
Esempio n. 30
0
 public void UpdateModel(ProjectFirmaModels.Models.Project project)
 {
     project.DefaultBoundingBox = North.HasValue && South.HasValue && East.HasValue && West.HasValue
         ? DbGeometry.FromText(
         string.Format("POLYGON(({0} {1}, {0} {2}, {3} {2}, {3} {1}, {0} {1}))", West, North, South, East),
         LtInfoGeometryConfiguration.DefaultCoordinateSystemId)
         : null;
 }