|
@@ -184,87 +184,109 @@ public class TGdbhGdServiceImpl implements ITGdbhGdService {
|
|
|
|
|
|
|
|
|
private void writeFpf(TGdbhFlightBatchDto tGdbhFlightBatchDto, List<TGdbhFlightDto> flightDtoList, String filePathString) {
|
|
|
- String speed = "10";
|
|
|
- String heading = "0.000001";
|
|
|
- String tilt = "0.100000000000000006";
|
|
|
- if (null != tGdbhFlightBatchDto) {
|
|
|
- if (StringUtils.isNotEmpty(tGdbhFlightBatchDto.getTilt())) {
|
|
|
- tilt = tGdbhFlightBatchDto.getTilt();
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(tGdbhFlightBatchDto.getHeading())) {
|
|
|
- heading = tGdbhFlightBatchDto.getHeading();
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(tGdbhFlightBatchDto.getSpeed())) {
|
|
|
- speed = tGdbhFlightBatchDto.getSpeed();
|
|
|
- }
|
|
|
- }
|
|
|
File filePath = new File(filePathString);
|
|
|
- try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
|
|
|
- writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("<SceneRoute xmlns=\"http://www.supermap.com.cn/ugc60\">");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("<route name=\"飞行路线_1\" speed=\"" + speed + "\" lineType=\"0\" showroutestop=\"True\" showrouteline=\"True\" altitudefree=\"False\" headingfree=\"False\" tiltfree=\"False\" flycircle=\"False\" alongline=\"False\">");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("<style>");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("<geostyle3d>");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("<linecolor>RGBA(147,112,219,100)</linecolor>");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("<linewidth>2</linewidth>");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("<altitudeMode>Absolute</altitudeMode>");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("<bottomAltitude>0.00</bottomAltitude>");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("</geostyle3d>");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- writer.write("</style>");
|
|
|
- writer.newLine(); // 写入换行
|
|
|
- int len = flightDtoList.size();
|
|
|
- boolean qiehuan = false;
|
|
|
- String writetilt = tilt;
|
|
|
- String writeheading = heading;
|
|
|
+ if ("0".equals(tGdbhFlightBatchDto.getRefresh()) || (!filePath.exists())) {
|
|
|
+ String speed = "10";
|
|
|
+ String heading = "0.000001";
|
|
|
+ String tilt = "0.100000000000000006";
|
|
|
+ if (null != tGdbhFlightBatchDto) {
|
|
|
+ if (StringUtils.isNotEmpty(tGdbhFlightBatchDto.getTilt())) {
|
|
|
+ tilt = tGdbhFlightBatchDto.getTilt();
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(tGdbhFlightBatchDto.getHeading())) {
|
|
|
+ heading = tGdbhFlightBatchDto.getHeading();
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(tGdbhFlightBatchDto.getSpeed())) {
|
|
|
+ speed = tGdbhFlightBatchDto.getSpeed();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- TGdbhFlightDto dto_0 = flightDtoList.get(0);
|
|
|
- TGdbhFlightDto dto_1 = flightDtoList.get(1);
|
|
|
- Double dr_mr = Double.valueOf(tGdbhFlightMapper.stAzimuth(dto_0.getLongitude(), dto_0.getLatitude(), dto_1.getLongitude(), dto_1.getLatitude()));
|
|
|
+ try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
|
|
|
+ writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("<SceneRoute xmlns=\"http://www.supermap.com.cn/ugc60\">");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("<route name=\"飞行路线_1\" speed=\"" + speed + "\" lineType=\"0\" showroutestop=\"True\" showrouteline=\"True\" altitudefree=\"False\" headingfree=\"False\" tiltfree=\"False\" flycircle=\"False\" alongline=\"False\">");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("<style>");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("<geostyle3d>");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("<linecolor>RGBA(147,112,219,100)</linecolor>");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("<linewidth>2</linewidth>");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("<altitudeMode>Absolute</altitudeMode>");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("<bottomAltitude>0.00</bottomAltitude>");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("</geostyle3d>");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ writer.write("</style>");
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
+ int len = flightDtoList.size();
|
|
|
+ boolean qiehuan = false;
|
|
|
+ String writetilt = tilt;
|
|
|
+ String writeheading = heading;
|
|
|
+
|
|
|
+ TGdbhFlightDto dto_0 = flightDtoList.get(0);
|
|
|
+ TGdbhFlightDto dto_1 = flightDtoList.get(1);
|
|
|
+ Double dr_mr = Double.valueOf(tGdbhFlightMapper.stAzimuth(dto_0.getLongitude(), dto_0.getLatitude(), dto_1.getLongitude(), dto_1.getLatitude()));
|
|
|
+
|
|
|
+ for (int i = 0; i < flightDtoList.size(); i++) {
|
|
|
+ TGdbhFlightDto dto = flightDtoList.get(i);
|
|
|
+ if (i > 0 && i + 1 < len) {
|
|
|
+ TGdbhFlightDto dto_hou = flightDtoList.get(i + 1);
|
|
|
+ Double dr_hou = Double.valueOf(tGdbhFlightMapper.stAzimuth(dto.getLongitude(), dto.getLatitude(), dto_hou.getLongitude(), dto_hou.getLatitude()));
|
|
|
+ Double dr_hou4 = dr_hou;
|
|
|
+ if (i + 5 <= len) {
|
|
|
+ TGdbhFlightDto dto_hou2 = flightDtoList.get(i + 2);
|
|
|
+ TGdbhFlightDto dto_hou3 = flightDtoList.get(i + 3);
|
|
|
+ dr_hou4 = Double.valueOf(tGdbhFlightMapper.stAzimuth(dto_hou2.getLongitude(), dto_hou2.getLatitude(), dto_hou3.getLongitude(), dto_hou3.getLatitude()));
|
|
|
+ if (dr_hou4 <= 10) {
|
|
|
+ TGdbhFlightDto dto_hou4 = flightDtoList.get(i + 4);
|
|
|
+ dr_hou4 = Double.valueOf(tGdbhFlightMapper.stAzimuth(dto_hou3.getLongitude(), dto_hou3.getLatitude(), dto_hou4.getLongitude(), dto_hou4.getLatitude()));
|
|
|
+ }
|
|
|
+ } else if (i + 5 > len) {
|
|
|
+ dr_hou4 = dr_hou + 15;
|
|
|
+ }
|
|
|
|
|
|
- for (int i = 0; i < flightDtoList.size(); i++) {
|
|
|
- TGdbhFlightDto dto = flightDtoList.get(i);
|
|
|
- if (i > 0 && i + 1 < len) {
|
|
|
- TGdbhFlightDto dto_hou = flightDtoList.get(i + 1);
|
|
|
- Double dr_hou = Double.valueOf(tGdbhFlightMapper.stAzimuth(dto.getLongitude(), dto.getLatitude(), dto_hou.getLongitude(), dto_hou.getLatitude()));
|
|
|
- Double dr = Math.abs(dr_mr - dr_hou);
|
|
|
- if (dr > 10 && dr < 160) {
|
|
|
- writetilt = "0.100000000000000006";
|
|
|
- writeheading = heading;
|
|
|
- } else if (dr > 160) {
|
|
|
+ Double dr4 = Math.abs(dr_hou - dr_hou4);
|
|
|
+ if (dr4 > 10) {
|
|
|
+ writetilt = "0.100000000000000006";
|
|
|
+ writeheading = heading;
|
|
|
+ } else {
|
|
|
+ Double dr = Math.abs(dr_mr - dr_hou);
|
|
|
+ if (dr > 10 && dr < 160) {
|
|
|
+ writetilt = "0.100000000000000006";
|
|
|
+ writeheading = heading;
|
|
|
+ } else if (dr > 160) {
|
|
|
// writetilt = (360 - Double.parseDouble(tilt)) + "";
|
|
|
- writeheading = "180.0";
|
|
|
- writetilt = tilt;
|
|
|
- } else {
|
|
|
- writetilt = tilt;
|
|
|
- writeheading = heading;
|
|
|
+ writeheading = "180.0";
|
|
|
+ writetilt = tilt;
|
|
|
+ } else {
|
|
|
+ writetilt = tilt;
|
|
|
+ writeheading = heading;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- String height = dto.getHeight();
|
|
|
- if (null != tGdbhFlightBatchDto) {
|
|
|
- if (StringUtils.isNotEmpty(tGdbhFlightBatchDto.getHeight())) {
|
|
|
- height = tGdbhFlightBatchDto.getHeight();
|
|
|
+ String height = dto.getHeight();
|
|
|
+ if (null != tGdbhFlightBatchDto) {
|
|
|
+ if (StringUtils.isNotEmpty(tGdbhFlightBatchDto.getHeight())) {
|
|
|
+ height = tGdbhFlightBatchDto.getHeight();
|
|
|
+ }
|
|
|
}
|
|
|
+ String fpf = "<routestop name=\"" + dto.getPhoto_name() + "\" speed=\"0\" excluded=\"False\" viewType=\"camera\">" + "<camera>" + "<longitude>" + dto.getLongitude() + "</longitude>" + "<latitude>" + dto.getLatitude() + "</latitude>" + "<altitude>" + height + "</altitude>" + "<heading>" + writeheading + "</heading>" + "<tilt>" + writetilt + "</tilt>" + "<altitudeMode>Absolute</altitudeMode>" + "</camera>" + "<style>" + "<geostyle3d>" + "<icon/>" + "<markersize>4.8</markersize>" + "<markericonscale>1</markericonscale>" + "<markercolor>RGBA(255,255,255,255)</markercolor>" + "</geostyle3d>" + "</style>" + "<setting>" + "<turnTime>1.5</turnTime>" + "<turnSlowly>False</turnSlowly>" + "<stopPlayMode>StopPause</stopPlayMode>" + "<autoPlay>False</autoPlay>" + "<pauseTime>0</pauseTime>" + "<angularSpeed>1</angularSpeed>" + "</setting>" + "</routestop>";
|
|
|
+ writer.write(fpf);
|
|
|
+ writer.newLine(); // 写入换行
|
|
|
}
|
|
|
- String fpf = "<routestop name=\"" + dto.getPhoto_name() + "\" speed=\"0\" excluded=\"False\" viewType=\"camera\">" + "<camera>" + "<longitude>" + dto.getLongitude() + "</longitude>" + "<latitude>" + dto.getLatitude() + "</latitude>" + "<altitude>" + height + "</altitude>" + "<heading>" + writeheading + "</heading>" + "<tilt>" + writetilt + "</tilt>" + "<altitudeMode>Absolute</altitudeMode>" + "</camera>" + "<style>" + "<geostyle3d>" + "<icon/>" + "<markersize>4.8</markersize>" + "<markericonscale>1</markericonscale>" + "<markercolor>RGBA(255,255,255,255)</markercolor>" + "</geostyle3d>" + "</style>" + "<setting>" + "<turnTime>1.5</turnTime>" + "<turnSlowly>False</turnSlowly>" + "<stopPlayMode>StopPause</stopPlayMode>" + "<autoPlay>False</autoPlay>" + "<pauseTime>0</pauseTime>" + "<angularSpeed>1</angularSpeed>" + "</setting>" + "</routestop>";
|
|
|
- writer.write(fpf);
|
|
|
- writer.newLine(); // 写入换行
|
|
|
+ writer.write("</route>");
|
|
|
+ writer.newLine(); // 写入换
|
|
|
+ writer.write("</SceneRoute>");
|
|
|
+ System.out.println("File written successfully!");
|
|
|
+ } catch (IOException e) {
|
|
|
+ System.err.println("Error writing file: " + e.getMessage());
|
|
|
}
|
|
|
- writer.write("</route>");
|
|
|
- writer.newLine(); // 写入换
|
|
|
- writer.write("</SceneRoute>");
|
|
|
- System.out.println("File written successfully!");
|
|
|
- } catch (IOException e) {
|
|
|
- System.err.println("Error writing file: " + e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|