Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
NewTruckTerminalSyetem
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
SQL_Mou
NewTruckTerminalSyetem
Commits
431d33ee
Commit
431d33ee
authored
Sep 08, 2022
by
xxx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
eaa86560
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
53 deletions
+36
-53
index.vue
...ews/MLargeScreen/components/startOrderReceiving/index.vue
+36
-53
No files found.
src/views/MLargeScreen/components/startOrderReceiving/index.vue
View file @
431d33ee
...
@@ -438,16 +438,16 @@ export default {
...
@@ -438,16 +438,16 @@ export default {
if
(
resSon2
){
if
(
resSon2
){
let
weilanArr1
=
[];
let
weilanArr1
=
[];
resSon2
[
this
.
carDestination
].
forEach
((
item
,
index
)
=>
{
resSon2
[
this
.
carDestination
].
forEach
((
item
,
index
)
=>
{
let
weilanobj1
=
{}
;
let
weilanobj1
=
[]
;
weilanobj1
.
lat
=
item
.
lat
;
weilanobj1
.
push
(
parseFloat
(
item
.
lon
))
;
weilanobj1
.
lng
=
item
.
lon
;
weilanobj1
.
push
(
parseFloat
(
item
.
lat
))
;
weilanArr1
.
push
(
weilanobj1
);
weilanArr1
.
push
(
weilanobj1
);
})
})
httpGet
(
carRealTimeLocationQuery2
,{
name
:
this
.
equipmentName
}).
then
((
resSon3
)
=>
{
httpGet
(
carRealTimeLocationQuery2
,{
name
:
this
.
equipmentName
}).
then
((
resSon3
)
=>
{
if
(
resSon3
.
code
==
200
){
if
(
resSon3
.
code
==
200
){
let
resSon3Obj1
=
{}
;
let
resSon3Obj1
=
[]
;
resSon3Obj1
.
lat
=
resSon3
.
data
.
location
.
y
;
resSon3Obj1
.
push
(
resSon3
.
data
.
location
.
x
)
;
resSon3Obj1
.
lng
=
resSon3
.
data
.
location
.
x
;
resSon3Obj1
.
push
(
resSon3
.
data
.
location
.
y
)
;
this
.
xiecheBtnAble
=
this
.
isPointInPolygon
(
resSon3Obj1
,
weilanArr1
);
this
.
xiecheBtnAble
=
this
.
isPointInPolygon
(
resSon3Obj1
,
weilanArr1
);
if
(
!
this
.
xiecheBtnAble
){
if
(
!
this
.
xiecheBtnAble
){
...
@@ -480,6 +480,11 @@ export default {
...
@@ -480,6 +480,11 @@ export default {
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
oldxy
.
lat
=
0
;
this
.
oldxy
.
lat
=
0
;
this
.
oldxy
.
lng
=
0
;
this
.
oldxy
.
lng
=
0
;
this
.
$notify
({
title
:
'
卸车成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
})
})
}
}
...
@@ -523,60 +528,38 @@ export default {
...
@@ -523,60 +528,38 @@ export default {
return
currentFormatDate
;
return
currentFormatDate
;
},
},
//判断卸车是车是否到达了卸区
//判断卸车是车是否到达了卸区
isPointInPolygon
(
point
,
p
ts
){
isPointInPolygon
(
checkPoint
,
polygonPoin
ts
){
var
N
=
pts
.
length
;
//pts [{lat:xxx,lng:xxx},{lat:xxx,lng:xxx}]
var
counter
=
0
;
var
boundOrVertex
=
true
;
//如果点位于多边形的顶点或边上,也算做点在多边形内,直接返回true
var
i
;
var
intersectCount
=
0
;
//cross points count of x
var
xinters
;
var
p
recision
=
2
e
-
10
;
//浮点类型计算时候与0比较时候的容差
var
p
1
,
p2
;
var
p
1
,
p2
;
//neighbour bound vertices
var
p
ointCount
=
polygonPoints
.
length
;
var
p
=
point
;
//point {lat:xxx,lng:xxx}
p1
=
polygonPoints
[
0
];
p1
=
pts
[
0
];
//left vertex
for
(
i
=
1
;
i
<=
pointCount
;
i
++
)
{
for
(
var
i
=
1
;
i
<=
N
;
++
i
){
//check all rays
p2
=
polygonPoints
[
i
%
pointCount
];
if
((
p
.
lat
==
p1
.
lat
)
&&
(
p
.
lng
==
p1
.
lng
)){
if
(
return
boundOrVertex
;
//p is an vertex
checkPoint
[
0
]
>
Math
.
min
(
p1
[
0
],
p2
[
0
])
&&
}
checkPoint
[
0
]
<=
Math
.
max
(
p1
[
0
],
p2
[
0
])
p2
=
pts
[
i
%
N
];
//right vertex
)
{
if
(
p
.
lat
<
Math
.
min
(
p1
.
lat
,
p2
.
lat
)
||
p
.
lat
>
Math
.
max
(
p1
.
lat
,
p2
.
lat
)){
//ray is outside of our interests
if
(
checkPoint
[
1
]
<=
Math
.
max
(
p1
[
1
],
p2
[
1
]))
{
p1
=
p2
;
if
(
p1
[
0
]
!=
p2
[
0
])
{
continue
;
//next ray left point
xinters
=
}
(
checkPoint
[
0
]
-
p1
[
0
])
*
if
(
p
.
lat
>
Math
.
min
(
p1
.
lat
,
p2
.
lat
)
&&
p
.
lat
<
Math
.
max
(
p1
.
lat
,
p2
.
lat
)){
//ray is crossing over by the algorithm (common part of)
(
p2
[
1
]
-
p1
[
1
])
/
if
(
p
.
lng
<=
Math
.
max
(
p1
.
lng
,
p2
.
lng
)){
//x is before of ray
(
p2
[
0
]
-
p1
[
0
])
+
if
(
p1
.
lat
==
p2
.
lat
&&
p
.
lng
>=
Math
.
min
(
p1
.
lng
,
p2
.
lng
)){
//overlies on a horizontal ray
p1
[
1
];
return
boundOrVertex
;
if
(
p1
[
1
]
==
p2
[
1
]
||
checkPoint
[
1
]
<=
xinters
)
{
counter
++
;
}
}
if
(
p1
.
lng
==
p2
.
lng
){
//ray is vertical
if
(
p1
.
lng
==
p
.
lng
){
//overlies on a vertical ray
return
boundOrVertex
;
}
else
{
//before ray
++
intersectCount
;
}
}
}
else
{
//cross point on the left side
var
xinters
=
(
p
.
lat
-
p1
.
lat
)
*
(
p2
.
lng
-
p1
.
lng
)
/
(
p2
.
lat
-
p1
.
lat
)
+
p1
.
lng
;
//cross point of lng
if
(
Math
.
abs
(
p
.
lng
-
xinters
)
<
precision
){
//overlies on a ray
return
boundOrVertex
;
}
}
if
(
p
.
lng
<
xinters
){
//before ray
++
intersectCount
;
}
}
p1
=
p2
;
}
}
}
if
(
counter
%
2
==
0
)
{
}
else
{
//special case when ray is crossing through the vertex
if
(
p
.
lat
==
p2
.
lat
&&
p
.
lng
<=
p2
.
lng
){
//p crossing over p2
var
p3
=
pts
[(
i
+
1
)
%
N
];
//next vertex
if
(
p
.
lat
>=
Math
.
min
(
p1
.
lat
,
p3
.
lat
)
&&
p
.
lat
<=
Math
.
max
(
p1
.
lat
,
p3
.
lat
)){
//p.lat lies between p1.lat & p3.lat
++
intersectCount
;
}
else
{
intersectCount
+=
2
;
}
}
}
p1
=
p2
;
//next ray left point
}
if
(
intersectCount
%
2
==
0
){
//偶数在多边形外
return
false
;
return
false
;
}
else
{
//奇数在多边形内
}
else
{
return
true
;
return
true
;
}
}
},
},
...
...
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