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")); } }
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")); } }