示例#1
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());
        }
 public ActionResult GetZustandsabschnittByID(string id)
 {
     try
     {
         ZustandsabschnittGISModel zustandsabschnitt = zustandsabschnittGISService.GetById(Guid.Parse(id));
         return(Content(zustandsabschnitt.FeatureGeoJSONString, "application/json"));
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
 public ActionResult GetZustandsabschnittAt(double x, double y, double tolerance)
 {
     try
     {
         ZustandsabschnittGISModel zustandsabschnitt = zustandsabschnittGISService.GetZustandsabschnittAt(x, y, tolerance);
         return(Content(zustandsabschnitt.FeatureGeoJSONString, "application/json"));
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
 public ActionResult GetKoordinierteMassnahmeByID(string id)
 {
     try
     {
         KoordinierteMassnahmeGISModel koordinierteMassnahme = koordinierteMassnahmeGISModelService.GetById(Guid.Parse(id));
         return(Content(koordinierteMassnahme.FeatureGeoJSONString, "application/json"));
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
 public ActionResult GetAllKoordinierteMassnahmenAt(double x, double y, double tolerance)
 {
     try
     {
         IEnumerable <KoordinierteMassnahmeGIS> koordinierteMassnahmen = koordinierteMassnahmeGISModelService.GetAllKoordinierteMassnahmenAt(x, y, tolerance);
         return(Content(geoJSONParseService.GenereateGeoJsonStringfromEntities(koordinierteMassnahmen), "application/json"));
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
 public ActionResult GetKoordinierteMassnahmeAt(double x, double y, double tolerance)
 {
     try
     {
         KoordinierteMassnahmeGISModel koordinierteMassnahme = koordinierteMassnahmeGISModelService.GetKoordinierteMassnahmeAt(x, y, tolerance);
         return(Content(koordinierteMassnahme.FeatureGeoJSONString, "application/json"));
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
 public ActionResult GetInspektionsRouteGISAt(double x, double y, double tolerance)
 {
     try
     {
         InspektionsRouteGISModel inspektionsRoute = inspektionsRouteGISService.GetInspektionsRouteGISAt(x, y, tolerance);
         return(Content(inspektionsRoute.FeatureGeoJSONString, "application/json"));
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
 public ActionResult GetStrassenabschnitteFromInspektionsroute(Guid id)
 {
     if (id != Guid.Empty)
     {
         string geoJSONstring = inspektionsRouteGISService.GetStrassenabschnitteFromInspektionsroute(id);
         return(Content(geoJSONstring, "application/json"));
     }
     else
     {
         return(Content(GeoJSONStrings.GeoJSONFailure("Empty ID!"), "application/json"));
     }
 }
 public ActionResult GetMassnahmenvorschlagTeilsystemeGISByID(string id)
 {
     try
     {
         MassnahmenvorschlagTeilsystemeGISModel massnahmenvorschlagTeilsystemeGIS = massnahmenvorschlagTeilsystemeGISModelService.GetById(Guid.Parse(id));
         return(Content(massnahmenvorschlagTeilsystemeGIS.FeatureGeoJSONString, "application/json"));
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
 public ActionResult GetAllMassnahmenvorschlagTeilsystemeGISAt(double x, double y, double tolerance)
 {
     try
     {
         IList <MassnahmenvorschlagTeilsystemeGIS> massnahmenvorschlagTeilsystemeGIS = massnahmenvorschlagTeilsystemeGISModelService.GetAllKoordinierteMassnahmenAt(x, y, tolerance);
         return(Content(geoJSONParseService.GenereateGeoJsonStringfromEntities(massnahmenvorschlagTeilsystemeGIS), "application/json"));
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
 public ActionResult GetMassnahmenvorschlagTeilsystemeGISAt(double x, double y, double tolerance)
 {
     try
     {
         MassnahmenvorschlagTeilsystemeGISModel massnahmenvorschlagTeilsystemeGIS = massnahmenvorschlagTeilsystemeGISModelService.GetKoordinierteMassnahmeAt(x, y, tolerance);
         return(Content(massnahmenvorschlagTeilsystemeGIS.FeatureGeoJSONString, "application/json"));
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
示例#12
0
 public ActionResult GetAxisAt(double?x, double?y, double tolerance)
 {
     if (x == null && y == null)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure("Keine Koordinaten angegeben"), "application/json"));
     }
     else
     {
         try
         {
             return(Content(achsensegmentService.GetNearestAchsenSegment((double)x, (double)y, tolerance), "application/json"));
         }
         catch (Exception exc)
         {
             return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
         }
     }
 }
 public ActionResult GetAvailableInspektionsRouteGISAt(double x, double y, double tolerance)
 {
     try
     {
         InspektionsRouteGISModel inspektionsRoute = inspektionsRouteGISService.GetInspektionsRouteGISAt(x, y, tolerance);
         var inspektionsRouteGISOverviewModel      = inspektionsRouteGISOverviewService.GetById(inspektionsRoute.Id);
         if (inspektionsRouteGISOverviewModel.Status != Business.Entities.GIS.InspektionsRouteStatus.RouteExportiert)
         {
             return(Content(inspektionsRoute.FeatureGeoJSONString, "application/json"));
         }
         else
         {
             return(Content(GeoJSONStrings.GeoJSONFailure(String.Format(@"Inspektionsroute: {0} {1},  is already exported", inspektionsRoute.Id, inspektionsRoute.Bezeichnung)), "application/json"));
         }
     }
     catch (Exception exc)
     {
         return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
     }
 }
        public ActionResult GetStrassenabschnittByBbox(double minX, double minY, double maxX, double maxY)
        {
            try
            {
                Coordinate bottomLeft  = new Coordinate(minX, minY);
                Coordinate topRight    = new Coordinate(maxX, maxY);
                Coordinate bottomRight = new Coordinate(maxX, minY);
                Coordinate topLeft     = new Coordinate(minX, maxY);

                ILinearRing linearRing = new LinearRing(new Coordinate[] { topLeft, topRight, bottomRight, bottomLeft, topLeft });

                IGeometry filterGeom = new NetTopologySuite.Geometries.Polygon(linearRing, GISService.CreateGeometryFactory());

                IList <StrassenabschnittGIS> strassenabschnitte = strassenabschnittGISService.GetCurrentBySpatialFilter(filterGeom);

                strassenabschnitte = strassenabschnitte.Where(s => s.Shape.Intersects(filterGeom)).ToList();
                return(Content(geoJSONParseService.GenereateGeoJsonStringfromEntities(strassenabschnitte), "application/json"));
            }
            catch (Exception exc)
            {
                return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json"));
            }
        }