Commit 15fe5ca30ea41f6fd2f684fb4b1240d4b9a5fbb2
1 parent
6321c1ec
线路文件(环线)生成代码改动
Showing
4 changed files
with
131 additions
and
41 deletions
src/main/java/com/bsth/entity/SectionRoute.java
| @@ -52,7 +52,7 @@ public class SectionRoute { | @@ -52,7 +52,7 @@ public class SectionRoute { | ||
| 52 | // 是否撤销 | 52 | // 是否撤销 |
| 53 | private Integer destroy; | 53 | private Integer destroy; |
| 54 | 54 | ||
| 55 | - /** 是否有路段限速数据 <0:无;1:有>*/ | 55 | + /** 是否有路段限速数据 <0:未分段;1:分段>*/ |
| 56 | private Integer isRoadeSpeed; | 56 | private Integer isRoadeSpeed; |
| 57 | 57 | ||
| 58 | // 描述 | 58 | // 描述 |
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
| @@ -11,6 +11,8 @@ import com.bsth.repository.StationRouteRepository; | @@ -11,6 +11,8 @@ import com.bsth.repository.StationRouteRepository; | ||
| 11 | import com.bsth.service.StationRouteService; | 11 | import com.bsth.service.StationRouteService; |
| 12 | import com.bsth.util.FTPClientUtils; | 12 | import com.bsth.util.FTPClientUtils; |
| 13 | import com.bsth.util.PackTarGZUtils; | 13 | import com.bsth.util.PackTarGZUtils; |
| 14 | +import com.bsth.util.Geo.GeoUtils; | ||
| 15 | +import com.bsth.util.Geo.Point; | ||
| 14 | import com.bsth.util.db.DBUtils_MS; | 16 | import com.bsth.util.db.DBUtils_MS; |
| 15 | import com.google.common.base.Splitter; | 17 | import com.google.common.base.Splitter; |
| 16 | import org.springframework.beans.factory.annotation.Autowired; | 18 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -556,9 +558,15 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ | @@ -556,9 +558,15 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ | ||
| 556 | 558 | ||
| 557 | clientUtils.deleteFtpFile(url, port, username, password, remotePath, textFileName); | 559 | clientUtils.deleteFtpFile(url, port, username, password, remotePath, textFileName); |
| 558 | 560 | ||
| 559 | - /** 行单文件内容 @param:<objects:站点路由;lineId:线路ID>*/ | ||
| 560 | - String textStr = newTextFileToFTP(objects,lineId); | 561 | + String textStr = ""; |
| 561 | 562 | ||
| 563 | + boolean tempTag = ishxType(objects); | ||
| 564 | + | ||
| 565 | + if(tempTag) | ||
| 566 | + textStr = hxTextFileToFtp(objects,lineId);// 环线行单文件内容 | ||
| 567 | + else | ||
| 568 | + textStr = newTextFileToFTP(objects,lineId);/** 双向行单文件内容 @param:<objects:站点路由;lineId:线路ID>*/ | ||
| 569 | + | ||
| 562 | /*textStr = line.getName() + "\t" + "2" + "\r" + textStr;*/ | 570 | /*textStr = line.getName() + "\t" + "2" + "\r" + textStr;*/ |
| 563 | 571 | ||
| 564 | textStr = line.getName() + " " + "2" + "\r" + textStr; | 572 | textStr = line.getName() + " " + "2" + "\r" + textStr; |
| @@ -574,9 +582,6 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ | @@ -574,9 +582,6 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ | ||
| 574 | /** 获取txt文件 */ | 582 | /** 获取txt文件 */ |
| 575 | File textFile = clientUtils.GetFtpFile(url, port, username, password, remotePath, textFileName); | 583 | File textFile = clientUtils.GetFtpFile(url, port, username, password, remotePath, textFileName); |
| 576 | 584 | ||
| 577 | - /*File[] sources = new File[] {textFile};*/ | ||
| 578 | - //File[] sources = new File[] {textFile}; | ||
| 579 | - | ||
| 580 | File target = new File(odlGzFileName); | 585 | File target = new File(odlGzFileName); |
| 581 | 586 | ||
| 582 | // 将txt文件打包 | 587 | // 将txt文件打包 |
| @@ -603,6 +608,24 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ | @@ -603,6 +608,24 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ | ||
| 603 | } | 608 | } |
| 604 | return resultMap; | 609 | return resultMap; |
| 605 | } | 610 | } |
| 611 | + public boolean ishxType(List<Object[]> listObj) { | ||
| 612 | + boolean tag = true; | ||
| 613 | + String pointBStr[] = null,pointEStr[] = null; | ||
| 614 | + int numzd = 0; | ||
| 615 | + for(int i =0;i<listObj.size();i++) { | ||
| 616 | + if(listObj.get(i)[3].equals("B") && Integer.valueOf(listObj.get(i)[8].toString())==0) | ||
| 617 | + pointBStr = listObj.get(i)[2].toString().split(" "); | ||
| 618 | + else if(listObj.get(i)[3].equals("E") && Integer.valueOf(listObj.get(i)[8].toString())==0) | ||
| 619 | + pointEStr = listObj.get(i)[2].toString().split(" "); | ||
| 620 | + if(Integer.valueOf(listObj.get(i)[8].toString())==1) | ||
| 621 | + numzd++; | ||
| 622 | + } | ||
| 623 | + Point p1 = new Point(Double.valueOf(pointBStr[0]),Double.valueOf(pointBStr[1])); | ||
| 624 | + Point p2 = new Point(Double.valueOf(pointEStr[0]),Double.valueOf(pointEStr[1])); | ||
| 625 | + if(GeoUtils.getDistance(p1, p2)>100 && numzd>2) | ||
| 626 | + tag = false; | ||
| 627 | + return tag; | ||
| 628 | + } | ||
| 606 | 629 | ||
| 607 | /** | 630 | /** |
| 608 | * @Description : TODO(形成行单文件内容) | 631 | * @Description : TODO(形成行单文件内容) |
| @@ -717,31 +740,79 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ | @@ -717,31 +740,79 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ | ||
| 717 | } | 740 | } |
| 718 | 741 | ||
| 719 | } | 742 | } |
| 720 | - | ||
| 721 | - /* | ||
| 722 | - String bdJWPointStr = objects.get(i)[2].toString(); | ||
| 723 | - | ||
| 724 | - String bdJWPointA[] = bdJWPointStr.split(" "); | ||
| 725 | - | ||
| 726 | - Map<String, Object> pointsM = new HashMap<String,Object>(); | ||
| 727 | - | ||
| 728 | - pointsM.put("lng", bdJWPointA[0]); | ||
| 729 | - | ||
| 730 | - pointsM.put("lat", bdJWPointA[1]); | ||
| 731 | - | ||
| 732 | - System.out.println(objects.get(i)[7].toString()); | ||
| 733 | - | ||
| 734 | - sleepStr = sleepStr + GetFormPointOnPolylineSeleepLimit(pointsM,sobje);*/ | ||
| 735 | } | 743 | } |
| 736 | 744 | ||
| 737 | stationRStr = stationRStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr; | 745 | stationRStr = stationRStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr; |
| 738 | - | ||
| 739 | } | 746 | } |
| 740 | 747 | ||
| 741 | } | 748 | } |
| 742 | - | ||
| 743 | return stationRStr; | 749 | return stationRStr; |
| 744 | - | 750 | + } |
| 751 | + | ||
| 752 | + public String hxTextFileToFtp(List<Object[]> objects,Integer lineId) { | ||
| 753 | + String restStr = ""; | ||
| 754 | + // windows下的文本文件换行符 | ||
| 755 | + //String enterStr = "\r\n"; | ||
| 756 | + // linux/unix下的文本文件换行符 | ||
| 757 | + String enterStr = "\r"; | ||
| 758 | + int xh = 1 ; | ||
| 759 | + for(int x =0;x<2;x++) { | ||
| 760 | + for(int i = 0; i<objects.size();i++) { | ||
| 761 | + if(Integer.valueOf(objects.get(i)[8].toString())==0) { | ||
| 762 | + // 经度 | ||
| 763 | + String lng = objects.get(i)[0].equals("") ? "" : objects.get(i)[0].toString(); | ||
| 764 | + // 纬度 | ||
| 765 | + String lat = objects.get(i)[1].equals("") ? "" : objects.get(i)[1].toString(); | ||
| 766 | + lat = "\t" + lat; | ||
| 767 | + // 站点类型 | ||
| 768 | + String stationMakeStr = objects.get(i)[3].equals("") ? "" : objects.get(i)[3].toString(); | ||
| 769 | + String stationMake = ""; | ||
| 770 | + if(stationMakeStr.equals("E")) { | ||
| 771 | + stationMake = "\t2"; | ||
| 772 | + }else { | ||
| 773 | + stationMake ="\t1"; | ||
| 774 | + } | ||
| 775 | + // 站点序号 | ||
| 776 | + // String stationNo = objects.get(i)[4].equals("") ? "" : objects.get(i)[4].toString(); | ||
| 777 | + String stationNo = "\t" + xh; | ||
| 778 | + // 站点编码 | ||
| 779 | + String stationCode = objects.get(i)[5].equals("") ? "" : objects.get(i)[5].toString(); | ||
| 780 | + stationCode = "\t" +stationCode; | ||
| 781 | + double dis = objects.get(i)[6]==null ? 0.0 : Double.parseDouble(objects.get(i)[6].toString())*1000; | ||
| 782 | + String tempDistc = String.valueOf((int) dis); | ||
| 783 | + // 站点距离 | ||
| 784 | + String staitondistance = "\t" + tempDistc; | ||
| 785 | + // 站点名称 | ||
| 786 | + String stationName = objects.get(i)[7].equals("") ? "" : objects.get(i)[7].toString(); | ||
| 787 | + stationName = "\t" +stationName; | ||
| 788 | + // 限速 | ||
| 789 | + String sleepStr = ""; | ||
| 790 | + // 方向 | ||
| 791 | + int directions = objects.get(i)[8]==null ? null : Integer.valueOf(objects.get(i)[8].toString()); | ||
| 792 | + /** 获取路段路由信息 @pararm:<lineId:线路ID;directions:方向> */ | ||
| 793 | + List<Object[]> sobje = routeRepository.sectionRouteVector(lineId,directions); | ||
| 794 | + if(sobje.size()==1) { | ||
| 795 | + double dsleepStr = sobje.get(0)[2] == null ? 60d : Double.valueOf(sobje.get(0)[2].toString()); | ||
| 796 | + sleepStr = "\t" + new DecimalFormat("0").format(dsleepStr); | ||
| 797 | + }else if(sobje.size()>1){ | ||
| 798 | + /** 这里暂时只根据站点名称去匹配所在路段的限速值 ,如果路段名称"至"之前的地名与站点名称等同,就认为站点在路段上。 */ | ||
| 799 | + for(int j =0;j<sobje.size();j++) { | ||
| 800 | + String sectionName = sobje.get(j)[3].toString(); | ||
| 801 | + String sectionNameA[] = sectionName.split("至"); | ||
| 802 | + if(stationName.equals(sectionNameA[0])){ | ||
| 803 | + /*sleepStr = sobje.get(j)[2].toString();*/ | ||
| 804 | + double dsleepStrt = sobje.get(0)[2] == null ? 60d : Double.valueOf(sobje.get(j)[2].toString()); | ||
| 805 | + sleepStr = "\t" + new DecimalFormat("0").format(dsleepStrt); | ||
| 806 | + } | ||
| 807 | + } | ||
| 808 | + } | ||
| 809 | + xh++; | ||
| 810 | + restStr = restStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr; | ||
| 811 | + } | ||
| 812 | + } | ||
| 813 | + } | ||
| 814 | + System.out.println(restStr); | ||
| 815 | + return restStr; | ||
| 745 | } | 816 | } |
| 746 | 817 | ||
| 747 | public String GetFormPointOnPolylineSeleepLimit(Map<String, Object> p,List<Object[]> listObjArra) { | 818 | public String GetFormPointOnPolylineSeleepLimit(Map<String, Object> p,List<Object[]> listObjArra) { |
src/main/java/com/bsth/util/Geo/SHCJ2BDJW.java
| @@ -27,9 +27,11 @@ public class SHCJ2BDJW { | @@ -27,9 +27,11 @@ public class SHCJ2BDJW { | ||
| 27 | 27 | ||
| 28 | /*String sqlSelect = "SELECT b.SHAPESTRING as SHAPE , b.id as ID FROM jjwgps_t_gjldb b where SHAPESTRING is not null order by b.ldbh asc ";*/ | 28 | /*String sqlSelect = "SELECT b.SHAPESTRING as SHAPE , b.id as ID FROM jjwgps_t_gjldb b where SHAPESTRING is not null order by b.ldbh asc ";*/ |
| 29 | /*String sqlSelect = "select s.id,s.descriptions from bsth_c_station s order by s.id asc ";*/ | 29 | /*String sqlSelect = "select s.id,s.descriptions from bsth_c_station s order by s.id asc ";*/ |
| 30 | - String sqlSelect = "SELECT s.id,s.descriptions FROM bsth_c_section s order by s.id asc "; | 30 | + String sqlSelect = "select s.id,s.x,s.y from bsth_c_station s where id >=26882 order by s.id asc"; |
| 31 | + /*String sqlSelect = "SELECT s.id,s.descriptions FROM bsth_c_section s order by s.id asc ";*/ | ||
| 31 | 32 | ||
| 32 | - String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ST_GeomFromText(?) , bsection_vector=ST_GeomFromText(?) , gsection_vector=ST_GeomFromText(?) where id = ?"; | 33 | + /*String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ST_GeomFromText(?) , bsection_vector=ST_GeomFromText(?) , gsection_vector=ST_GeomFromText(?) where id = ?";*/ |
| 34 | + String sqlUpdate = "UPDATE bsth_c_station SET b_jwpoints= ? , g_lonx=? , g_laty=? where id = ?"; | ||
| 33 | 35 | ||
| 34 | List<Map<String, Object>> list = new ArrayList<>(); | 36 | List<Map<String, Object>> list = new ArrayList<>(); |
| 35 | 37 | ||
| @@ -44,8 +46,9 @@ public class SHCJ2BDJW { | @@ -44,8 +46,9 @@ public class SHCJ2BDJW { | ||
| 44 | 46 | ||
| 45 | Map<String, Object> map = new HashMap<String, Object>(); | 47 | Map<String, Object> map = new HashMap<String, Object>(); |
| 46 | 48 | ||
| 47 | - map.put("descriptions", rs.getString("descriptions")); | ||
| 48 | - | 49 | + /*map.put("descriptions", rs.getString("descriptions"));*/ |
| 50 | + map.put("x", rs.getString("x")); | ||
| 51 | + map.put("y", rs.getString("y")); | ||
| 49 | map.put("id", rs.getInt("id")); | 52 | map.put("id", rs.getInt("id")); |
| 50 | 53 | ||
| 51 | list.add(map); | 54 | list.add(map); |
| @@ -55,10 +58,21 @@ public class SHCJ2BDJW { | @@ -55,10 +58,21 @@ public class SHCJ2BDJW { | ||
| 55 | 58 | ||
| 56 | Map<String, Object> temp = list.get(i); | 59 | Map<String, Object> temp = list.get(i); |
| 57 | // POINT (8229.30921617 -933.16425265) | 60 | // POINT (8229.30921617 -933.16425265) |
| 58 | - String lineString = temp.get("descriptions").toString(); | ||
| 59 | - int id = Integer.parseInt(temp.get("id").toString()); | 61 | + //String lineString = temp.get("descriptions").toString(); |
| 62 | + | ||
| 63 | + Double lng = Double.parseDouble(temp.get("x").toString()); | ||
| 64 | + Double lat = Double.parseDouble(temp.get("y").toString()); | ||
| 65 | + Map map_2 = JWDUtil.ConvertSHToJW(lng,lat); | ||
| 60 | 66 | ||
| 61 | - String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(", "); | 67 | + String b_jwpoints = ""; |
| 68 | + Float g_lonx=0.0f,g_laty=0.0f; | ||
| 69 | + int id = Integer.parseInt(temp.get("id").toString()); | ||
| 70 | + g_lonx = Float.parseFloat(map_2.get("x").toString()); | ||
| 71 | + g_laty = Float.parseFloat(map_2.get("y").toString()); | ||
| 72 | + Location location = TransGPS.LocationMake(Float.parseFloat(map_2.get("x").toString()), Float.parseFloat(map_2.get("y").toString())); | ||
| 73 | + location = TransGPS.bd_encrypt(TransGPS.transformFromWGSToGCJ(location)); | ||
| 74 | + b_jwpoints = (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624); | ||
| 75 | + //String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(", "); | ||
| 62 | /*String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(" "); | 76 | /*String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(" "); |
| 63 | String b_jwpoints = ""; | 77 | String b_jwpoints = ""; |
| 64 | Float g_lonx=0.0f,g_laty=0.0f,x=0.0f,y=0.0f;*/ | 78 | Float g_lonx=0.0f,g_laty=0.0f,x=0.0f,y=0.0f;*/ |
| @@ -76,7 +90,7 @@ public class SHCJ2BDJW { | @@ -76,7 +90,7 @@ public class SHCJ2BDJW { | ||
| 76 | b_jwpoints = (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624);*/ | 90 | b_jwpoints = (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624);*/ |
| 77 | //b_jwpoints = (location.getLng()) + " " + (location.getLat()); | 91 | //b_jwpoints = (location.getLng()) + " " + (location.getLat()); |
| 78 | 92 | ||
| 79 | - String csection_vector="",bsection_vector="",gsection_vector=""; | 93 | + /* String csection_vector="",bsection_vector="",gsection_vector=""; |
| 80 | 94 | ||
| 81 | for(int k =0;k<arrayP.length;k++) { | 95 | for(int k =0;k<arrayP.length;k++) { |
| 82 | 96 | ||
| @@ -103,20 +117,20 @@ public class SHCJ2BDJW { | @@ -103,20 +117,20 @@ public class SHCJ2BDJW { | ||
| 103 | } | 117 | } |
| 104 | 118 | ||
| 105 | 119 | ||
| 106 | - } | 120 | + }*/ |
| 107 | 121 | ||
| 108 | ps = null; | 122 | ps = null; |
| 109 | - bsection_vector = "LINESTRING(" + bsection_vector +")"; | ||
| 110 | - csection_vector = "LINESTRING(" + csection_vector +")"; | ||
| 111 | - gsection_vector = "LINESTRING(" + gsection_vector +")"; | 123 | + //bsection_vector = "LINESTRING(" + bsection_vector +")"; |
| 124 | + //csection_vector = "LINESTRING(" + csection_vector +")"; | ||
| 125 | + //gsection_vector = "LINESTRING(" + gsection_vector +")"; | ||
| 112 | 126 | ||
| 113 | ps = conn.prepareStatement(sqlUpdate); | 127 | ps = conn.prepareStatement(sqlUpdate); |
| 114 | 128 | ||
| 115 | // String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ? , bsection_vector=? , gsection_vector=? where id = ?"; | 129 | // String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ? , bsection_vector=? , gsection_vector=? where id = ?"; |
| 116 | - ps.setString(1, csection_vector); | ||
| 117 | - ps.setString(2, bsection_vector); | ||
| 118 | - ps.setString(3, gsection_vector); | ||
| 119 | - ps.setInt(4, id); | 130 | + //ps.setString(1, csection_vector); |
| 131 | + //ps.setString(2, bsection_vector); | ||
| 132 | + //ps.setString(3, gsection_vector); | ||
| 133 | + //ps.setInt(4, id); | ||
| 120 | 134 | ||
| 121 | //int stauts = ps.executeUpdate(); | 135 | //int stauts = ps.executeUpdate(); |
| 122 | // String sqlUpdate = "UPDATE bsth_c_station SET b_jwpoints = ?1 , g_lonx=?2 , g_laty=?3 , x = ?4 , y = ?5 where id = ?6"; | 136 | // String sqlUpdate = "UPDATE bsth_c_station SET b_jwpoints = ?1 , g_lonx=?2 , g_laty=?3 , x = ?4 , y = ?5 where id = ?6"; |
| @@ -126,6 +140,11 @@ public class SHCJ2BDJW { | @@ -126,6 +140,11 @@ public class SHCJ2BDJW { | ||
| 126 | ps.setFloat(4, x); | 140 | ps.setFloat(4, x); |
| 127 | ps.setFloat(5, y); | 141 | ps.setFloat(5, y); |
| 128 | ps.setFloat(6, id);*/ | 142 | ps.setFloat(6, id);*/ |
| 143 | + | ||
| 144 | + ps.setString(1, b_jwpoints); | ||
| 145 | + ps.setFloat(2, g_lonx); | ||
| 146 | + ps.setFloat(3, g_laty); | ||
| 147 | + ps.setFloat(4, id); | ||
| 129 | int stauts = ps.executeUpdate(); | 148 | int stauts = ps.executeUpdate(); |
| 130 | System.out.println(stauts); | 149 | System.out.println(stauts); |
| 131 | } | 150 | } |
src/main/resources/static/pages/base/station/edit_select.html
| @@ -177,7 +177,7 @@ $('#editPositions_select_mobal').on('editSelectMobal_show', function(e, map,drm, | @@ -177,7 +177,7 @@ $('#editPositions_select_mobal').on('editSelectMobal_show', function(e, map,drm, | ||
| 177 | map.clearMarkAndOverlays(); | 177 | map.clearMarkAndOverlays(); |
| 178 | 178 | ||
| 179 | // 打开绘制工具 | 179 | // 打开绘制工具 |
| 180 | - PositionsDrawingManagerObj.openDrawingManager(); | 180 | + drm.openDrawingManager(); |
| 181 | 181 | ||
| 182 | // 根据站点位置在地图定位 | 182 | // 根据站点位置在地图定位 |
| 183 | map.localtionPoint(editStationName); | 183 | map.localtionPoint(editStationName); |