Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
12255d2c
Commit
12255d2c
authored
Oct 25, 2023
by
caotao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.对于查询的原始速度为0的数据进行处理。
2.增加方法对于纠偏后的数据的速度进行插点处理。
parent
8df5c64f
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
87 additions
and
65 deletions
+87
-65
WlCarMileageServiceImpl.java
...oin/equipmanage/service/impl/WlCarMileageServiceImpl.java
+87
-65
No files found.
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/WlCarMileageServiceImpl.java
View file @
12255d2c
...
@@ -19,6 +19,7 @@ import com.yeejoin.equipmanage.service.ICarService;
...
@@ -19,6 +19,7 @@ import com.yeejoin.equipmanage.service.ICarService;
import
com.yeejoin.equipmanage.service.IWlCarMileageService
;
import
com.yeejoin.equipmanage.service.IWlCarMileageService
;
import
com.yeejoin.equipmanage.thread.ThreadCarMileageTreatment
;
import
com.yeejoin.equipmanage.thread.ThreadCarMileageTreatment
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.checkerframework.checker.units.qual.Speed
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -60,27 +61,52 @@ import java.util.stream.Collectors;
...
@@ -60,27 +61,52 @@ import java.util.stream.Collectors;
@EnableAsync
@EnableAsync
public
class
WlCarMileageServiceImpl
extends
ServiceImpl
<
WlCarMileageMapper
,
WlCarMileage
>
public
class
WlCarMileageServiceImpl
extends
ServiceImpl
<
WlCarMileageMapper
,
WlCarMileage
>
implements
IWlCarMileageService
{
implements
IWlCarMileageService
{
@Value
(
"${car.max.speed:100}"
)
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
HttpUtil
.
class
);
private
Integer
CAR_MAX_SPEED
;
private
final
String
GUIDE_KEY
=
"813684495d9a3981dd2c7694916fe404"
;
private
final
String
GUIDE_URL
=
"https://restapi.amap.com/v4/grasproad/driving?"
;
private
final
String
GUIDE_ADDRESS_URL
=
"https://restapi.amap.com/v3/geocode/regeo?"
;
@Autowired
@Autowired
IotFeign
iotFeign
;
IotFeign
iotFeign
;
@Autowired
@Autowired
ICarService
iCarService
;
ICarService
iCarService
;
@Value
(
"${car.max.speed:100}"
)
private
Integer
CAR_MAX_SPEED
;
@Value
(
"${mileage.parameter}"
)
@Value
(
"${mileage.parameter}"
)
private
Double
mileageParameter
;
private
Double
mileageParameter
;
@Resource
@Resource
private
EmqKeeper
emqKeeper
;
private
EmqKeeper
emqKeeper
;
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
HttpUtil
.
class
);
public
static
List
<
String
>
getDayByMonth
(
Date
date
)
{
List
<
String
>
data
=
new
ArrayList
<>();
private
final
String
GUIDE_KEY
=
"813684495d9a3981dd2c7694916fe404"
;
try
{
Calendar
c
=
Calendar
.
getInstance
();
private
final
String
GUIDE_URL
=
"https://restapi.amap.com/v4/grasproad/driving?"
;
c
.
setTime
(
date
);
// 获取当前的年份
private
final
String
GUIDE_ADDRESS_URL
=
"https://restapi.amap.com/v3/geocode/regeo?"
;
int
year
=
c
.
get
(
Calendar
.
YEAR
);
// 获取当前的月份(需要加1才是现在的月份)
int
month
=
c
.
get
(
Calendar
.
MONTH
)
+
1
;
// 获取本月的总天数
int
dayCount
=
c
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
);
// 定义时间格式
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
// 开始日期为当前年月拼接1号
Date
startDate
=
sdf
.
parse
(
year
+
"-"
+
month
+
"-01"
);
// 结束日期为当前年月拼接该月最大天数
Date
endDate
=
sdf
.
parse
(
year
+
"-"
+
month
+
"-"
+
dayCount
);
// 设置calendar的开始日期
c
.
setTime
(
startDate
);
// 当前时间小于等于设定的结束时间
while
(
c
.
getTime
().
compareTo
(
endDate
)
<=
0
)
{
String
time
=
sdf
.
format
(
c
.
getTime
());
data
.
add
(
time
);
// 当前日期加1
c
.
add
(
Calendar
.
DATE
,
1
);
}
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
data
;
}
@Override
@Override
public
Page
<
WlCarMileage
>
page
(
Page
<
WlCarMileage
>
page
,
WlCarMileage
wlCarMileage
)
{
public
Page
<
WlCarMileage
>
page
(
Page
<
WlCarMileage
>
page
,
WlCarMileage
wlCarMileage
)
{
...
@@ -97,7 +123,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -97,7 +123,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
double
speed
=
0
;
double
speed
=
0
;
WlCarMileage
wlCarMileage
=
this
.
getById
(
id
);
WlCarMileage
wlCarMileage
=
this
.
getById
(
id
);
String
iotCode
=
wlCarMileage
.
getIotCode
();
String
iotCode
=
wlCarMileage
.
getIotCode
();
String
measurement
=
iotCode
.
substring
(
0
,
8
);
String
measurement
=
iotCode
.
substring
(
0
,
8
);
String
deviceName
=
iotCode
.
replace
(
measurement
,
""
);
String
deviceName
=
iotCode
.
replace
(
measurement
,
""
);
// 由于iot存在毫秒故结束时间要+1秒 iot+1秒有bug还是查不到 +2秒
// 由于iot存在毫秒故结束时间要+1秒 iot+1秒有bug还是查不到 +2秒
ResponseModel
<
List
<
Object
>>
result
=
iotFeign
.
getLiveData
(
measurement
,
deviceName
,
wlCarMileage
.
getStartTime
(),
ResponseModel
<
List
<
Object
>>
result
=
iotFeign
.
getLiveData
(
measurement
,
deviceName
,
wlCarMileage
.
getStartTime
(),
...
@@ -115,8 +141,8 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -115,8 +141,8 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
lnglat
.
add
(
jsonObject
.
getDoubleValue
(
"FireCar_Longitude"
));
lnglat
.
add
(
jsonObject
.
getDoubleValue
(
"FireCar_Longitude"
));
lnglat
.
add
(
jsonObject
.
getDoubleValue
(
"FireCar_Latitude"
));
lnglat
.
add
(
jsonObject
.
getDoubleValue
(
"FireCar_Latitude"
));
coordinate
.
setLnglat
(
lnglat
);
coordinate
.
setLnglat
(
lnglat
);
coordinate
.
setSpeed
(
jsonObject
.
getDoubleValue
(
"F
ireCar_Speed"
));
coordinate
.
setSpeed
(
jsonObject
.
getDoubleValue
(
"f
ireCar_Speed"
));
speed
=
speed
+
jsonObject
.
getDoubleValue
(
"F
ireCar_Speed"
);
speed
=
speed
+
jsonObject
.
getDoubleValue
(
"f
ireCar_Speed"
);
String
time
=
jsonObject
.
getString
(
"time"
);
String
time
=
jsonObject
.
getString
(
"time"
);
if
(
time
.
length
()
>
20
)
{
if
(
time
.
length
()
>
20
)
{
try
{
try
{
...
@@ -132,9 +158,9 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -132,9 +158,9 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
}
}
}
}
double
direction
=
jsonObject
.
getDoubleValue
(
"direction"
);
double
direction
=
jsonObject
.
getDoubleValue
(
"direction"
);
if
(!
ObjectUtils
.
isEmpty
(
direction
))
{
if
(!
ObjectUtils
.
isEmpty
(
direction
))
{
coordinate
.
setDirection
(
jsonObject
.
getDoubleValue
(
"direction"
));
coordinate
.
setDirection
(
jsonObject
.
getDoubleValue
(
"direction"
));
}
else
{
}
else
{
coordinate
.
setDirection
(
0
);
coordinate
.
setDirection
(
0
);
}
}
coordinateList
.
add
(
coordinate
);
coordinateList
.
add
(
coordinate
);
...
@@ -178,7 +204,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -178,7 +204,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
// 角度
// 角度
jsonObject
.
put
(
"ag"
,
coordinate
.
getDirection
());
jsonObject
.
put
(
"ag"
,
coordinate
.
getDirection
());
// 速度
// 速度
jsonObject
.
put
(
"sp"
,
coordinate
.
getSpeed
()
);
jsonObject
.
put
(
"sp"
,
coordinate
.
getSpeed
()
>
0
?
coordinate
.
getSpeed
()
:
avgSpeed
);
// 时间
// 时间
if
(
count
==
0
)
{
if
(
count
==
0
)
{
jsonObject
.
put
(
"tm"
,
coordinate
.
getTime
()
/
1000
);
jsonObject
.
put
(
"tm"
,
coordinate
.
getTime
()
/
1000
);
...
@@ -200,22 +226,23 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -200,22 +226,23 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
if
(
result
!=
null
)
{
if
(
result
!=
null
)
{
Map
<
String
,
Object
>
jsonObject
=
(
Map
<
String
,
Object
>)
JSONObject
.
parseObject
(
result
);
Map
<
String
,
Object
>
jsonObject
=
(
Map
<
String
,
Object
>)
JSONObject
.
parseObject
(
result
);
//判断是否坐标不满足高德地图纠偏需求
//判断是否坐标不满足高德地图纠偏需求
if
(
jsonObject
.
containsKey
(
"errcode"
)&&
jsonObject
.
get
(
"errcode"
).
toString
().
equals
(
"30001"
))
{
if
(
jsonObject
.
containsKey
(
"errcode"
)
&&
jsonObject
.
get
(
"errcode"
).
toString
().
equals
(
"30001"
))
{
return
list
;
return
list
;
}
}
if
(
jsonObject
.
containsKey
(
"data"
))
{
if
(
jsonObject
.
containsKey
(
"data"
))
{
JSONObject
data3
=
JSONObject
.
parseObject
(
jsonObject
.
get
(
"data"
).
toString
());
JSONObject
data3
=
JSONObject
.
parseObject
(
jsonObject
.
get
(
"data"
).
toString
());
JSONArray
points1
=
JSONArray
.
parseArray
(
data3
.
get
(
"points"
).
toString
());
JSONArray
points1
=
JSONArray
.
parseArray
(
data3
.
get
(
"points"
).
toString
());
points1
.
forEach
(
item
->
{
for
(
int
i
=
0
;
i
<
points1
.
size
();
i
++)
{
JSONObject
jsonObject1
=
JSONObject
.
parseObject
(
item
.
toString
());
JSONObject
jsonObject1
=
JSONObject
.
parseObject
(
points1
.
get
(
i
)
.
toString
());
List
<
Double
>
doubles
=
new
ArrayList
<>();
List
<
Double
>
doubles
=
new
ArrayList
<>();
Coordinate
coordinate
=
new
Coordinate
();
Coordinate
coordinate
=
new
Coordinate
();
doubles
.
add
(
Double
.
valueOf
(
jsonObject1
.
get
(
"x"
).
toString
()));
doubles
.
add
(
Double
.
valueOf
(
jsonObject1
.
get
(
"x"
).
toString
()));
doubles
.
add
(
Double
.
valueOf
(
jsonObject1
.
get
(
"y"
).
toString
()));
doubles
.
add
(
Double
.
valueOf
(
jsonObject1
.
get
(
"y"
).
toString
()));
coordinate
.
setLnglat
(
doubles
);
coordinate
.
setLnglat
(
doubles
);
coordinate
.
setSpeed
(
avgSpeed
);
Double
speeed
=
getSpeedByOriginalData
(
objects
,
Double
.
valueOf
(
jsonObject1
.
get
(
"x"
).
toString
()),
Double
.
valueOf
(
jsonObject1
.
get
(
"y"
).
toString
()),
i
);
coordinate
.
setSpeed
(
speeed
);
coordinates
.
add
(
coordinate
);
coordinates
.
add
(
coordinate
);
});
}
}
}
}
}
...
@@ -257,7 +284,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -257,7 +284,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
.
ge
(
"travel"
,
0.5
)
.
ge
(
"travel"
,
0.5
)
.
groupBy
(
"date"
));
.
groupBy
(
"date"
));
List
<
WlCarMileage
>
wlCarMileageListActiveData
=
wlCarMileageList
.
stream
().
filter
(
wl
->
(!
ObjectUtils
.
isEmpty
(
wl
.
getTakeTime
())
&&
!
ObjectUtils
.
isEmpty
(
wl
.
getTravel
())
&&
((
wl
.
getTravel
()
/
(
wl
.
getTakeTime
()
/
3600000.0
))
<
CAR_MAX_SPEED
))).
collect
(
Collectors
.
toList
());
List
<
WlCarMileage
>
wlCarMileageListActiveData
=
wlCarMileageList
.
stream
().
filter
(
wl
->
(!
ObjectUtils
.
isEmpty
(
wl
.
getTakeTime
())
&&
!
ObjectUtils
.
isEmpty
(
wl
.
getTravel
())
&&
((
wl
.
getTravel
()
/
(
wl
.
getTakeTime
()
/
3600000.0
))
<
CAR_MAX_SPEED
))).
collect
(
Collectors
.
toList
());
List
<
String
>
activeDateList
=
wlCarMileageListActiveData
.
stream
().
map
(
wlCarMileage
->
String
.
valueOf
(
DateUtils
.
convertDateToString
(
wlCarMileage
.
getDate
(),
DateUtils
.
DATE_PATTERN
))).
collect
(
Collectors
.
toList
());
List
<
String
>
activeDateList
=
wlCarMileageListActiveData
.
stream
().
map
(
wlCarMileage
->
String
.
valueOf
(
DateUtils
.
convertDateToString
(
wlCarMileage
.
getDate
(),
DateUtils
.
DATE_PATTERN
))).
collect
(
Collectors
.
toList
());
for
(
String
day
:
daylist
)
{
for
(
String
day
:
daylist
)
{
boolean
has
=
false
;
boolean
has
=
false
;
if
(
activeDateList
.
contains
(
day
))
{
if
(
activeDateList
.
contains
(
day
))
{
...
@@ -268,38 +295,6 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -268,38 +295,6 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
return
map
;
return
map
;
}
}
public
static
List
<
String
>
getDayByMonth
(
Date
date
)
{
List
<
String
>
data
=
new
ArrayList
<>();
try
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
// 获取当前的年份
int
year
=
c
.
get
(
Calendar
.
YEAR
);
// 获取当前的月份(需要加1才是现在的月份)
int
month
=
c
.
get
(
Calendar
.
MONTH
)
+
1
;
// 获取本月的总天数
int
dayCount
=
c
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
);
// 定义时间格式
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
// 开始日期为当前年月拼接1号
Date
startDate
=
sdf
.
parse
(
year
+
"-"
+
month
+
"-01"
);
// 结束日期为当前年月拼接该月最大天数
Date
endDate
=
sdf
.
parse
(
year
+
"-"
+
month
+
"-"
+
dayCount
);
// 设置calendar的开始日期
c
.
setTime
(
startDate
);
// 当前时间小于等于设定的结束时间
while
(
c
.
getTime
().
compareTo
(
endDate
)
<=
0
)
{
String
time
=
sdf
.
format
(
c
.
getTime
());
data
.
add
(
time
);
// 当前日期加1
c
.
add
(
Calendar
.
DATE
,
1
);
}
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
return
data
;
}
@Override
@Override
@Scheduled
(
cron
=
"${mileage.segmentation.cron}"
)
@Scheduled
(
cron
=
"${mileage.segmentation.cron}"
)
@Async
@Async
...
@@ -315,11 +310,11 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -315,11 +310,11 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
//销毁所有线程和所有上次坐标
//销毁所有线程和所有上次坐标
//销毁所有线程
//销毁所有线程
log
.
info
(
"销毁所有有效线程开始"
);
log
.
info
(
"销毁所有有效线程开始"
);
CarIotNewListener
.
deviceInfo
.
keySet
().
forEach
(
s
->
{
CarIotNewListener
.
deviceInfo
.
keySet
().
forEach
(
s
->
{
try
{
try
{
CarIotNewListener
.
deviceInfo
.
get
(
s
).
interrupt
();
CarIotNewListener
.
deviceInfo
.
get
(
s
).
interrupt
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
info
(
"销毁有效线程失败"
+
e
.
getMessage
());
log
.
info
(
"销毁有效线程失败"
+
e
.
getMessage
());
}
}
});
});
CarIotNewListener
.
deviceInfo
.
clear
();
CarIotNewListener
.
deviceInfo
.
clear
();
...
@@ -392,7 +387,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -392,7 +387,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
item
.
setTravel
(
new
BigDecimal
(
travel
/
1000
).
setScale
(
1
,
BigDecimal
.
ROUND_HALF_UP
).
doubleValue
());
item
.
setTravel
(
new
BigDecimal
(
travel
/
1000
).
setScale
(
1
,
BigDecimal
.
ROUND_HALF_UP
).
doubleValue
());
item
.
setTakeTime
(
takeTime
);
item
.
setTakeTime
(
takeTime
);
this
.
getBaseMapper
().
updateById
(
item
);
this
.
getBaseMapper
().
updateById
(
item
);
log
.
info
(
"-----------结束里程成功:::"
+
JSONObject
.
toJSONString
(
item
)+
"-----------------"
);
log
.
info
(
"-----------结束里程成功:::"
+
JSONObject
.
toJSONString
(
item
)
+
"-----------------"
);
// // 从0点开启新里程
// // 从0点开启新里程
// item.setStartName(address);
// item.setStartName(address);
// item.setDate(date);
// item.setDate(date);
...
@@ -425,7 +420,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -425,7 +420,7 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
car
.
setLongitude
(
startLongitude
);
car
.
setLongitude
(
startLongitude
);
car
.
setLatitude
(
startLatitude
);
car
.
setLatitude
(
startLatitude
);
iCarService
.
saveOrUpdate
(
car
);
iCarService
.
saveOrUpdate
(
car
);
log
.
info
(
"-----------更新车辆坐标成功:::"
+
JSONObject
.
toJSONString
(
item
)+
"-----------------"
);
log
.
info
(
"-----------更新车辆坐标成功:::"
+
JSONObject
.
toJSONString
(
item
)
+
"-----------------"
);
}
}
});
});
log
.
info
(
"轨迹切分任务执行完成.............."
);
log
.
info
(
"轨迹切分任务执行完成.............."
);
...
@@ -438,8 +433,8 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -438,8 +433,8 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
@Override
@Override
public
Boolean
getUncompleteMileagByIotCode
(
String
iotCode
)
{
public
Boolean
getUncompleteMileagByIotCode
(
String
iotCode
)
{
Integer
integer
=
this
.
count
(
new
QueryWrapper
<
WlCarMileage
>().
select
(
"1"
).
lambda
().
eq
(
WlCarMileage:
:
getIotCode
,
iotCode
).
isNull
(
WlCarMileage:
:
getEndTime
));
Integer
integer
=
this
.
count
(
new
QueryWrapper
<
WlCarMileage
>().
select
(
"1"
).
lambda
().
eq
(
WlCarMileage:
:
getIotCode
,
iotCode
).
isNull
(
WlCarMileage:
:
getEndTime
));
return
integer
<=
0
;
return
integer
<=
0
;
}
}
private
String
getAddress
(
double
longitude
,
double
lantitude
)
{
private
String
getAddress
(
double
longitude
,
double
lantitude
)
{
...
@@ -480,13 +475,40 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
...
@@ -480,13 +475,40 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
}
}
return
res
.
toString
();
return
res
.
toString
();
}
}
@Override
@Override
public
Double
getTotalTravelByIotCodeAndDate
(
String
date
,
String
iotCode
)
{
public
Double
getTotalTravelByIotCodeAndDate
(
String
date
,
String
iotCode
)
{
return
this
.
baseMapper
.
getTotalTravelByIotCodeAndDate
(
date
,
iotCode
);
return
this
.
baseMapper
.
getTotalTravelByIotCodeAndDate
(
date
,
iotCode
);
}
}
@Override
@Override
public
Double
getTotalTravelByIotCodeAndDateProd
(
String
startDate
,
String
endDate
,
String
iotCode
)
{
public
Double
getTotalTravelByIotCodeAndDateProd
(
String
startDate
,
String
endDate
,
String
iotCode
)
{
return
this
.
baseMapper
.
getTotalTravelByIotCodeAndDateProd
(
startDate
,
endDate
,
iotCode
);
return
this
.
baseMapper
.
getTotalTravelByIotCodeAndDateProd
(
startDate
,
endDate
,
iotCode
);
}
/**
* @descrip 获取纠偏后数据应该展示的数据
* @param objects 纠偏下之前的数据
* @param startLatitude 纠偏之后的经度
* @param startLongitude 纠偏之后的纬度
* @param index 当前纠偏数据的索引
* @return 当前数据应该展示的速度
*/
public
Double
getSpeedByOriginalData
(
JSONArray
objects
,
Double
startLatitude
,
Double
startLongitude
,
Integer
index
)
{
Double
speed
=
0.0
;
for
(
int
i
=
index
;
i
<
objects
.
size
()
-
1
;
i
++)
{
JSONObject
jsonObject1
=
objects
.
getJSONObject
(
index
);
JSONObject
jsonObject2
=
objects
.
getJSONObject
(
index
+
1
);
Double
travel1
=
CoordinateUtil
.
distance
(
startLatitude
,
startLongitude
,
jsonObject1
.
getDoubleValue
(
"x"
),
jsonObject1
.
getDoubleValue
(
"y"
));
Double
travel2
=
CoordinateUtil
.
distance
(
startLatitude
,
startLongitude
,
jsonObject2
.
getDoubleValue
(
"x"
),
jsonObject2
.
getDoubleValue
(
"y"
));
log
.
info
(
"travel1:"
+
travel1
+
"travel2:"
+
travel2
);
if
(
travel2
>=
travel1
)
{
speed
=
jsonObject1
.
getDoubleValue
(
"sp"
);
break
;
}
else
{
speed
=
jsonObject2
.
getDoubleValue
(
"sp"
);
}
}
return
speed
;
}
}
}
}
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