Pārlūkot izejas kodu

修改坐标、dataSet 根据id查询返回的是对象

wuweihao 4 gadi atpakaļ
vecāks
revīzija
6226608aae

+ 10 - 0
laser/pom.xml

@@ -177,6 +177,16 @@
 			<version>${aliyun.oss.version}</version>
 		</dependency>
 
+
+		<!-- https://mvnrepository.com/artifact/org.locationtech.proj4j/proj4j -->
+		<!-- 坐标转换 -->
+		<dependency>
+			<groupId>org.locationtech.proj4j</groupId>
+			<artifactId>proj4j</artifactId>
+			<version>1.1.3</version>
+		</dependency>
+
+
 	</dependencies>
 
 	<build>

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/base/convert/ConvertToPanoInfoFor4dkk.java

@@ -20,7 +20,7 @@ import org.springframework.stereotype.Component;
  */
 @Slf4j
 @Component
-public class ConvertToPanoInfoFor4dkk {
+public class ConvertToVision {
 //	public static String inputFilePath = "F:\\2021\\navvis\\���Ի���\\test3(v2.7.3)\\vision-indoor.txt";
 
 	@Autowired

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/base/convert/GetRoute_1.java

@@ -13,7 +13,7 @@ import com.fdkankan.indoor.core.entity.dto.RouteInputDto;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 
-public class GetRoute_1
+public class GetRoute
 {
 
 	/*

+ 44 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/GisCoordinateTransform.java

@@ -1,5 +1,7 @@
 package com.fdkankan.indoor.base.convert;
 
+import org.locationtech.proj4j.*;
+
 /**
  * 提供常国家用坐标系转换方法
  */
@@ -11,6 +13,48 @@ public  class GisCoordinateTransform {
     private  static double WGS84_a=6378137.0;
     private  static double WGS84_f=1/298.2572236;
     private static  double  earthRadius= 6378137;//地球半径
+
+
+
+    /**
+     * proj4的常用坐标转换方法
+     * @param x   经度或者x轴
+     * @param y   纬度或者y轴
+     * @param csName1  坐标系代码   原始数据坐标系 "EPSG:4326";  "EPSG:3857";
+     * @param csName2   坐标系代码  结果数据坐标系
+     * @return
+     */
+    public static double[] convertByProj4(double x,double y,String csName1,String csName2) {
+        CoordinateTransformFactory ctFactory = new CoordinateTransformFactory();
+        CRSFactory csFactory = new CRSFactory();
+
+        CoordinateReferenceSystem crs1 = csFactory.createFromName(csName1);
+        CoordinateReferenceSystem crs2 = csFactory.createFromName(csName2);
+
+        CoordinateTransform trans = ctFactory.createTransform(crs1, crs2);
+
+        ProjCoordinate p1 = new ProjCoordinate();
+        ProjCoordinate p2 = new ProjCoordinate();
+        p1.x = x;
+        p1.y = y;
+
+        ProjCoordinate p= trans.transform(p1, p2);
+
+        double[] xy=new double[2];
+        xy[0]=p.x;
+        xy[1]=p.y;
+        return  xy;
+    }
+
+
+
+
+
+
+
+
+
+
     /**
      * 求三度分带的中央经线
      * @param longitude

+ 11 - 3
laser/src/main/java/com/fdkankan/indoor/base/convert/GisCoordinateUtil.java

@@ -13,6 +13,10 @@ public class GisCoordinateUtil {
     private  static  double locationplaneVector[];//本地向量
     private  static  double geographicplaneVector[];//地理平面坐标系向量
     private  static  double centerLon;//中央经度
+
+
+    private final static String coordCode4326 = "EPSG:4326";
+    private final static String coordCode3857 = "EPSG:3857";
     /**
      * 解析控制点文件
      * @param  controlPointsFileUrl 控制点文件路径
@@ -89,8 +93,9 @@ public class GisCoordinateUtil {
 //    }
 
     public  static  void calculateVariable (double alon,double alat,double aX,double aY,double blon,double blat,double bX,double bY){
-        double[] a= GisCoordinateTransform.WGS84_4326To3857(alon,alat);
-        double[] b= GisCoordinateTransform.WGS84_4326To3857(blon,blat);
+
+        double[] a= GisCoordinateTransform.convertByProj4(alon,alat, coordCode4326, coordCode3857);
+        double[] b= GisCoordinateTransform.convertByProj4(blon,blat, coordCode4326, coordCode3857);
         dx=a[0]-aX;
         dy=a[1]-aY;
         locationplaneVector=new double[2];
@@ -128,6 +133,9 @@ public class GisCoordinateUtil {
         double y=resultY+dy;
 
 //        return GisCoordinateTransform.Convert2000GaussToBL(x,y,centerLon);
-        return GisCoordinateTransform.WGS84_3857To4326(x,y);
+        return GisCoordinateTransform.convertByProj4(x,y, coordCode3857, coordCode4326);
     }
+
+
+
 }

+ 6 - 4
laser/src/main/java/com/fdkankan/indoor/core/service/impl/DataSetServiceImpl.java

@@ -96,13 +96,15 @@ public class DataSetServiceImpl extends IBaseServiceImpl implements DataSetServi
 
     @Override
     public Result findByDataSetId(String sceneCode, Integer dataSetId) {
-        List<DataSetPo> data = getDataBySceneCode(sceneCode);
+        // 需要处理登录问题
+        DataSetEntity entity = auth(sceneCode);
+        List<DataSetPo> data = entity.getData();
         if (data.size() > 0){
             data = data.stream().filter(p -> dataSetId.equals(p.getId())).collect(Collectors.toList());
-            // 处理登录问题
-            data = changeSecurityUnLoginList(data);
+            return Result.success(data.get(0));
         }
-        return Result.success(data);
+
+        return Result.success();
     }
 
 

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

@@ -27,8 +27,6 @@ import org.springframework.stereotype.Service;
 import java.io.IOException;
 import java.time.LocalDateTime;
 import java.util.*;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * Created by owen on 2021/7/28 0028 9:10
@@ -41,7 +39,7 @@ public class InitServiceImpl implements InitService {
     InitMapper initMapper;
 
     @Autowired
-    ConvertToPanoInfoFor4dkk convertToPanoInfoFor4dkk;
+    ConvertToVision convertToPanoInfoFor4dkk;
 
     @Autowired
     FilterService filterService;

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

@@ -1,14 +1,13 @@
 package com.fdkankan.indoor.core.service.impl;
 
 import com.fdkankan.indoor.base.constant.MsgCode;
-import com.fdkankan.indoor.base.convert.GetRoute_1;
+import com.fdkankan.indoor.base.convert.GetRoute;
 import com.fdkankan.indoor.base.exception.BaseRuntimeException;
 import com.fdkankan.indoor.base.util.Result;
 import com.fdkankan.indoor.core.entity.ControlPointEntity;
 import com.fdkankan.indoor.core.entity.dto.RouteInputDto;
 import com.fdkankan.indoor.core.entity.RouteEntity;
 import com.fdkankan.indoor.core.mapper.RouteMapper;
-import com.fdkankan.indoor.core.service.ConfigService;
 import com.fdkankan.indoor.core.service.ControlPointService;
 import com.fdkankan.indoor.core.service.RouteService;
 import lombok.extern.slf4j.Slf4j;
@@ -43,7 +42,7 @@ public class RouteServiceImpl implements RouteService {
 
         // 查询控制点
         ControlPointEntity controlPointEntity = controlPointService.findById(sceneCode);
-        JSONArray route = GetRoute_1.getRoute(data, param, controlPointEntity);
+        JSONArray route = GetRoute.getRoute(data, param, controlPointEntity);
         return Result.success(route);
     }