|
@@ -1,13 +1,9 @@
|
|
|
package com.its.bis.service;
|
|
|
|
|
|
-import com.its.app.utils.Elapsed;
|
|
|
import com.its.bis.api.dto.AgipObeLoc;
|
|
|
import com.its.bis.config.ServerConfig;
|
|
|
import com.its.bis.config.ThreadPoolInitializer;
|
|
|
-import com.its.bis.dto.Location;
|
|
|
-import com.its.bis.dto.NearNodeDto;
|
|
|
import com.its.bis.dto.TbLinkDto;
|
|
|
-import com.its.bis.dto.TbNodeDto;
|
|
|
import com.its.bis.process.DbmsDataProcess;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -18,7 +14,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import javax.annotation.PostConstruct;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -87,34 +82,34 @@ public class BisAgipService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public double getDistance(double lat1, double lon1, double lat2, double lon2) {
|
|
|
- double EARTH_RADIUS = 6371.0;
|
|
|
- double dLat = Math.toRadians(lat2 - lat1);
|
|
|
- double dLon = Math.toRadians(lon2 - lon1);
|
|
|
+// public double getDistance(double lat1, double lon1, double lat2, double lon2) {
|
|
|
+// double EARTH_RADIUS = 6371.0;
|
|
|
+// double dLat = Math.toRadians(lat2 - lat1);
|
|
|
+// double dLon = Math.toRadians(lon2 - lon1);
|
|
|
+//
|
|
|
+// double a = Math.sin(dLat/2)* Math.sin(dLat/2)+ Math.cos(Math.toRadians(lat1))* Math.cos(Math.toRadians(lat2))* Math.sin(dLon/2)* Math.sin(dLon/2);
|
|
|
+// double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
|
|
|
+// return (EARTH_RADIUS * c * 1000); // Distance in m
|
|
|
+// }
|
|
|
|
|
|
- double a = Math.sin(dLat/2)* Math.sin(dLat/2)+ Math.cos(Math.toRadians(lat1))* Math.cos(Math.toRadians(lat2))* Math.sin(dLon/2)* Math.sin(dLon/2);
|
|
|
- double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
|
|
|
- return (EARTH_RADIUS * c * 1000); // Distance in m
|
|
|
- }
|
|
|
-
|
|
|
- public NearNodeDto getNearNode(Location loc) {
|
|
|
- Elapsed elapsed = new Elapsed();
|
|
|
- log.info("getNearNode: {}", loc);
|
|
|
- //Location(mDistance=0.0, mInitialBearing=0.0, mFinalBearing=0.0, mLatitude=128.73881251, mLongitude=36.56128759)
|
|
|
- double maxDistance = 40;
|
|
|
- NearNodeDto node = NearNodeDto.builder().nodeId(0L).distance(maxDistance).build();
|
|
|
- for (Map.Entry<Long, TbNodeDto> e : this.repoService.getEntrySetNode()) {
|
|
|
- TbNodeDto obj = e.getValue();
|
|
|
- double fDistance = (float) getDistance(loc.getMLatitude(), loc.getMLongitude(), obj.getXCrdn(), obj.getYCrdn());
|
|
|
- if (fDistance < maxDistance) {
|
|
|
- maxDistance = fDistance;
|
|
|
- node.setNodeId(obj.getNodeId());
|
|
|
- node.setDistance(fDistance);
|
|
|
- }
|
|
|
- }
|
|
|
- log.info("getNearNode: {} ms. {} m, {}", elapsed.milliSeconds(), maxDistance, node);
|
|
|
- return node;
|
|
|
- }
|
|
|
+// public NearNodeDto getNearNode(Location loc) {
|
|
|
+// Elapsed elapsed = new Elapsed();
|
|
|
+// log.info("getNearNode: {}", loc);
|
|
|
+// //Location(mDistance=0.0, mInitialBearing=0.0, mFinalBearing=0.0, mLatitude=128.73881251, mLongitude=36.56128759)
|
|
|
+// double maxDistance = 100;
|
|
|
+// NearNodeDto node = NearNodeDto.builder().nodeId(0L).distance(maxDistance).build();
|
|
|
+// for (Map.Entry<Long, TbNodeDto> e : this.repoService.getEntrySetNode()) {
|
|
|
+// TbNodeDto obj = e.getValue();
|
|
|
+// double fDistance = (float) getDistance(loc.getMLatitude(), loc.getMLongitude(), obj.getXCrdn(), obj.getYCrdn());
|
|
|
+// if (fDistance < maxDistance) {
|
|
|
+// maxDistance = fDistance;
|
|
|
+// node.setNodeId(obj.getNodeId());
|
|
|
+// node.setDistance(fDistance);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// log.info("getNearNode: {} ms. {} m, {}", elapsed.milliSeconds(), maxDistance, node);
|
|
|
+// return node;
|
|
|
+// }
|
|
|
|
|
|
public TbLinkDto getSectInfo(Long fNodeId, Long tNodeId) {
|
|
|
return this.repoService.getSectMap(fNodeId, tNodeId);
|