Ejemplo n.º 1
0
        public StrassenabschnittGISModel GetCurrentStrassenabschnittAt(double x, double y, double tolerance)
        {
            IGeometry clickedPoint = GISService.CreateGeometryFactory().CreatePoint(new Coordinate((double)x, (double)y, 0));
            var       buffer       = clickedPoint.Buffer(tolerance);

            //only strassenabschnitte from current erfassungsperiode
            ErfassungsPeriod             currentErfassungsperiod = historizationService.GetCurrentErfassungsperiod();
            IList <StrassenabschnittGIS> strabsliste             = GetCurrentBySpatialFilter(buffer);

            StrassenabschnittGIS strabs = gisService.GetNearestGeometry(clickedPoint, strabsliste);

            return(new StrassenabschnittGISModel {
                FeatureGeoJSONString = geoJSONParseService.GenerateGeoJsonStringFromEntity(strabs)
            });
        }
Ejemplo n.º 2
0
        public string GetNearestAchsenSegment(double x, double y, double tolerance)
        {
            IGeometry clickedPoint = EMSG.Business.Services.GIS.GISService.CreateGeometryFactory().CreatePoint(new Coordinate((double)x, (double)y, 0));
            var       buffer       = clickedPoint.Buffer(tolerance);

            IList <AchsenSegment> achsegmentList        = GetCurrentEntityListBySpatialFilter(buffer);
            AchsenSegment         selectedAchsensegment = gisService.GetNearestGeometry(clickedPoint, achsegmentList);

            TextWriter       tw    = new StringWriter();
            IAttributesTable table = new AttributesTable();

            //GEOJSON PROPERTIES: STRASSENABSCHNITTE

            List <FeatureWithID> features = new List <FeatureWithID>();

            if (selectedAchsensegment == null)
            {
                return(GeoJSONStrings.GeoJSONFailure("No Achsen found"));
            }
            foreach (AchsenReferenz achsenreferenz in selectedAchsensegment.AchsenReferenzen.Where(ar => ar.Erfassungsperiod == historizationService.GetCurrentErfassungsperiod()))
            {
                if (achsenreferenz.ReferenzGruppe.StrassenabschnittGIS != null)
                {
                    FeatureWithID    feat = new FeatureWithID();
                    IAttributesTable att  = new AttributesTable();

                    feat.Id         = achsenreferenz.ReferenzGruppe.StrassenabschnittGIS.Id.ToString();
                    feat.Geometry   = achsenreferenz.ReferenzGruppe.StrassenabschnittGIS.Shape;
                    feat.Attributes = att;

                    if (!features.Contains(feat))
                    {
                        features.Add(feat);
                    }
                }
            }

            table.AddAttribute("Strassenabschnitte", features);

            table.AddAttribute("AchsenId", selectedAchsensegment.Achse.Id);
            table.AddAttribute("AchsenName", selectedAchsensegment.Achse.Name);
            table.AddAttribute("IsInverted", selectedAchsensegment.IsInverted);

            FeatureWithID feature = new FeatureWithID();

            feature.Id         = selectedAchsensegment.Id.ToString();
            feature.Geometry   = selectedAchsensegment.Shape;
            feature.Attributes = table;
            TextWriter sw = new StringWriter();

            GeoJSONWriter.WriteFeatureWithID(feature, sw);

            return(sw.ToString());
        }
Ejemplo n.º 3
0
        public ZustandsabschnittGISModel GetZustandsabschnittAt(double x, double y, double tolerance)
        {
            IGeometry clickedPoint = GISService.CreateGeometryFactory().CreatePoint(new Coordinate(x, y, 0));
            var       buffer       = clickedPoint.Buffer(tolerance);

            //ZustandsabschnittGIS zustandsabschnitt = gisService.GetNearestGeometry(buffer, GetEntityListBySpatialFilter(buffer).Where(e=> e.ErfassungsPeriod==CurrentErfassungsPeriod).ToList());
            ZustandsabschnittGIS zustandsabschnitt = gisService.GetNearestGeometry(clickedPoint, GetCurrentZustandsAbschnitteBySpatialFilter(buffer, CurrentErfassungsPeriod));
            var zustandsabschnittmodel             = new ZustandsabschnittGISModel();//base.GetById(zustandsabschnitt.Id);

            zustandsabschnittmodel.FeatureGeoJSONString = geoJSONParseService.GenerateGeoJsonStringFromEntity(zustandsabschnitt);
            return(zustandsabschnittmodel);
        }
Ejemplo n.º 4
0
        public RealisierteMassnahmeGISModel GetRealisierteMassnahmeAt(double x, double y, double tolerance)
        {
            IGeometry clickedPoint = GISService.CreateGeometryFactory().CreatePoint(new Coordinate(x, y, 0));
            var       buffer       = clickedPoint.Buffer(tolerance);

            IList <RealisierteMassnahmeGIS> realisierteMassnahmenliste = GetCurrentBySpatialFilter(buffer).ToList();

            RealisierteMassnahmeGIS realisierteMassnahme = gisService.GetNearestGeometry(buffer, realisierteMassnahmenliste);

            return(new RealisierteMassnahmeGISModel {
                FeatureGeoJSONString = geoJSONParseService.GenerateGeoJsonStringFromEntity(realisierteMassnahme)
            });
        }
        public MassnahmenvorschlagTeilsystemeGISModel GetKoordinierteMassnahmeAt(double x, double y, double tolerance)
        {
            IGeometry clickedPoint = GISService.CreateGeometryFactory().CreatePoint(new Coordinate((double)x, (double)y, 0));
            var       buffer       = clickedPoint.Buffer(tolerance);

            IList <MassnahmenvorschlagTeilsystemeGIS> koordinierteMassnahmenliste = GetBySpatialFilter(buffer).Where(mts => mts.Status != EMSG.Common.Enums.StatusTyp.Abgeschlossen).ToList();

            MassnahmenvorschlagTeilsystemeGIS koordinierteMassnahme = gisService.GetNearestGeometry(buffer, koordinierteMassnahmenliste);

            return(new MassnahmenvorschlagTeilsystemeGISModel {
                FeatureGeoJSONString = geoJSONParseService.GenerateGeoJsonStringFromEntity(koordinierteMassnahme)
            });
        }
        public InspektionsRouteGISModel GetInspektionsRouteGISAt(double x, double y, double tolerance)
        {
            IGeometry clickedPoint = GISService.CreateGeometryFactory().CreatePoint(new Coordinate((double)x, (double)y, 0));
            IGeometry buffer       = clickedPoint.Buffer(tolerance);

            IList <InspektionsRouteGIS> inspektionsRouteGISListe = GetCurrentEntityListBySpatialFilter(buffer);

            InspektionsRouteGIS inspektionsRoute = gisService.GetNearestGeometry(buffer, inspektionsRouteGISListe);

            if (inspektionsRoute != null)
            {
                return(new InspektionsRouteGISModel {
                    FeatureGeoJSONString = geoJSONParseService.GenerateGeoJsonStringFromEntity(inspektionsRoute)
                });
            }
            else
            {
                return(new InspektionsRouteGISModel {
                    FeatureGeoJSONString = "{ \"type\": \"FeatureCollection\", \"features\": []}"
                });
            }
        }