Explorar el Código

api/route 输入参数由本地坐标改经纬度

wuweihao hace 3 años
padre
commit
cc005f1f2b

+ 3 - 3
laser/src/main/java/com/fdkankan/indoor/core/service/impl/InitServiceImpl.java

@@ -279,7 +279,7 @@ public class InitServiceImpl implements InitService {
         tiledMapService.init(sceneCode, from);
 
         // Route数据重新计算, 并保存数据库
-        routeService.updateRouteByControlPointCalculate(dataSet.getLocation(), dataSet.getOrientation(), sceneCode, calculateEntity, laserDataPath);
+//        routeService.updateRouteByControlPointCalculate(dataSet.getLocation(), dataSet.getOrientation(), sceneCode, calculateEntity, laserDataPath);
 
 
         // step8 目录pano、pano_depth、webcloud上传oss, 初始化合并场景码跟原来的一样
@@ -328,7 +328,7 @@ public class InitServiceImpl implements InitService {
         siteService.remove(sceneCode);
         tiledMapService.remove(sceneCode);
         // 2021-09-15
-        routeService.remove(sceneCode);
+//        routeService.remove(sceneCode);
 
 
         log.info("删除initDataStep2数据完成");
@@ -563,7 +563,7 @@ public class InitServiceImpl implements InitService {
         DataSetPo dataSet = createDataSet(sceneCode, laserDataPath, calculateEntity.getRotation2(), from);
 
         // Route数据重新计算, 并保存数据库
-        routeService.updateRouteByControlPointCalculate(dataSet.getLocation(), dataSet.getOrientation(), sceneCode, calculateEntity, laserDataPath);
+//        routeService.updateRouteByControlPointCalculate(dataSet.getLocation(), dataSet.getOrientation(), sceneCode, calculateEntity, laserDataPath);
 
 
 

+ 38 - 4
laser/src/main/java/com/fdkankan/indoor/core/service/impl/RouteServiceImpl.java

@@ -7,6 +7,7 @@ import com.fdkankan.indoor.base.constant.ConfigConstant;
 import com.fdkankan.indoor.base.constant.MsgCode;
 import com.fdkankan.indoor.base.convert.FixRouteMap;
 import com.fdkankan.indoor.base.convert.GetRoute;
+import com.fdkankan.indoor.base.convert.GisCoordinateUtil;
 import com.fdkankan.indoor.base.exception.BaseRuntimeException;
 import com.fdkankan.indoor.base.util.Result;
 import com.fdkankan.indoor.core.entity.ControlPointCalculateEntity;
@@ -58,9 +59,7 @@ public class RouteServiceImpl extends IBaseServiceImpl implements RouteService {
     public Result getRoute(String sceneCode, RouteInputDto param) {
         List<String> data = getDataBySceneCode(sceneCode);
 
-        // 查询控制点
-//        ControlPointEntity controlPointEntity = controlPointService.findById(sceneCode);
-
+        // 查询控制点计算
         ControlPointCalculateEntity controlPointEntity = controlPointCalculateService.findById(sceneCode);
         if (controlPointEntity == null) {
             String msg = "控制点计算表结果不存在,尝试重算解决";
@@ -68,8 +67,13 @@ public class RouteServiceImpl extends IBaseServiceImpl implements RouteService {
             return Result.failure(msg);
         }
 
+        // 2021-09-15 输入经纬度转本地坐标
+        RouteInputDto locationDto = convertGisToLocation(param, controlPointEntity);
+
         // route数据:头尾数据是没有id值的,其他都有
-        JSONArray route = GetRoute.getRoute(data, param, controlPointEntity);
+//        JSONArray route = GetRoute.getRoute(data, param, controlPointEntity);
+        JSONArray route = GetRoute.getRoute(data, locationDto, controlPointEntity);
+
 
         // 2021-08-12 测试用
 //        testRote(route, data, sceneCode);
@@ -78,6 +82,36 @@ public class RouteServiceImpl extends IBaseServiceImpl implements RouteService {
     }
 
     /**
+     * 经度:lon:113 [0] , 纬度:lat:22 [1]
+     * 输入参数是经纬度 转 本地坐标
+     * @param param
+     */
+    private RouteInputDto convertGisToLocation(RouteInputDto param, ControlPointCalculateEntity pointDto){
+
+        Double destination_longitude = param.getDestination_longitude();
+        Double destination_latitude = param.getDestination_latitude();
+        double[] des = GisCoordinateUtil.transformBLToLocation(destination_longitude, destination_latitude, pointDto);
+
+
+        Double source_longitude = param.getSource_longitude();
+        Double source_latitude = param.getSource_latitude();
+        double[] sou = GisCoordinateUtil.transformBLToLocation(source_longitude, source_latitude, pointDto);
+
+        RouteInputDto dto = new RouteInputDto();
+        dto.setDestination_longitude(des[0]);
+        dto.setDestination_latitude(des[1]);
+        dto.setDestination_z(param.getDestination_z());
+
+        dto.setSource_longitude(sou[0]);
+        dto.setSource_latitude(sou[1]);
+        dto.setSource_z(param.getSource_z());
+        log.info("转换后的坐标: {}", dto.toString());
+        return dto;
+
+    }
+
+
+    /**
      * 2021-08-12
      * 测试用
      * @param route