public virtual ViewResult Index() { var viewModel = new PathFinderIndexViewModel { //FaaliatSelectListItems = _faaliatBLL.GetAllFaaliat(), //_pathFinderService.GetFaaliatSelectListItems(), ProviceSelectListItems = _placeTreeBLL.GetProvinceSelectListItems() }; return(View(viewModel)); }
public IEnumerable <PathGrid> GetListOfPathGrid(PathFinderIndexViewModel viewModel, List <PointCluster> pointClusters) { return(pointClusters.Select((p, index) => new PathGrid { RowNumber = ++index, PathName = $"مسیر شماره - {index}", IdPlaceTree = p.IdPlaceTree, TemporaryId = Guid.NewGuid(), Checked = false, ToziZamaniPishfarz = viewModel.DefaultTimeDistribution, BazeZamaniTour = viewModel.TourTimeSpan, PointClusterCoordinates = p.PointClusterCoordinates, PointsPerCluster = p.PointClusterCoordinates.Count, GradeAvaliyeBazar = p.PointClusterCoordinates.Average(a => a.PotansielAvalie), Enheraf = viewModel.PointsOnPath - p.PointClusterCoordinates.Count, OriginDestinationDistance = Math.Round((KdTreeHelper.GetDistanceCoordinate(p.PointClusterCoordinates.First(), p.PointClusterCoordinates.Last()) / 1000), 2) //convert to kilometer })); }
public virtual JsonResult GetCoordinates(PathFinderIndexViewModel viewModel) { if (!ModelState.IsValid) { return(Json(new { status = "FormIsNotValid" })); } var coordinates = _pathFinderService.GetCoordinatesByFaaliatGroup(viewModel.FaaliatGroupSelect, viewModel.CitySelect.Value); if (!coordinates.Any()) { return(Json(new { status = "NoCoordinateFound" })); } var pointClusters = new KDTree <double, Coordinate>(2, coordinates.ToArrayOfDoubles(), coordinates, KdTreeHelper.L2Norm_Squared_Double) .NearestNeighborClusterRadial(Radius.SuperSlowButAccurate, viewModel.PointsOnPath.Value, coordinates) .ToPointClosters(); var pathGrid = _pathFinderService.GetListOfPathGrid(viewModel, pointClusters); return(Json(new { pointClusters, pathGrid })); }