public void ConvertLinetoPoints() { string line = "LINESTRING(431.33393335342407 3.82005181729661,47.33685159683228 32.80960466650892)"; var points = GeoPointConverter.GetPoints(line); Assert.Equal(points.Count(), 2); Assert.Equal(points.ToArray()[0].Lat.Value, 431.33M, 2); Assert.Equal(points.ToArray()[0].Lng.Value, 3.82M, 2); string line2 = "LINESTRING(49.373544 20.078626 , 49.379992 20.087141 , 49.384800 20.084377,49.389893 20.097433)"; var points2 = GeoPointConverter.GetPoints(line2); Assert.Equal(points2.Count(), 4); Assert.Equal(points2.ToArray()[0].Lat.Value, 49.37M, 2); Assert.Equal(points2.ToArray()[0].Lng.Value, 20.08M, 2); }
public async Task <Result <RouteDetailsViewModel> > GetRouteById(IdModel model) { try { var query = new SearchQuery <RouteInfoEntity>(); RouteInfoEntity result = await _routeRepository.GetSingleWithDependencies(model.Id); if (result == null) { ErrorResult error = GenerateError("Route not found", "Id", "Invalid identifier", ErrorStatus.ObjectNotFound); return(new Result <RouteDetailsViewModel>(error)); } var viewModel = new RouteDetailsViewModel() { Difficulty = result.Difficulty, Id = result.ID, Name = result.Name, UserId = result.UserId, User = new UserListItemModel() { Email = result.User.Email, Id = result.User.ID, Name = result.User.Name, RoutesCount = result.User.Routes.Count }, Geometry = new RouteGeometry() { Id = result.Geometry.ID, Points = GeoPointConverter.GetPoints(result.Geometry.Line), }, MainPoint = GeoPointConverter.GetPoint(result.Point.Point) }; return(new Result <RouteDetailsViewModel>(viewModel)); } catch (Exception ex) { ErrorResult error = GenerateError(ex); return(new Result <RouteDetailsViewModel>(error)); } }
public async Task <Result <IEnumerable <RouteGeometry> > > GetGeometries(string routes) { try { if (!string.IsNullOrEmpty(routes)) { var routesArr = routes.Split(',').Select <string, int>(int.Parse).ToArray(); var entities = await _routeRepository.GetGeometries(routesArr); if (entities.Any()) { var models = entities.Select(r => new RouteGeometry() { Id = r.ID, Points = GeoPointConverter.GetPoints(r.Line) }); return(new Result <IEnumerable <RouteGeometry> >(models)); } else { ErrorResult error = GenerateError("Routes not found", "Routes", "Invalid identifiers", ErrorStatus.ObjectNotFound); return(new Result <IEnumerable <RouteGeometry> >(error)); } } else { ErrorResult error = GenerateError("Route not found", "Routes", "Invalid identifier", ErrorStatus.ObjectNotFound); return(new Result <IEnumerable <RouteGeometry> >(error)); } } catch (Exception ex) { ErrorResult error = GenerateError(ex); return(new Result <IEnumerable <RouteGeometry> >(error)); } }