|
@@ -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
|