parent
2a733d65f1
commit
1c02d5f852
8 changed files with 245 additions and 19 deletions
@ -0,0 +1,6 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<project version="4"> |
||||||
|
<component name="SqlDialectMappings"> |
||||||
|
<file url="file://$PROJECT_DIR$/hiatmp-hidden-danger-server/src/main/resources/sql-mapper/HighDangerMapper.xml" dialect="GenericSQL" /> |
||||||
|
</component> |
||||||
|
</project> |
||||||
@ -0,0 +1,115 @@ |
|||||||
|
package com.hisense.hiatmp.server_api.utils; |
||||||
|
|
||||||
|
public class CoordinateConverter { |
||||||
|
|
||||||
|
/** |
||||||
|
* 椭球参数 |
||||||
|
*/ |
||||||
|
private static double pi = 3.14159265358979324; |
||||||
|
/** |
||||||
|
* 卫星椭球坐标投影到平面地图坐标系的投影因子 |
||||||
|
*/ |
||||||
|
private static double a = 6378245.0; |
||||||
|
/** |
||||||
|
* 椭球的偏心率 |
||||||
|
*/ |
||||||
|
private static double ee = 0.00669342162296594323; |
||||||
|
|
||||||
|
/** |
||||||
|
* 经纬度 GPS转高德 |
||||||
|
* |
||||||
|
* @param wgLon GPS经度 |
||||||
|
* @param wgLat GPS维度 |
||||||
|
* @return 转化后的经纬度坐标 |
||||||
|
*/ |
||||||
|
public static AMap transform(double wgLon, double wgLat) { |
||||||
|
if (outOfChina(wgLat, wgLon)) { |
||||||
|
return new AMap((float) wgLon, (float) wgLat); |
||||||
|
} |
||||||
|
|
||||||
|
double dLat = transformLat(wgLon - 105.0, wgLat - 35.0); |
||||||
|
double dLon = transformLon(wgLon - 105.0, wgLat - 35.0); |
||||||
|
double radLat = wgLat / 180.0 * pi; |
||||||
|
double magic = Math.sin(radLat); |
||||||
|
magic = 1 - ee * magic * magic; |
||||||
|
double sqrtMagic = Math.sqrt(magic); |
||||||
|
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); |
||||||
|
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); |
||||||
|
double transLat = wgLat + dLat; |
||||||
|
double transLon = wgLon + dLon; |
||||||
|
return new AMap((float) transLon, (float) transLat); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 判断是否为国外坐标,,不在国内不做偏移 |
||||||
|
* |
||||||
|
* @param lat |
||||||
|
* @param lon |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
private static Boolean outOfChina(double lat, double lon) { |
||||||
|
if (lon < 72.004 || lon > 137.8347) |
||||||
|
return true; |
||||||
|
if (lat < 0.8293 || lat > 55.8271) |
||||||
|
return true; |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 纬度转换 |
||||||
|
* |
||||||
|
* @param x |
||||||
|
* @param y |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
private static double transformLat(double x, double y) { |
||||||
|
double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x)); |
||||||
|
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; |
||||||
|
ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; |
||||||
|
ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; |
||||||
|
return ret; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 经度转换 |
||||||
|
* |
||||||
|
* @param x |
||||||
|
* @param y |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
private static double transformLon(double x, double y) { |
||||||
|
double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x)); |
||||||
|
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; |
||||||
|
ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; |
||||||
|
ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0; |
||||||
|
return ret; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 高德经纬度类 |
||||||
|
*/ |
||||||
|
public static class AMap { |
||||||
|
/** |
||||||
|
* 经度 |
||||||
|
*/ |
||||||
|
private float longitude; |
||||||
|
|
||||||
|
/** |
||||||
|
* 维度 |
||||||
|
*/ |
||||||
|
private float latitude; |
||||||
|
|
||||||
|
public AMap(float longitude, float latitude) { |
||||||
|
this.longitude = longitude; |
||||||
|
this.latitude = latitude; |
||||||
|
} |
||||||
|
|
||||||
|
public float getLongitude() { |
||||||
|
return longitude; |
||||||
|
} |
||||||
|
|
||||||
|
public float getLatitude() { |
||||||
|
return latitude; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -1,13 +0,0 @@ |
|||||||
2024-07-10 01:10:47,770 [parallel-1] WARN de.codecentric.boot.admin.server.services.IntervalCheck - Unexpected error in status-check |
|
||||||
reactor.core.Exceptions$OverflowException: Could not emit tick 4136 due to lack of requests (interval doesn't support small downstream requests that replenish slower than the ticks) |
|
||||||
at reactor.core.Exceptions.failWithOverflow(Exceptions.java:234) ~[reactor-core-3.3.4.RELEASE.jar:3.3.4.RELEASE] |
|
||||||
at reactor.core.publisher.FluxInterval$IntervalRunnable.run(FluxInterval.java:130) [reactor-core-3.3.4.RELEASE.jar:3.3.4.RELEASE] |
|
||||||
at reactor.core.scheduler.PeriodicWorkerTask.call(PeriodicWorkerTask.java:59) [reactor-core-3.3.4.RELEASE.jar:3.3.4.RELEASE] |
|
||||||
at reactor.core.scheduler.PeriodicWorkerTask.run(PeriodicWorkerTask.java:73) [reactor-core-3.3.4.RELEASE.jar:3.3.4.RELEASE] |
|
||||||
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_411] |
|
||||||
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_411] |
|
||||||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_411] |
|
||||||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_411] |
|
||||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_411] |
|
||||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_411] |
|
||||||
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_411] |
|
||||||
Loading…
Reference in new issue