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) }); }
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 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); }
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\": []}" }); } }