public JsonResult AddLineTargetResult([FromBody] JObject param_target) { bool addstatus = false; try { t_linenumber linetarget = new t_linenumber(); linetarget.lineguid = param_target["lineguid"].ToString(); linetarget.averagelength = float.Parse(param_target["averagelength"].ToString()); linetarget.buslinecount = int.Parse(param_target["buslinecount"].ToString()); linetarget.bendrate = float.Parse(param_target["bendrate"].ToString()); linetarget.c_lineguid = param_target["c_lineguid"].ToString(); linetarget.coincidence = float.Parse(param_target["coincidence"].ToString()); linetarget.createtime = DateTime.Now; addstatus = myPostRepo.AddSingle_T_LineNumber(linetarget); return(Json(new { success = "200", data = addstatus })); } catch (Exception ex) { return(Json(new { success = "404", error = ex.ToString() })); } }
public JsonResult CalculateLineTarget_Pre() { try { DateTime dt = DateTime.Now; IEnumerable <t_busline_shape> distinctlines = mySpatialRepo.GetAll_T_BusLine_Shape(); //mySpatialRepo.Delete_T_Division_BusLine("t_divisionnumber");只追加不删除 foreach (var item in distinctlines) { //返回值 string lineguid = item.lineguid; int direct = 0; //线段距离 站间距 var lines = mySpatialRepo.GetStationsBreakLength(lineguid, direct); if (lines == null || lines.Count() == 0) {//若线路未找到对应 shape rid 各结果返回0 t_linenumber linetarget1 = new t_linenumber(); linetarget1.lineguid = lineguid; linetarget1.averagelength = 0; linetarget1.buslinecount = 0; linetarget1.bendrate = 0; linetarget1.c_lineguid = ""; linetarget1.coincidence = 0; linetarget1.createtime = dt; linetarget1.totallength = 0; linetarget1.stationcount = 0; linetarget1.department = 0; linetarget1.school = 0; linetarget1.hospital = 0; linetarget1.community = 0; linetarget1.commerce = 0; linetarget1.scenicspot = 0; mySpatialRepo.AddSingle_T_LineNumber(linetarget1); continue; } //站点间线段总个数 decimal total = lines.Sum(d => d.length); //站点数 int stationcount = mySpatialRepo.Query_StationNums(lineguid, direct); //平均站间距 decimal average = total / (stationcount - 1); //1次换乘到达的线路数 var crossnums = mySpatialRepo.GetLineNumbersByOnce(lineguid, direct); //非直线系数 空间直线距离/线段路线长度 decimal distance = mySpatialRepo.GetDistanceFromPoints(lines.First().startpid, lines.Last().endpid); decimal coefficient = 0m; if (distance != 0m) { coefficient = total / distance; } IEnumerable <facilitygrp> fac_grps = mySpatialRepo.GetFacilityCountByLineBuffer(lineguid, 500); //线段重合率 //decimal repeatlength = mySpatialRepo.IntersectionBetweenTwoLines(lineguid, direct, lineguid2, direct2); //decimal repeatRatio = repeatlength / total; //需要记录数据 t_linenumber linetarget = new t_linenumber(); linetarget.lineguid = lineguid; linetarget.averagelength = float.Parse(average.ToString()); linetarget.buslinecount = int.Parse(crossnums.ToString()); linetarget.bendrate = float.Parse(coefficient.ToString()); linetarget.c_lineguid = ""; linetarget.coincidence = 0; linetarget.createtime = dt; linetarget.totallength = float.Parse(total.ToString()); linetarget.stationcount = stationcount; //缓冲区计算设施个数 linetarget.department = 0; linetarget.school = 0; linetarget.hospital = 0; linetarget.community = 0; linetarget.commerce = 0; linetarget.scenicspot = 0; if (fac_grps != null && fac_grps.Count() > 0) { foreach (var fac in fac_grps) { if (fac.type == 0) { linetarget.department = fac.count; } if (fac.type == 1) { linetarget.school = fac.count; } if (fac.type == 2) { linetarget.hospital = fac.count; } if (fac.type == 3) { linetarget.community = fac.count; } if (fac.type == 4) { linetarget.commerce = fac.count; } if (fac.type == 5) { linetarget.scenicspot = fac.count; } } } mySpatialRepo.AddSingle_T_LineNumber(linetarget); } return(Json(new { success = "200", data = true })); } catch (Exception ex) { return(Json(new { success = "404", error = ex.ToString() })); } }