|
@@ -57,8 +57,15 @@ public class ConvertToVision {
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
- private JSONArray createPanoInfos(String sceneCode, JSONArray panoInfos, ControlPointEntity dto) {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化vision数据
|
|
|
+ * @param sceneCode
|
|
|
+ * @param panoInfos
|
|
|
+ * @param dto
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private JSONArray createVisionToFilter(String sceneCode, JSONArray panoInfos, ControlPointEntity dto) {
|
|
|
|
|
|
JSONArray laserPanos = new JSONArray();
|
|
|
for(int i=0;i<panoInfos.size();++i) {
|
|
@@ -67,12 +74,11 @@ public class ConvertToVision {
|
|
|
int id = item.getInt("id");
|
|
|
laserPano.put("camera_head_id", 12);
|
|
|
laserPano.put("dataset_id", 1);
|
|
|
- laserPano.put("dataset_orientation", null);
|
|
|
laserPano.put("file_path", "data/chunk1");
|
|
|
laserPano.put("hidden", false);
|
|
|
laserPano.put("id", id);
|
|
|
- laserPano.put("site_model_entity_id", 11);
|
|
|
-
|
|
|
+ laserPano.put("site_model_entity_id", 12);
|
|
|
+
|
|
|
//JSONObject pose = item.getJSONObject("pose");
|
|
|
JSONObject position2 = item.getJSONObject("puck");
|
|
|
JSONObject position1 = item.getJSONObject("translation");
|
|
@@ -95,7 +101,7 @@ public class ConvertToVision {
|
|
|
floor_location[1] = _floor_location[1];
|
|
|
laserPano.put("location", location);
|
|
|
laserPano.put("floor_location", floor_location);
|
|
|
-
|
|
|
+
|
|
|
//���
|
|
|
double[] dataset_location = new double[3];
|
|
|
dataset_location[0] = position2.getDouble("x");
|
|
@@ -109,15 +115,19 @@ public class ConvertToVision {
|
|
|
|
|
|
laserPano.put("dataset_location", dataset_location);
|
|
|
laserPano.put("dataset_floor_location", dataset_floor_location);
|
|
|
-
|
|
|
+
|
|
|
JSONObject rotation = item.getJSONObject("rotation");
|
|
|
double[] quaternation = new double[4];
|
|
|
quaternation[0] = rotation.getDouble("w");
|
|
|
quaternation[1] = rotation.getDouble("x");
|
|
|
quaternation[2] = rotation.getDouble("y");
|
|
|
quaternation[3] = rotation.getDouble("z");
|
|
|
+
|
|
|
laserPano.put("orientation", quaternation);
|
|
|
-
|
|
|
+ // 2021-08-11
|
|
|
+ laserPano.put("dataset_orientation", quaternation);
|
|
|
+ laserPano.put("dataset_floor_orientation", quaternation);
|
|
|
+
|
|
|
String fileId = String.valueOf(id);
|
|
|
while(fileId.length()<5) {
|
|
|
fileId = "0"+fileId;
|
|
@@ -130,10 +140,7 @@ public class ConvertToVision {
|
|
|
//保存初始点的gis坐标
|
|
|
// _location 存入数据库
|
|
|
SpecialPointEntity pointEntity = new SpecialPointEntity();
|
|
|
- // 纬度 113
|
|
|
-// pointEntity.setLat(_location[0]);
|
|
|
-// // 经度 22
|
|
|
-// pointEntity.setLon(_location[1]);
|
|
|
+ // 经度 22 纬度 113
|
|
|
Double[] edit = {_location[0], _location[1]};
|
|
|
pointEntity.setPoi(edit);
|
|
|
pointEntity.setSceneCode(sceneCode);
|
|
@@ -148,6 +155,89 @@ public class ConvertToVision {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ private static JSONArray createVisionToFilter(JSONArray panoInfos) {
|
|
|
+
|
|
|
+ JSONArray laserPanos = new JSONArray();
|
|
|
+ for(int i=0;i<panoInfos.size();++i) {
|
|
|
+ JSONObject item = panoInfos.getJSONObject(i);
|
|
|
+ JSONObject laserPano = new JSONObject();
|
|
|
+ int id = item.getInt("id");
|
|
|
+ laserPano.put("camera_head_id", 12);
|
|
|
+ laserPano.put("dataset_id", 1);
|
|
|
+ laserPano.put("file_path", "data/chunk1");
|
|
|
+ laserPano.put("hidden", false);
|
|
|
+ laserPano.put("id", id);
|
|
|
+ laserPano.put("site_model_entity_id", 12);
|
|
|
+
|
|
|
+ //JSONObject pose = item.getJSONObject("pose");
|
|
|
+ JSONObject position2 = item.getJSONObject("puck");
|
|
|
+ JSONObject position1 = item.getJSONObject("translation");
|
|
|
+ //���
|
|
|
+ double[] location = new double[3];
|
|
|
+ location[0] = position1.getDouble("x");
|
|
|
+ location[1] = position1.getDouble("y");
|
|
|
+ location[2] = position1.getDouble("z");
|
|
|
+ //����
|
|
|
+ double[] floor_location = new double[3];
|
|
|
+ floor_location[0] = position2.getDouble("x");
|
|
|
+ floor_location[1] = position2.getDouble("y");
|
|
|
+ floor_location[2] = position2.getDouble("z");
|
|
|
+ //gis����
|
|
|
+ double[] _location = TransformGPS.convert(location);
|
|
|
+ double[] _floor_location = TransformGPS.convert(floor_location);
|
|
|
+ location[0] = _location[0];
|
|
|
+ location[1] = _location[1];
|
|
|
+ floor_location[0] = _floor_location[0];
|
|
|
+ floor_location[1] = _floor_location[1];
|
|
|
+ laserPano.put("location", location);
|
|
|
+ laserPano.put("floor_location", floor_location);
|
|
|
+
|
|
|
+ //���
|
|
|
+ double[] dataset_location = new double[3];
|
|
|
+ dataset_location[0] = position2.getDouble("x");
|
|
|
+ dataset_location[1] = position2.getDouble("y");
|
|
|
+ dataset_location[2] = position1.getDouble("z");
|
|
|
+ //����
|
|
|
+ double[] dataset_floor_location = new double[3];
|
|
|
+ dataset_floor_location[0] = position2.getDouble("x");
|
|
|
+ dataset_floor_location[1] = position2.getDouble("y");
|
|
|
+ dataset_floor_location[2] = position2.getDouble("z");
|
|
|
+
|
|
|
+ laserPano.put("dataset_location", dataset_location);
|
|
|
+ laserPano.put("dataset_floor_location", dataset_floor_location);
|
|
|
+
|
|
|
+ JSONObject rotation = item.getJSONObject("rotation");
|
|
|
+ double[] quaternation = new double[4];
|
|
|
+ quaternation[0] = rotation.getDouble("w");
|
|
|
+ quaternation[1] = rotation.getDouble("x");
|
|
|
+ quaternation[2] = rotation.getDouble("y");
|
|
|
+ quaternation[3] = rotation.getDouble("z");
|
|
|
+
|
|
|
+ laserPano.put("orientation", quaternation);
|
|
|
+ // 2021-08-11
|
|
|
+ laserPano.put("dataset_orientation", quaternation);
|
|
|
+ laserPano.put("dataset_floor_orientation", quaternation);
|
|
|
+
|
|
|
+ String fileId = String.valueOf(id);
|
|
|
+ while(fileId.length()<5) {
|
|
|
+ fileId = "0"+fileId;
|
|
|
+ }
|
|
|
+ laserPano.put("file_id", fileId);
|
|
|
+
|
|
|
+ laserPanos.add(laserPano);
|
|
|
+ //firstView
|
|
|
+ if(id == 0) {
|
|
|
+ //保存初始点的gis坐标
|
|
|
+ // _location 存入数据库
|
|
|
+// // 经度 22 纬度 113
|
|
|
+ Double[] edit = {_location[0], _location[1]};
|
|
|
+
|
|
|
+ log.info("firstView保存成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return laserPanos;
|
|
|
+ }
|
|
|
+
|
|
|
public JSONArray createFilter(String sceneCode, String path, ControlPointEntity dto){
|
|
|
if (!cn.hutool.core.io.FileUtil.isFile(path)) {
|
|
|
log.error("文件路径不存在: {}", path);
|
|
@@ -155,23 +245,29 @@ public class ConvertToVision {
|
|
|
}
|
|
|
try {
|
|
|
JSONArray panoInfos = readVisionTxt(path);
|
|
|
- return createPanoInfos(sceneCode, panoInfos, dto);
|
|
|
+ return createVisionToFilter(sceneCode, panoInfos, dto);
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
-// public static void main(String[] args) {
|
|
|
-// String inputFilePath = "F:\\test\\project\\age_laser\\vision-indoor.txt";
|
|
|
-// try {
|
|
|
-// JSONArray panoInfos = readVisionTxt(inputFilePath);
|
|
|
-// createPanoInfos("111", panoInfos);
|
|
|
-// }
|
|
|
-// catch(Exception e){
|
|
|
-// e.printStackTrace();
|
|
|
-// }
|
|
|
-// }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 测试热点- vision, filter
|
|
|
+ * @param args
|
|
|
+ */
|
|
|
+ public static void main(String[] args) {
|
|
|
+ String inputFilePath = "F:\\test\\project\\age_laser\\laserData\\vision.txt";
|
|
|
+ try {
|
|
|
+ JSONArray panoInfos = readVisionTxt(inputFilePath);
|
|
|
+ JSONArray jsonArray = createVisionToFilter(panoInfos);
|
|
|
+ System.out.println();
|
|
|
+ }
|
|
|
+ catch(Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 测试控制点, 还有filter热点
|