Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
map-parent
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
map-parent
Commits
2ffb855c
Commit
2ffb855c
authored
Mar 22, 2021
by
cc150520900118
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
65162ca8
c9147e0f
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
246 additions
and
1 deletions
+246
-1
common/common_utils/src/main/java/com/founder/commonutils/util/LngLonUtil.java
+197
-0
service/asj/src/main/resources/application.properties
+1
-1
serviceapi/imageapi/src/main/java/com/founder/ytlf/controller/YtlfController.java
+48
-0
No files found.
common/common_utils/src/main/java/com/founder/commonutils/util/LngLonUtil.java
0 → 100644
View file @
2ffb855c
package
com
.
founder
.
commonutils
.
util
;
/**
* 坐标转换工具
*/
public
class
LngLonUtil
{
//注意:lat 纬度 lon 经度 ************************************
public
static
double
x_pi
=
3.14159265358979324
*
3000.0
/
180.0
;
public
static
double
pi
=
3.1415926535897932384626
;
public
static
double
a
=
6378245.0
;
public
static
double
ee
=
0.00669342162296594323
;
public
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
;
}
public
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
double
[]
transform
(
double
lat
,
double
lon
)
{
if
(
outOfChina
(
lat
,
lon
))
{
return
new
double
[]{
lat
,
lon
};
}
double
dLat
=
transformLat
(
lon
-
105.0
,
lat
-
35.0
);
double
dLon
=
transformLon
(
lon
-
105.0
,
lat
-
35.0
);
double
radLat
=
lat
/
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
mgLat
=
lat
+
dLat
;
double
mgLon
=
lon
+
dLon
;
return
new
double
[]{
mgLat
,
mgLon
};
}
/**
* 判断是否在中国
* @param lat
* @param lon
* @return
*/
public
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
;
}
/**
* 84 ==》 高德 --已测试,与前端一致
* @param lat
* @param lon
* @return
*/
public
static
double
[]
gps84_To_Gcj02
(
double
lat
,
double
lon
)
{
if
(
outOfChina
(
lat
,
lon
))
{
return
new
double
[]{
lat
,
lon
};
}
double
dLat
=
transformLat
(
lon
-
105.0
,
lat
-
35.0
);
double
dLon
=
transformLon
(
lon
-
105.0
,
lat
-
35.0
);
double
radLat
=
lat
/
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
mgLat
=
lat
+
dLat
;
double
mgLon
=
lon
+
dLon
;
return
new
double
[]{
mgLat
,
mgLon
};
}
/**
* 高德 ==》 84 --已测试,与前端一致
* @param lon * @param lat * @return
* */
public
static
double
[]
gcj02_To_Gps84
(
double
lat
,
double
lon
)
{
double
[]
gps
=
transform
(
lat
,
lon
);
double
lontitude
=
lon
*
2
-
gps
[
1
];
double
latitude
=
lat
*
2
-
gps
[
0
];
return
new
double
[]{
latitude
,
lontitude
};
}
/**
* 高德 == 》 百度
* @param lat
* @param lon
*/
public
static
double
[]
gcj02_To_Bd09
(
double
lat
,
double
lon
)
{
double
x
=
lon
,
y
=
lat
;
// double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);//百度的算法是x_pi,前端的是pi,暂时保持一致 chentian20200424
// double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);//百度的算法是x_pi,前端的是pi,暂时保持一致 chentian20200424
double
z
=
Math
.
sqrt
(
x
*
x
+
y
*
y
)
+
0.00002
*
Math
.
sin
(
y
*
pi
);
double
theta
=
Math
.
atan2
(
y
,
x
)
+
0.000003
*
Math
.
cos
(
x
*
pi
);
double
tempLon
=
z
*
Math
.
cos
(
theta
)
+
0.0065
;
double
tempLat
=
z
*
Math
.
sin
(
theta
)
+
0.006
;
double
[]
gps
=
{
tempLat
,
tempLon
};
return
gps
;
}
/**
* 百度 == 》 高德
* @param lat
* @param lon
*/
public
static
double
[]
bd09_To_Gcj02
(
double
lat
,
double
lon
)
{
double
x
=
lon
-
0.0065
,
y
=
lat
-
0.006
;
double
z
=
Math
.
sqrt
(
x
*
x
+
y
*
y
)
-
0.00002
*
Math
.
sin
(
y
*
x_pi
);
double
theta
=
Math
.
atan2
(
y
,
x
)
-
0.000003
*
Math
.
cos
(
x
*
x_pi
);
double
tempLon
=
z
*
Math
.
cos
(
theta
);
double
tempLat
=
z
*
Math
.
sin
(
theta
);
double
[]
gps
=
{
tempLat
,
tempLon
};
return
gps
;
}
/**
* 84 == 》 百度 --已测试,与前端一致
* @param lat
* @param lon
* @return
*/
public
static
double
[]
gps84_To_bd09
(
double
lat
,
double
lon
){
double
[]
gcj02
=
gps84_To_Gcj02
(
lat
,
lon
);
double
[]
bd09
=
gcj02_To_Bd09
(
gcj02
[
0
],
gcj02
[
1
]);
return
bd09
;
}
/**
* 百度 == 》 84 --已测试,与前端一致
* @param lat
* @param lon
* @return
*/
public
static
double
[]
bd09_To_gps84
(
double
lat
,
double
lon
){
double
[]
gcj02
=
bd09_To_Gcj02
(
lat
,
lon
);
double
[]
gps84
=
gcj02_To_Gps84
(
gcj02
[
0
],
gcj02
[
1
]);
//保留小数点后六位
gps84
[
0
]
=
retain6
(
gps84
[
0
]);
gps84
[
1
]
=
retain6
(
gps84
[
1
]);
return
gps84
;
}
/*
* 保留小数点后六位
* @param num
* @return
*/
private
static
double
retain6
(
double
num
){
String
result
=
String
.
format
(
"%.6f"
,
num
);
return
Double
.
valueOf
(
result
);
}
public
static
void
main
(
String
[]
args
){
System
.
out
.
println
(
"===============84转百度====================="
);
//84转百度
double
[]
xy
=
gps84_To_bd09
(
22.7426833
,
114.1329
);
System
.
out
.
println
(
"y:"
+
xy
[
0
]+
"#x:"
+
xy
[
1
]);
double
[]
xy1
=
gps84_To_bd09
(
22.87525
,
113.8616333
);
System
.
out
.
println
(
"y:"
+
xy1
[
0
]+
"#x:"
+
xy1
[
1
]);
//
/* double[] xy2=gps84_To_bd09(113.9302,23.0039833);
System.out.println("x:"+xy2[0]+"#y:"+xy2[1]);
double[] xy3=gps84_To_bd09(113.9439333,22.9951167);
System.out.println("x:"+xy3[0]+"#y:"+xy3[1]);
double[] xy4=gps84_To_bd09(113.8736,22.9265667);
System.out.println("x:"+xy4[0]+"#y:"+xy4[1]);*/
System
.
out
.
println
(
"============百度转84========================"
);
//百度转84
double
[]
xy5
=
bd09_To_gps84
(
22.7426833
,
114.1329
);
System
.
out
.
println
(
"x:"
+
xy5
[
0
]+
"#y:"
+
xy5
[
1
]);
double
[]
xy6
=
bd09_To_gps84
(
22.87525
,
113.8616333
);
System
.
out
.
println
(
"x:"
+
xy6
[
0
]+
"#y:"
+
xy6
[
1
]);
System
.
out
.
println
(
"===============高德/谷歌/腾讯 转 84====================="
);
//高德/谷歌/腾讯 转 84
double
[]
xy7
=
gcj02_To_Gps84
(
22.7426833
,
114.1329
);
System
.
out
.
println
(
"x:"
+
xy7
[
0
]+
"#y:"
+
xy7
[
1
]);
double
[]
xy8
=
gcj02_To_Gps84
(
22.87525
,
113.8616333
);
System
.
out
.
println
(
"x:"
+
xy8
[
0
]+
"#y:"
+
xy8
[
1
]);
System
.
out
.
println
(
"==============84 转高德/谷歌/腾讯======================"
);
// 84 转高德/谷歌/腾讯
double
[]
xy9
=
gps84_To_Gcj02
(
22.7426833
,
114.1329
);
System
.
out
.
println
(
"x:"
+
xy9
[
0
]+
"#y:"
+
xy9
[
1
]);
double
[]
xy10
=
gps84_To_Gcj02
(
22.87525
,
113.8616333
);
System
.
out
.
println
(
"x:"
+
xy10
[
0
]+
"#y:"
+
xy10
[
1
]);
}
}
service/asj/src/main/resources/application.properties
View file @
2ffb855c
...
...
@@ -13,7 +13,7 @@ spring.jackson.time-zone=GMT+8
#配置mapper xml文件的路径
mybatis-plus.mapper-locations
=
classpath:com/founder/asj/mapper/xml/*.xml
#所属单位,东莞与其他单位所有案件类别字典可能有所差异,故需要加单位进行判断(东莞441900000000)
ssdw
=
4419
00000000
ssdw
=
1500
00000000
# 设置日志级别
logging.level.root
=
INFO
...
...
serviceapi/imageapi/src/main/java/com/founder/ytlf/controller/YtlfController.java
View file @
2ffb855c
...
...
@@ -112,5 +112,53 @@ public class YtlfController {
}
return
MapRestResult
.
build
(
500
,
"请求失败"
,
null
);
}
@OperLog
(
message
=
"根据小图获取大图信息,返回人脸小图在大图中的位置"
,
operation
=
OperationType
.
QUERY
)
@ApiOperation
(
value
=
"根据小图获取大图信息,返回人脸小图在大图中的位置"
)
@GetMapping
(
"/getImageAndLocationByFaceId/{FaceId}"
)
public
MapRestResult
getImageAndLocationByFaceId
(
@PathVariable
Long
FaceId
){
try
{
String
accessToken
=
TokenUtils
.
getYtgsToken
();
String
url
=
"http://26.3.12.56:8083/api/intellif/image/face/json/"
+
FaceId
;
String
Authorization
=
"Bearer "
+
accessToken
;
Map
header
=
new
HashMap
<
String
,
String
>();
header
.
put
(
"Authorization"
,
Authorization
);
String
result
=
null
;
try
{
result
=
HttpClient
.
doGet
(
url
,
header
,
null
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
JSONObject
jsonObject
=
JSONArray
.
parseObject
(
result
);
return
MapRestResult
.
build
(
200
,
"成功根据小图获取大图信息,返回人脸小图在大图中的位置"
,
jsonObject
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
return
MapRestResult
.
build
(
500
,
"请求失败"
,
null
);
}
@OperLog
(
message
=
"根据大图id获取所有小图信息,这里的id来自上传图片接口返回的id"
,
operation
=
OperationType
.
QUERY
)
@ApiOperation
(
value
=
"根据大图id获取所有小图信息,这里的id来自上传图片接口返回的id"
)
@GetMapping
(
"/getImageByBigImageId/{BigImageId}"
)
public
MapRestResult
getImageByBigImageId
(
@PathVariable
Long
BigImageId
){
try
{
String
accessToken
=
TokenUtils
.
getYtgsToken
();
String
url
=
"http://26.3.12.56:8083/api/intellif/face/image/"
+
BigImageId
;
String
Authorization
=
"Bearer "
+
accessToken
;
Map
header
=
new
HashMap
<
String
,
String
>();
header
.
put
(
"Authorization"
,
Authorization
);
String
result
=
null
;
try
{
result
=
HttpClient
.
doGet
(
url
,
header
,
null
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
JSONObject
jsonObject
=
JSONArray
.
parseObject
(
result
);
return
MapRestResult
.
build
(
200
,
"成功根据大图id获取所有小图信息,这里的id来自上传图片接口返回的id"
,
jsonObject
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
return
MapRestResult
.
build
(
500
,
"请求失败"
,
null
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment