Commit bb4ea942a8b8bd9df4bb8a78040cf331cf9e4fcd
1 parent
2c4d6041
站点添加方式修改
Showing
13 changed files
with
412 additions
and
71 deletions
src/main/java/com/bsth/controller/geo_data/GeoDataController.java
| ... | ... | @@ -48,8 +48,9 @@ public class GeoDataController { |
| 48 | 48 | |
| 49 | 49 | @RequestMapping(value = "addNewStationRoute",method = RequestMethod.POST) |
| 50 | 50 | public Map<String, Object> addNewStationRoute(@RequestParam String lineCode,@RequestParam int versions,@RequestParam int upDown |
| 51 | - ,@RequestParam String stationName,@RequestParam Float lat,@RequestParam Float lng,@RequestParam int prevRouteId){ | |
| 52 | - return geoDataService.addNewStationRoute(lineCode, upDown, versions, stationName, lat, lng, prevRouteId); | |
| 51 | + ,@RequestParam String stationName,@RequestParam Float lat,@RequestParam Float lng,@RequestParam int prevRouteId, | |
| 52 | + @RequestParam String addType,@RequestParam String citeStationCode,@RequestParam Long citeStationId){ | |
| 53 | + return geoDataService.addNewStationRoute(lineCode, upDown, versions, stationName, lat, lng, prevRouteId, addType, citeStationCode, citeStationId); | |
| 53 | 54 | } |
| 54 | 55 | |
| 55 | 56 | @RequestMapping(value = "addNewRoadRoute",method = RequestMethod.POST) |
| ... | ... | @@ -107,4 +108,9 @@ public class GeoDataController { |
| 107 | 108 | public Map<String, Object> batchDestroyLsSectionRout(@RequestParam String ids,@RequestParam String lineCode,@RequestParam int upDown,@RequestParam int versions) { |
| 108 | 109 | return geoDataService.batchDestroyLsSectionRout(ids,lineCode,upDown,versions); |
| 109 | 110 | } |
| 111 | + | |
| 112 | + @RequestMapping(value = "matchStationList",method = RequestMethod.GET) | |
| 113 | + public Map<String, Object> matchStationList(@RequestParam Map<String, Object> map) { | |
| 114 | + return geoDataService.matchStationList(map); | |
| 115 | + } | |
| 110 | 116 | } |
| 111 | 117 | \ No newline at end of file | ... | ... |
src/main/java/com/bsth/entity/geo_data/GeoStation.java
| ... | ... | @@ -17,8 +17,12 @@ public class GeoStation { |
| 17 | 17 | |
| 18 | 18 | private String lineCode; |
| 19 | 19 | |
| 20 | + private String lineName; | |
| 21 | + | |
| 20 | 22 | private Integer directions; |
| 21 | 23 | |
| 24 | + private String stationId; | |
| 25 | + | |
| 22 | 26 | private String stationCode; |
| 23 | 27 | |
| 24 | 28 | private String stationMark; |
| ... | ... | @@ -74,6 +78,14 @@ public class GeoStation { |
| 74 | 78 | this.lineCode = lineCode; |
| 75 | 79 | } |
| 76 | 80 | |
| 81 | + public String getLineName() { | |
| 82 | + return lineName; | |
| 83 | + } | |
| 84 | + | |
| 85 | + public void setLineName(String lineName) { | |
| 86 | + this.lineName = lineName; | |
| 87 | + } | |
| 88 | + | |
| 77 | 89 | public Integer getDirections() { |
| 78 | 90 | return directions; |
| 79 | 91 | } |
| ... | ... | @@ -82,6 +94,14 @@ public class GeoStation { |
| 82 | 94 | this.directions = directions; |
| 83 | 95 | } |
| 84 | 96 | |
| 97 | + public String getStationId() { | |
| 98 | + return stationId; | |
| 99 | + } | |
| 100 | + | |
| 101 | + public void setStationId(String stationId) { | |
| 102 | + this.stationId = stationId; | |
| 103 | + } | |
| 104 | + | |
| 85 | 105 | public String getStationCode() { |
| 86 | 106 | return stationCode; |
| 87 | 107 | } | ... | ... |
src/main/java/com/bsth/repository/LineRepository.java
| ... | ... | @@ -68,4 +68,33 @@ public interface LineRepository extends BaseRepository<Line, Integer> { |
| 68 | 68 | String shortName, String shanghaiLinecode, String eqLinecode, String startPhone, String endPhone, |
| 69 | 69 | Integer carSumNumber, Integer hvacCarNumber, Integer ordCarNumber, String history, String descriptions, |
| 70 | 70 | Integer destroy, Integer supperLine, Integer spacGrade, Integer warrantCar, String lineCode, Integer region); |
| 71 | + | |
| 72 | + /** | |
| 73 | + * 查询线路版本文件 | |
| 74 | + * @param lineId | |
| 75 | + * @return | |
| 76 | + */ | |
| 77 | + @Query(value = "SELECT version_count FROM bsth_c_line_file_version where line = ?1", nativeQuery = true) | |
| 78 | + Integer findfileVersions(Integer lineId); | |
| 79 | + | |
| 80 | + /** | |
| 81 | + * 添加线路文件版本 | |
| 82 | + * @param lineId | |
| 83 | + * @param line_code | |
| 84 | + */ | |
| 85 | + @Transactional | |
| 86 | + @Modifying | |
| 87 | + @Query(value = "INSERT INTO bsth_c_line_file_version (line,line_code,version_count) VALUES (?1,?2,2)", nativeQuery = true) | |
| 88 | + public void addFileVersions(Integer lineId, String line_code); | |
| 89 | + | |
| 90 | + /** | |
| 91 | + * 线路文件版本修改 | |
| 92 | + * @param lineId | |
| 93 | + * @param version_count | |
| 94 | + */ | |
| 95 | + @Transactional | |
| 96 | + @Modifying | |
| 97 | + @Query(value = "UPDATE bsth_c_line_file_version set version_count=?2 WHERE line = ?1", nativeQuery = true) | |
| 98 | + public void editFileVersions(Integer lineId, Integer version_count); | |
| 99 | + | |
| 71 | 100 | } | ... | ... |
src/main/java/com/bsth/repository/StationRouteRepository.java
| ... | ... | @@ -158,22 +158,33 @@ public interface StationRouteRepository extends BaseRepository<StationRoute, Int |
| 158 | 158 | * |
| 159 | 159 | * [6]:distances(站点距离);[7]:station_name(站点名称);[8]:directions(方向)} |
| 160 | 160 | */ |
| 161 | +// @Query(value = "SELECT * FROM ("+ | |
| 162 | +// "SELECT b.g_lonx," + | |
| 163 | +// "b.g_laty,b.b_jwpoints," + | |
| 164 | +// "a.station_mark," + | |
| 165 | +// "a.station_route_code," + | |
| 166 | +// "b.station_code," + | |
| 167 | +// "a.distances,"+ | |
| 168 | +// "b.station_name," + | |
| 169 | +// "a.directions FROM (SELECT " + | |
| 170 | +// "s.station_mark," + | |
| 171 | +// "s.station_route_code," + | |
| 172 | +// "s.directions," + | |
| 173 | +// "s.distances,"+ | |
| 174 | +// "s.station FROM bsth_c_stationroute s where s.line = ?1 and s.destroy=0) a " + | |
| 175 | +// "LEFT JOIN bsth_c_station b " + | |
| 176 | +// " on a.station = b.id ORDER BY a.directions ASC ) k ORDER BY k.directions,k.station_route_code ASC", nativeQuery=true) | |
| 161 | 177 | @Query(value = "SELECT * FROM ("+ |
| 162 | - "SELECT b.g_lonx," + | |
| 163 | - "b.g_laty,b.b_jwpoints," + | |
| 164 | - "a.station_mark," + | |
| 165 | - "a.station_route_code," + | |
| 166 | - "b.station_code," + | |
| 167 | - "a.distances,"+ | |
| 168 | - "b.station_name," + | |
| 169 | - "a.directions FROM (SELECT " + | |
| 170 | - "s.station_mark," + | |
| 171 | - "s.station_route_code," + | |
| 172 | - "s.directions," + | |
| 173 | - "s.distances,"+ | |
| 174 | - "s.station FROM bsth_c_stationroute s where s.line = ?1 and s.destroy=0) a " + | |
| 175 | - "LEFT JOIN bsth_c_station b " + | |
| 176 | - " on a.station = b.id ORDER BY a.directions ASC ) k ORDER BY k.directions,k.station_route_code ASC", nativeQuery=true) | |
| 178 | + "SELECT b.g_lonx," + | |
| 179 | + "b.g_laty,b.b_jwpoints," + | |
| 180 | + "a.station_mark," + | |
| 181 | + "a.station_route_code," + | |
| 182 | + "a.station_code," + | |
| 183 | + "a.distances,"+ | |
| 184 | + "a.station_name," + | |
| 185 | + "a.directions FROM " + | |
| 186 | + " bsth_c_stationroute a , bsth_c_station b " + | |
| 187 | + " where a.line = ?1 and a.destroy=0 and a.station = b.id ) k ORDER BY k.directions,k.station_route_code ASC", nativeQuery=true) | |
| 177 | 188 | List<Object[]> usingSingle(Integer lineId); |
| 178 | 189 | |
| 179 | 190 | /** | ... | ... |
src/main/java/com/bsth/service/geo_data/GeoDataService.java
| ... | ... | @@ -21,7 +21,7 @@ public interface GeoDataService { |
| 21 | 21 | |
| 22 | 22 | Map<String, Object> updateStationName(Map<String, Object> map); |
| 23 | 23 | |
| 24 | - Map<String,Object> addNewStationRoute(String lineCode, int upDown,int versions, String stationName, Float lat, Float lng, int prevRouteId); | |
| 24 | + Map<String,Object> addNewStationRoute(String lineCode, int upDown,int versions, String stationName, Float lat, Float lng, int prevRouteId, String addType, String citeStationCode, Long citeStationId); | |
| 25 | 25 | |
| 26 | 26 | Map<String,Object> destroyStation(GeoStation station); |
| 27 | 27 | |
| ... | ... | @@ -44,4 +44,6 @@ public interface GeoDataService { |
| 44 | 44 | Map<String,Object> batchDestroyLsStationRout(String ids, String lineCode, int upDown, int versions); |
| 45 | 45 | |
| 46 | 46 | Map<String,Object> batchDestroyLsSectionRout(String ids, String lineCode, int upDown, int versions); |
| 47 | + | |
| 48 | + Map<String, Object> matchStationList(Map<String, Object> map); | |
| 47 | 49 | } | ... | ... |
src/main/java/com/bsth/service/geo_data/impl/GeoDataServiceImpl.java
| ... | ... | @@ -10,6 +10,9 @@ import com.bsth.service.geo_data.impl.dto.CascadeSaveRoad; |
| 10 | 10 | import com.bsth.service.geo_data.impl.dto.CascadeSaveStation; |
| 11 | 11 | import com.bsth.service.geo_data.impl.dto.SaveRoadRouteDTO; |
| 12 | 12 | import com.bsth.service.geo_data.impl.dto.SaveStationRouteDTO; |
| 13 | +import com.bsth.util.Geo.Circle; | |
| 14 | +import com.bsth.util.Geo.GeoUtils; | |
| 15 | +import com.bsth.util.Geo.Point; | |
| 13 | 16 | import com.bsth.util.GetUIDAndCode; |
| 14 | 17 | import com.bsth.util.TransGPS; |
| 15 | 18 | import com.google.common.base.Splitter; |
| ... | ... | @@ -28,7 +31,13 @@ import org.springframework.transaction.support.DefaultTransactionDefinition; |
| 28 | 31 | import java.sql.PreparedStatement; |
| 29 | 32 | import java.sql.SQLException; |
| 30 | 33 | import java.text.SimpleDateFormat; |
| 31 | -import java.util.*; | |
| 34 | +import java.util.ArrayList; | |
| 35 | +import java.util.Collections; | |
| 36 | +import java.util.Comparator; | |
| 37 | +import java.util.Date; | |
| 38 | +import java.util.HashMap; | |
| 39 | +import java.util.List; | |
| 40 | +import java.util.Map; | |
| 32 | 41 | |
| 33 | 42 | /** |
| 34 | 43 | * Created by panzhao on 2017/12/8. |
| ... | ... | @@ -150,6 +159,68 @@ public class GeoDataServiceImpl implements GeoDataService { |
| 150 | 159 | } |
| 151 | 160 | |
| 152 | 161 | /** |
| 162 | + * @Description :TODO(根据坐标点匹配数据库中的站点) | |
| 163 | + * | |
| 164 | + * @param map: <point:坐标点; name:站点名> | |
| 165 | + * | |
| 166 | + */ | |
| 167 | + @Override | |
| 168 | + public Map<String, Object> matchStationList(Map<String, Object> map) { | |
| 169 | + SaveStationRouteDTO a; | |
| 170 | + Map<String, Object> rs = new HashMap<>(); | |
| 171 | + | |
| 172 | + //编程式事务 | |
| 173 | + DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource()); | |
| 174 | + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); | |
| 175 | + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); | |
| 176 | + TransactionStatus status = tran.getTransaction(def); | |
| 177 | + try { | |
| 178 | + List<GeoStation> matchStationList = new ArrayList<>(); | |
| 179 | + String matchType = map.get("matchType").toString(); | |
| 180 | + String sql = "select t1.id,t1.station_name ,t1.line_code,t1.station as station_id,t1.station_code,t1.station_mark,t1.versions,t1.directions, " + | |
| 181 | + "t2.b_jwpoints,t2.g_lonx,t2.g_laty,t3.name as line_name from bsth_c_ls_stationroute t1, " + | |
| 182 | + "bsth_c_station t2 , bsth_c_line t3 where t1.station_code=t2.station_code and t1.station = t2.id and t1.line = t3.id"; | |
| 183 | + List<GeoStation> list = jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(GeoStation.class)); | |
| 184 | + if(matchType.equals("stationName")){ | |
| 185 | + String stationName = map.get("stationName").toString(); | |
| 186 | + | |
| 187 | + for (GeoStation station : list) { | |
| 188 | + if (station.getStationName().equals(stationName)) | |
| 189 | + matchStationList.add(station); | |
| 190 | + } | |
| 191 | + }else if(matchType.equals("point")){ | |
| 192 | + | |
| 193 | + Double gLonx = Double.valueOf(map.get("gLonx").toString()); | |
| 194 | + Double gLaty = Double.valueOf(map.get("gLaty").toString()); | |
| 195 | + //坐标转换 | |
| 196 | + TransGPS.Location loc = TransGPS.LocationMake(gLonx, gLaty); | |
| 197 | + loc = TransGPS.bd_decrypt(loc); | |
| 198 | + loc = TransGPS.transformFromGCJToWGS(loc); | |
| 199 | + Point point = new Point(loc.getLng(), loc.getLat()); | |
| 200 | + for (GeoStation station : list) { | |
| 201 | + Float matchGLonx = station.getgLonx(); | |
| 202 | + Float matchGLaty = station.getgLaty(); | |
| 203 | + Point center = new Point(matchGLonx, matchGLaty); | |
| 204 | + // 搜索100m以内的站点 | |
| 205 | + Circle circle = new Circle(center, 100); | |
| 206 | + if (GeoUtils.isPointInCircle(point, circle)) { | |
| 207 | + matchStationList.add(station); | |
| 208 | + } | |
| 209 | + } | |
| 210 | + } | |
| 211 | + | |
| 212 | + rs.put("matchStationList", matchStationList); | |
| 213 | + rs.put("status", ResponseCode.SUCCESS); | |
| 214 | + | |
| 215 | + } catch (Exception e) { | |
| 216 | + logger.error("", e); | |
| 217 | + rs.put("status", ResponseCode.ERROR); | |
| 218 | + rs.put("msg", "服务器出现异常"); | |
| 219 | + } | |
| 220 | + return rs; | |
| 221 | + } | |
| 222 | + | |
| 223 | + /** | |
| 153 | 224 | * 编辑缓冲区信息 |
| 154 | 225 | * |
| 155 | 226 | * @param station |
| ... | ... | @@ -688,7 +759,8 @@ public class GeoDataServiceImpl implements GeoDataService { |
| 688 | 759 | } |
| 689 | 760 | |
| 690 | 761 | @Override |
| 691 | - public Map<String, Object> addNewStationRoute(String lineCode, int upDown, int versions, String stationName, Float lat, Float lng, int prevRouteId) { | |
| 762 | + public Map<String, Object> addNewStationRoute(String lineCode, int upDown, int versions, String stationName, Float lat, Float lng, int prevRouteId, | |
| 763 | + String addType, String citeStationCode, Long citeStationId) { | |
| 692 | 764 | Map<String, Object> rs = new HashMap<>(); |
| 693 | 765 | |
| 694 | 766 | //编程式事务 |
| ... | ... | @@ -714,13 +786,16 @@ public class GeoDataServiceImpl implements GeoDataService { |
| 714 | 786 | //按路由顺序排列 |
| 715 | 787 | Collections.sort(routes, new StationRouteComp()); |
| 716 | 788 | |
| 717 | - //转WGS | |
| 718 | - TransGPS.Location wgsLoc = TransGPS.transformFromGCJToWGS(TransGPS.bd_decrypt(TransGPS.LocationMake(Double.parseDouble(String.valueOf(lng)), Double.parseDouble(String.valueOf(lat))))); | |
| 789 | + if(!addType.equals("cite")){ | |
| 790 | + //转WGS | |
| 791 | + TransGPS.Location wgsLoc = TransGPS.transformFromGCJToWGS(TransGPS.bd_decrypt(TransGPS.LocationMake(Double.parseDouble(String.valueOf(lng)), Double.parseDouble(String.valueOf(lat))))); | |
| 719 | 792 | |
| 720 | - //insert 站点 | |
| 721 | - long sCode = GetUIDAndCode.getStationId(); | |
| 722 | - jdbcTemplate.update("insert into bsth_c_station(id, station_code, db_type, b_jwpoints, g_lonx, g_laty) " + | |
| 723 | - " values(?,?,?,?,?,?)", sCode, sCode, "b", lng + " " + lat, wgsLoc.getLng(), wgsLoc.getLat()); | |
| 793 | + //insert 站点 | |
| 794 | + citeStationId = GetUIDAndCode.getStationId(); | |
| 795 | + citeStationCode = citeStationId.toString(); | |
| 796 | + jdbcTemplate.update("insert into bsth_c_station(id, station_code, db_type, b_jwpoints, g_lonx, g_laty) " + | |
| 797 | + " values(?,?,?,?,?,?)", citeStationId, citeStationCode, "b", lng + " " + lat, wgsLoc.getLng(), wgsLoc.getLat()); | |
| 798 | + } | |
| 724 | 799 | |
| 725 | 800 | |
| 726 | 801 | SaveStationRouteDTO sr; |
| ... | ... | @@ -749,8 +824,8 @@ public class GeoDataServiceImpl implements GeoDataService { |
| 749 | 824 | nsr.setDirections(upDown); |
| 750 | 825 | nsr.setVersions(versions); |
| 751 | 826 | nsr.setStationRouteCode(currentNo); |
| 752 | - nsr.setStation(sCode); | |
| 753 | - nsr.setStationCode(sCode + ""); | |
| 827 | + nsr.setStation(citeStationId); | |
| 828 | + nsr.setStationCode(citeStationCode); | |
| 754 | 829 | nsr.setStationName(stationName); |
| 755 | 830 | nsr.setDistances(0d); |
| 756 | 831 | nsr.setToTime(0d); |
| ... | ... | @@ -775,6 +850,9 @@ public class GeoDataServiceImpl implements GeoDataService { |
| 775 | 850 | if(routes.size() > 1) |
| 776 | 851 | routes.get(routes.size() - 1).setStationMark("E"); |
| 777 | 852 | |
| 853 | + jdbcTemplate.update("update bsth_c_ls_stationroute set station_route_code=station_route_code+100" + | |
| 854 | + " where line_code =? and directions=? and destroy=0 and station_route_code >= ?",lineCode,upDown,currentNo); | |
| 855 | + | |
| 778 | 856 | //insert 新路由 (ID自增) |
| 779 | 857 | jdbcTemplate.update("insert into bsth_c_ls_stationroute(line, station, station_name, station_route_code, line_code, station_code, station_mark, distances, to_time, destroy, versions, create_date, update_date,directions, radius, shapes_type) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" |
| 780 | 858 | , nsr.getLine(), nsr.getStation(), nsr.getStationName(), nsr.getStationRouteCode(), nsr.getLineCode(), nsr.getStationCode(), "Z" | ... | ... |
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
| ... | ... | @@ -694,9 +694,17 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ |
| 694 | 694 | try { |
| 695 | 695 | // 获取线路ID |
| 696 | 696 | Integer lineId = map.get("lineId").equals("") ? 0 : Integer.parseInt(map.get("lineId").toString()); |
| 697 | - Integer fileVersions = map.get("fileVersions").equals("") ? 2 : Integer.parseInt(map.get("fileVersions").toString());// 没有输入就默认2 | |
| 698 | 697 | /** 查询线路信息 @param:<lineId:线路ID> */ |
| 699 | 698 | Line line = lineRepository.findOne(lineId); |
| 699 | + Integer fileVersions = lineRepository.findfileVersions(lineId); | |
| 700 | + if(fileVersions == null) { | |
| 701 | + lineRepository.addFileVersions(line.getId(), line.getLineCode()); | |
| 702 | + fileVersions = 2; | |
| 703 | + } else { | |
| 704 | + fileVersions = fileVersions + 1; | |
| 705 | + lineRepository.editFileVersions(line.getId(),fileVersions); | |
| 706 | + } | |
| 707 | +// Integer fileVersions = map.get("fileVersions").equals("") ? 2 : Integer.parseInt(map.get("fileVersions").toString());// 没有输入就默认2 | |
| 700 | 708 | /** 查询线路信息下的站点路由信息 @param:<lineId:线路ID> */ |
| 701 | 709 | List<Object[]> objects = repository.usingSingle(lineId); |
| 702 | 710 | if (objects.size()>0) { |
| ... | ... | @@ -743,8 +751,8 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ |
| 743 | 751 | File targetFile = PackTarGZUtils.compress(textFile, target); |
| 744 | 752 | clientUtils.FTPUpLoadFromDisk(targetFile, targetFile.getName(), url, port, username, password, remotePath); |
| 745 | 753 | // 删除文件 |
| 746 | - textFile.delete(); | |
| 747 | - targetFile.delete(); | |
| 754 | +// textFile.delete(); | |
| 755 | +// targetFile.delete(); | |
| 748 | 756 | resultMap.put("status", ResponseCode.SUCCESS); |
| 749 | 757 | }else { |
| 750 | 758 | resultMap.put("status","NOTDATA"); | ... | ... |
src/main/resources/static/pages/base/geo_data_edit/css/mian.css
| ... | ... | @@ -217,7 +217,7 @@ a.clock_enable_version:focus{ |
| 217 | 217 | margin-left: 0px; |
| 218 | 218 | } |
| 219 | 219 | .road_route{ |
| 220 | - padding-left: 30px; | |
| 220 | + padding-left: 25px; | |
| 221 | 221 | width: calc(100% - 25px); |
| 222 | 222 | font-size: 14px; |
| 223 | 223 | color: #242424; |
| ... | ... | @@ -510,12 +510,13 @@ ul.context-menu-list.station-route-ct-menu.context-menu-root { |
| 510 | 510 | |
| 511 | 511 | .add_station_search_point_wrap{ |
| 512 | 512 | width: 390px; |
| 513 | - height: 126px; | |
| 513 | + height: 156px; | |
| 514 | 514 | position: absolute; |
| 515 | 515 | top: 10px; |
| 516 | 516 | left: calc(50% - 200px); |
| 517 | 517 | z-index: 999; |
| 518 | - background: #ffface; | |
| 518 | + background: #fff; | |
| 519 | + /*background: #ffface;*/ | |
| 519 | 520 | box-shadow: 5px 5px 15px rgba(90, 90, 90, 0.48); |
| 520 | 521 | } |
| 521 | 522 | |
| ... | ... | @@ -579,7 +580,8 @@ ul.context-menu-list.station-route-ct-menu.context-menu-root { |
| 579 | 580 | top: 10px; |
| 580 | 581 | left: calc(50% - 200px); |
| 581 | 582 | z-index: 999; |
| 582 | - background: #ffface; | |
| 583 | + background: #fff; | |
| 584 | + /*background: #ffface;*/ | |
| 583 | 585 | box-shadow: 5px 5px 15px rgba(90, 90, 90, 0.48); |
| 584 | 586 | } |
| 585 | 587 | ... | ... |
src/main/resources/static/pages/base/geo_data_edit/fragments/f_station_route.html
| ... | ... | @@ -163,6 +163,14 @@ |
| 163 | 163 | </div> |
| 164 | 164 | </div> |
| 165 | 165 | <div class="uk-inline btns"> |
| 166 | + <button class="uk-button uk-button-primary pointSearch">坐标点查找</button> | |
| 167 | + </div> | |
| 168 | + </div> | |
| 169 | + <div class="ct_row "> | |
| 170 | + <div class="uk-inline" > | |
| 171 | + <select name="matchStationIndex" class="form-control matchStationListSelect" style="width:100%"></select> | |
| 172 | + </div> | |
| 173 | + <div class="uk-inline btns"> | |
| 166 | 174 | <button class="uk-button uk-button-primary submit">确定</button> |
| 167 | 175 | <button class="uk-button uk-button-default cancel">取消</button> |
| 168 | 176 | </div> | ... | ... |
src/main/resources/static/pages/base/geo_data_edit/js/map.js
| ... | ... | @@ -34,6 +34,8 @@ var gb_ct_map = function () { |
| 34 | 34 | var editCircle; |
| 35 | 35 | var editPolygon; |
| 36 | 36 | var dragMarker; |
| 37 | + // 站点添加和编辑时候匹配的站点MarkList | |
| 38 | + var matchStationMarkList = new Array(); | |
| 37 | 39 | |
| 38 | 40 | map = new BMap.Map($(gb_map_consts.mapContainer)[0], {enableMapClick: false}); |
| 39 | 41 | //中心点和缩放级别 |
| ... | ... | @@ -174,14 +176,14 @@ var gb_ct_map = function () { |
| 174 | 176 | map.openInfoWindow(win, point); |
| 175 | 177 | } |
| 176 | 178 | |
| 177 | - function createStationMark(statio) { | |
| 178 | - var point = new BMap.Point(statio.bd_lon, statio.bd_lat); | |
| 179 | + function createStationMark(station) { | |
| 180 | + var point = new BMap.Point(station.bd_lon, station.bd_lat); | |
| 179 | 181 | var marker = new BMap.Marker(point); |
| 180 | 182 | |
| 181 | 183 | //根据站点名称 计算marker 宽度 |
| 182 | - var w = statio.stationName.length * 12 + 38 | |
| 184 | + var w = station.stationName.length * 12 + 38 | |
| 183 | 185 | , iw = w - 2; |
| 184 | - var icon = new BMap.Icon(createStationIcon(statio, w), new BMap.Size(iw, 24), {anchor: new BMap.Size(iw / 2, 25)}) | |
| 186 | + var icon = new BMap.Icon(createStationIcon(station, w), new BMap.Size(iw, 24), {anchor: new BMap.Size(iw / 2, 25)}) | |
| 185 | 187 | marker.setIcon(icon); |
| 186 | 188 | marker.setShadow(null); |
| 187 | 189 | |
| ... | ... | @@ -208,6 +210,7 @@ var gb_ct_map = function () { |
| 208 | 210 | win.addEventListener('open', function (e) { |
| 209 | 211 | gb_station_route.focus(m.ct_data); |
| 210 | 212 | }); |
| 213 | + setTop(m); | |
| 211 | 214 | |
| 212 | 215 | map.openInfoWindow(win, m.point); |
| 213 | 216 | }; |
| ... | ... | @@ -489,6 +492,78 @@ var gb_ct_map = function () { |
| 489 | 492 | dragMarker.addEventListener('dragging', dragMarkerDragEvent); |
| 490 | 493 | }; |
| 491 | 494 | |
| 495 | + /** | |
| 496 | + * 添加匹配站点 | |
| 497 | + * @param i | |
| 498 | + * @param station | |
| 499 | + */ | |
| 500 | + var addMatchStationMark = function(i,station) { | |
| 501 | + transCoord(station); | |
| 502 | + var point = new BMap.Point(station.bd_lon, station.bd_lat); | |
| 503 | + var marker = new BMap.Marker(point); | |
| 504 | + marker.addEventListener('click', function () { | |
| 505 | + if(this) | |
| 506 | + $(".matchStationListSelect").select2("val", this.index); | |
| 507 | + // this.openInfoWindow(new BMap.InfoWindow( {offset: new BMap.Size(0, -13)})); | |
| 508 | + // this.setColor("blue"); | |
| 509 | + }); | |
| 510 | + | |
| 511 | + //mouseover | |
| 512 | + marker.addEventListener('mouseover', function () { | |
| 513 | + setTop(this); | |
| 514 | + // this.setColor("blue"); | |
| 515 | + }); | |
| 516 | + | |
| 517 | + //mouseout | |
| 518 | + marker.addEventListener('mouseout', function () { | |
| 519 | + // this.setColor("red"); | |
| 520 | + }); | |
| 521 | + | |
| 522 | + | |
| 523 | + marker.index = i; | |
| 524 | + marker.stationCode = station.stationCode; | |
| 525 | + marker.stationId = station.stationId; | |
| 526 | + marker.stationName = station.stationName; | |
| 527 | + marker.lineName = station.lineName; | |
| 528 | + | |
| 529 | + var label = new BMap.Label(i,{offset:new BMap.Size(i>9?2:6,2)}); | |
| 530 | + label.setStyle({border :"0", color : "white",backgroundColor:"rgba(0,0,0,0)"}); | |
| 531 | + marker.setLabel(label); | |
| 532 | + marker.setTitle(i+'.'+station.stationName+'-'+station.stationCode+'-'+ station.lineName); | |
| 533 | + map.addOverlay(marker); | |
| 534 | + matchStationMarkList.push(marker); | |
| 535 | + }; | |
| 536 | + | |
| 537 | + var pickMatchStationMark = function (i) { | |
| 538 | + var mark = matchStationMarkList[i]; | |
| 539 | + var wi = mark.stationName.length * 12 + 38; | |
| 540 | + var opts = { | |
| 541 | + // 信息窗口宽度 | |
| 542 | + width: (wi < 100 ? 100 : wi), | |
| 543 | + // 信息窗口高度 | |
| 544 | + height: 20, | |
| 545 | + // 信息窗位置偏移值。 | |
| 546 | + // offset: new BMap.Size(wi/2,-20), | |
| 547 | + //设置不允许信窗发送短息 | |
| 548 | + enableMessage: false, | |
| 549 | + //是否开启点击地图关闭信息窗口 | |
| 550 | + enableCloseOnClick: false, | |
| 551 | + // 是否开启信息窗口打开时地图自动移动(默认开启)。(自 1.1 新增) | |
| 552 | + enableAutoPan: false | |
| 553 | + }; | |
| 554 | + var infoWindow_target = new BMap.InfoWindow(i+'.'+mark.stationName+'-'+mark.stationCode+'-'+ mark.lineName, opts); | |
| 555 | + mark.openInfoWindow(infoWindow_target); | |
| 556 | + map.centerAndZoom(mark.point, 16); | |
| 557 | + // 置顶覆盖物 | |
| 558 | + setTop(mark); | |
| 559 | + // 把黄色添加的站点中心坐标改为mark的坐标点 | |
| 560 | + pickupPoint(mark); | |
| 561 | + }; | |
| 562 | + | |
| 563 | + var initMatchStationMarkList = function () { | |
| 564 | + matchStationMarkList = [0]; | |
| 565 | + }; | |
| 566 | + | |
| 492 | 567 | var dragMarkerDragEvent = function () { |
| 493 | 568 | if (editPolygon) { |
| 494 | 569 | if (!BMapLib.GeoUtils.isPointInPolygon(this.point, editPolygon)) |
| ... | ... | @@ -945,6 +1020,12 @@ var gb_ct_map = function () { |
| 945 | 1020 | focusRoad: focusRoad, |
| 946 | 1021 | editStationBuffer: editStationBuffer, |
| 947 | 1022 | insert_between_station_road: insert_between_station_road, |
| 1023 | + getMatchStationMarkList: function () { | |
| 1024 | + return matchStationMarkList; | |
| 1025 | + }, | |
| 1026 | + initMatchStationMarkList: initMatchStationMarkList, | |
| 1027 | + addMatchStationMark: addMatchStationMark, | |
| 1028 | + pickMatchStationMark: pickMatchStationMark, | |
| 948 | 1029 | updateStation: updateStation, |
| 949 | 1030 | exitEditBufferStatus: exitEditBufferStatus, |
| 950 | 1031 | changeShapeType: changeShapeType, |
| ... | ... | @@ -959,12 +1040,14 @@ var gb_ct_map = function () { |
| 959 | 1040 | updateDragRadius: updateDragRadius, |
| 960 | 1041 | closeInfoWin: closeInfoWin, |
| 961 | 1042 | showAddPointPanel: showAddPointPanel, |
| 1043 | + startSearchPoint: startSearchPoint, | |
| 962 | 1044 | resetMapStatus: function () { |
| 963 | 1045 | map_status = 0; |
| 964 | 1046 | clearOtherOverlay(); |
| 965 | 1047 | map.removeEventListener('dblclick', pickupPoint); |
| 966 | 1048 | map.enableDoubleClickZoom(); |
| 967 | 1049 | }, |
| 1050 | + // clearOtherOverlay: clearOtherOverlay, | |
| 968 | 1051 | reDrawStation: reDrawStation, |
| 969 | 1052 | reDrawRoad: reDrawRoad, |
| 970 | 1053 | edit_road: start_edit_road, | ... | ... |
src/main/resources/static/pages/base/geo_data_edit/js/station_route.js
| ... | ... | @@ -172,7 +172,7 @@ var gb_station_route = function () { |
| 172 | 172 | |
| 173 | 173 | //上一个站点的ID |
| 174 | 174 | var _cell = $(this).parents('.station_li_transient'); |
| 175 | - var $prev = prevs(_cell, 's_r_item') | |
| 175 | + var $prev = prevs(_cell, 's_r_item'); | |
| 176 | 176 | if($prev.length > 0) |
| 177 | 177 | addPrevId = $prev.data('id'); |
| 178 | 178 | else |
| ... | ... | @@ -181,6 +181,45 @@ var gb_station_route = function () { |
| 181 | 181 | $('.main_left_panel_m_layer').show(); |
| 182 | 182 | gb_ct_map.showAddPointPanel(name); |
| 183 | 183 | |
| 184 | + // 清楚多余覆盖物 | |
| 185 | + // gb_ct_map.resetMapStatus(); | |
| 186 | + var parm = {}; | |
| 187 | + parm.stationName = name; | |
| 188 | + parm.matchType = 'stationName'; | |
| 189 | + gb_common.$get('/_geo_data/matchStationList', parm, function (rs) { | |
| 190 | + if(rs.status == 'SUCCESS'){ | |
| 191 | + var len_ = rs.matchStationList.length,paramsD = new Array(); | |
| 192 | + gb_ct_map.initMatchStationMarkList(); | |
| 193 | + if(len_>0) { | |
| 194 | + paramsD.push({'id':'0','text':'说明:如果没有匹配的想要的站点可以用坐标查找附近点位'}); | |
| 195 | + var count = 1; | |
| 196 | + // 遍历. | |
| 197 | + $.each(rs.matchStationList, function(i, g){ | |
| 198 | + // 判断. | |
| 199 | + if(g.stationName!='' && g.stationName != null) { | |
| 200 | + // 添加拼音检索下拉框格式数据数组. | |
| 201 | + paramsD.push({'id':count, 'text':count+"."+g.stationName + '-' + g.stationCode + '-' +g.lineName}); | |
| 202 | + gb_ct_map.addMatchStationMark(count,g); | |
| 203 | + count++; | |
| 204 | + } | |
| 205 | + }); | |
| 206 | + } else | |
| 207 | + paramsD.push({'id':'0','text':'提示:没有匹配到站点请用坐标查找附近点位'}); | |
| 208 | + | |
| 209 | + $('.matchStationListSelect').empty(); | |
| 210 | + // 初始化上一个路段拼音检索下拉框. | |
| 211 | + initPinYinSelect2($('.matchStationListSelect'),paramsD,function(selector) { }); | |
| 212 | + $('.matchStationListSelect').on("change",function(e){ | |
| 213 | + gb_ct_map.pickMatchStationMark($('.matchStationListSelect').val()); | |
| 214 | + }); | |
| 215 | + setTimeout(function () { | |
| 216 | + // 选中第一个匹配的站点 | |
| 217 | + $(".matchStationListSelect").select2("val", 1); | |
| 218 | + },500); | |
| 219 | + } else { | |
| 220 | + } | |
| 221 | + }); | |
| 222 | + | |
| 184 | 223 | }); |
| 185 | 224 | //监听回车事件 |
| 186 | 225 | $('[name=stationName]', addCell).on('keydown', function (e) { | ... | ... |
src/main/resources/static/pages/base/geo_data_edit/js/submit.js
| ... | ... | @@ -81,6 +81,9 @@ var gb_data_submit = function () { |
| 81 | 81 | data.prevRouteId = gb_station_route.getAddPrevId(); |
| 82 | 82 | data.lng = data.gLonx; |
| 83 | 83 | data.lat = data.gLaty; |
| 84 | + data.addType = 'cite'; | |
| 85 | + data.citeStationCode = gb_ct_map.getMatchStationMarkList()[data.matchStationIndex].stationCode; | |
| 86 | + data.citeStationId = gb_ct_map.getMatchStationMarkList()[data.matchStationIndex].stationId; | |
| 84 | 87 | |
| 85 | 88 | delete data.gLonx; |
| 86 | 89 | delete data.gLaty; |
| ... | ... | @@ -90,13 +93,65 @@ var gb_data_submit = function () { |
| 90 | 93 | gb_station_route.addEnd(rs.list, rs.newStationRouteCode); |
| 91 | 94 | |
| 92 | 95 | hide_run_text(); |
| 93 | - UIkit.notification("修改成功!", {status: 'success'}); | |
| 96 | + UIkit.notification("添加成功!", {status: 'success'}); | |
| 94 | 97 | }); |
| 95 | 98 | },confirmRejected); |
| 96 | 99 | return false; |
| 97 | 100 | }); |
| 98 | 101 | |
| 99 | 102 | /** |
| 103 | + * 新增站点-坐标点查找匹配站点 | |
| 104 | + */ | |
| 105 | + $(document).on('click', '.add_station_search_point_wrap .buffer_edit_body button.pointSearch', function (e) { | |
| 106 | + var f = $(this).parents('form'); | |
| 107 | + var data = f.serializeJSON(); | |
| 108 | + var stationName = data.stationName, | |
| 109 | + point = {lon:data.gLonx,lat:data.gLaty}; | |
| 110 | + var parm = {}; | |
| 111 | + parm.gLonx = data.gLonx; | |
| 112 | + parm.gLaty = data.gLaty; | |
| 113 | + parm.matchType = 'point'; | |
| 114 | + | |
| 115 | + // 清楚地图上匹配到的站点 | |
| 116 | + gb_ct_map.resetMapStatus(); | |
| 117 | + // 进入新增点位 地图选点模式 | |
| 118 | + gb_ct_map.startSearchPoint(point, stationName); | |
| 119 | + gb_common.$get('/_geo_data/matchStationList', parm, function (rs) { | |
| 120 | + if(rs.status == 'SUCCESS'){ | |
| 121 | + var len_ = rs.matchStationList.length,paramsD = new Array(); | |
| 122 | + gb_ct_map.initMatchStationMarkList(); | |
| 123 | + if(len_>0) { | |
| 124 | + paramsD.push({'id':'0','text':'说明:如果没有匹配的想要的站点可以用坐标查找附近点位'}); | |
| 125 | + var count = 1; | |
| 126 | + // 遍历. | |
| 127 | + $.each(rs.matchStationList, function(i, g){ | |
| 128 | + // 判断. | |
| 129 | + if(g.stationName!='' && g.stationName != null) { | |
| 130 | + // 添加拼音检索下拉框格式数据数组. | |
| 131 | + paramsD.push({'id':count, 'text':count+"."+g.stationName + '-' + g.stationCode + '-' +g.lineName}); | |
| 132 | + gb_ct_map.addMatchStationMark(count,g); | |
| 133 | + count++; | |
| 134 | + } | |
| 135 | + }); | |
| 136 | + } else | |
| 137 | + paramsD.push({'id':'0','text':'提示:没有匹配到站点请用坐标查找附近点位'}); | |
| 138 | + | |
| 139 | + $('.matchStationListSelect').empty(); | |
| 140 | + // 初始化上一个路段拼音检索下拉框. | |
| 141 | + initPinYinSelect2($('.matchStationListSelect'),paramsD,function(selector) { }); | |
| 142 | + $('.matchStationListSelect').on("change",function(e){ | |
| 143 | + gb_ct_map.pickMatchStationMark($('.matchStationListSelect').val()); | |
| 144 | + }); | |
| 145 | + setTimeout(function () { | |
| 146 | + // 选中第一个匹配的站点 | |
| 147 | + $(".matchStationListSelect").select2("val", 1); | |
| 148 | + },200); | |
| 149 | + } else { | |
| 150 | + } | |
| 151 | + }); | |
| 152 | + }); | |
| 153 | + | |
| 154 | + /** | |
| 100 | 155 | * 新增路段提交 |
| 101 | 156 | */ |
| 102 | 157 | $(document).on('click', '.add_road_search_point_wrap .buffer_edit_body button.submit', function (e) { |
| ... | ... | @@ -169,7 +224,6 @@ var gb_data_submit = function () { |
| 169 | 224 | $(document).on('click', '#add_line_versions_modal ._submit', function (e) { |
| 170 | 225 | var f = $('form', '#add_line_versions_modal'); |
| 171 | 226 | var data = f.serializeJSON(); |
| 172 | - debugger; | |
| 173 | 227 | data.lineCode = g_line_code; |
| 174 | 228 | if(!data.startDate || !data.name){ |
| 175 | 229 | document.getElementsByClassName('reminder_span')[0].style.visibility = 'visible'; | ... | ... |
src/main/resources/static/pages/base/line/js/line-list-table.js
| ... | ... | @@ -338,7 +338,34 @@ |
| 338 | 338 | layer.msg('请选中一条线路!'); |
| 339 | 339 | return ; |
| 340 | 340 | }else { |
| 341 | - layer.open({ | |
| 341 | + var fileVersions = $('#fileVersionsInput').val(); | |
| 342 | + id = arrChk.data('id'); | |
| 343 | + lineName = arrChk.val(); | |
| 344 | + // 请求参数 | |
| 345 | + var params = {lineId:id};//, fileVersions:fileVersions | |
| 346 | + // 关闭弹出框 | |
| 347 | + // layer.close(index); | |
| 348 | + // 弹出正在加载层 | |
| 349 | + var index2 = layer.load(0); | |
| 350 | + /** 生成线路行单 @pararm:<params:请求参数> */ | |
| 351 | + $post('/stationroute/usingSingle',params,function(data) { | |
| 352 | + // 关闭弹出框 | |
| 353 | + layer.close(index2); | |
| 354 | + if(data.status=='SUCCESS') { | |
| 355 | + // 弹出添加成功提示消息 | |
| 356 | + layer.msg('生成线路【'+ lineName +'】线路文件成功!'); | |
| 357 | + }else if(data.status=='ERROR'){ | |
| 358 | + // 弹出添加成功提示消息 | |
| 359 | + layer.msg('生成线路【'+ lineName +'】线路文件失败!'); | |
| 360 | + }else if(data.status=='NOTDATA') { | |
| 361 | + // 弹出添加成功提示消息 | |
| 362 | + layer.msg('系统无线路【'+ lineName +'】的站点与路段信息!'); | |
| 363 | + }else if(data.status=='NOLinePlayType') { | |
| 364 | + // 弹出添加成功提示消息 | |
| 365 | + layer.msg('无法识别【'+ lineName +'】的线路规划类型,请设置为双向/环线!'); | |
| 366 | + } | |
| 367 | + }); | |
| 368 | + /*layer.open({ | |
| 342 | 369 | title: "线路文件版本号", |
| 343 | 370 | // skin:'layui-layer-rim', |
| 344 | 371 | area:['450px', 'auto'], |
| ... | ... | @@ -351,39 +378,13 @@ |
| 351 | 378 | +'</div>', |
| 352 | 379 | btn:['确定','取消'], |
| 353 | 380 | btn1: function (index,layero) { |
| 354 | - var fileVersions = $('#fileVersionsInput').val(); | |
| 355 | - id = arrChk.data('id'); | |
| 356 | - lineName = arrChk.val(); | |
| 357 | - // 请求参数 | |
| 358 | - var params = {lineId:id, fileVersions:fileVersions}; | |
| 359 | - // 关闭弹出框 | |
| 360 | - layer.close(index); | |
| 361 | - // 弹出正在加载层 | |
| 362 | - var index2 = layer.load(0); | |
| 363 | - /** 生成线路行单 @pararm:<params:请求参数> */ | |
| 364 | - $post('/stationroute/usingSingle',params,function(data) { | |
| 365 | - // 关闭弹出框 | |
| 366 | - layer.close(index2); | |
| 367 | - if(data.status=='SUCCESS') { | |
| 368 | - // 弹出添加成功提示消息 | |
| 369 | - layer.msg('生成线路【'+ lineName +'】线路文件成功!'); | |
| 370 | - }else if(data.status=='ERROR'){ | |
| 371 | - // 弹出添加成功提示消息 | |
| 372 | - layer.msg('生成线路【'+ lineName +'】线路文件失败!'); | |
| 373 | - }else if(data.status=='NOTDATA') { | |
| 374 | - // 弹出添加成功提示消息 | |
| 375 | - layer.msg('系统无线路【'+ lineName +'】的站点与路段信息!'); | |
| 376 | - }else if(data.status=='NOLinePlayType') { | |
| 377 | - // 弹出添加成功提示消息 | |
| 378 | - layer.msg('无法识别【'+ lineName +'】的线路规划类型,请设置为双向/环线!'); | |
| 379 | - } | |
| 380 | - }); | |
| 381 | + | |
| 381 | 382 | }, |
| 382 | 383 | btn2:function (index,layero) { |
| 383 | 384 | layer.close(index); |
| 384 | 385 | } |
| 385 | 386 | |
| 386 | - }); | |
| 387 | + });*/ | |
| 387 | 388 | } |
| 388 | 389 | }); |
| 389 | 390 | /** 生成路线(路段和站点) */ | ... | ... |