FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
geospatialpython/PiP_Edge.py at master · ucespff/geospatialpython · GitHub
ucespff
/
geospatialpython
Public
forked from
GeospatialPython/geospatialpython
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
geospatialpython
/
PiP_Edge.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
53 lines (44 loc) · 1.34 KB
Breadcrumbs
geospatialpython
/
PiP_Edge.py
Copy path
File metadata and controls
53 lines (44 loc) · 1.34 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Improved point in polygon test which includes edge
# and vertex points
def
point_in_poly
(
x
,
y
,
poly
):
# check if point is a vertex
if
(
x
,
y
)
in
poly
:
return
"IN"
# check if point is on a boundary
for
i
in
range
(
len
(
poly
)):
p1
=
None
p2
=
None
if
i
==
0
:
p1
=
poly
[
0
]
p2
=
poly
[
1
]
else
:
p1
=
poly
[
i
-
1
]
p2
=
poly
[
i
]
if
p1
[
1
]
==
p2
[
1
]
and
p1
[
1
]
==
y
and
x
>
min
(
p1
[
0
],
p2
[
0
])
and
x
<
max
(
p1
[
0
],
p2
[
0
]):
return
"IN"
n
=
len
(
poly
)
inside
=
False
p1x
,
p1y
=
poly
[
0
]
for
i
in
range
(
n
+
1
):
p2x
,
p2y
=
poly
[
i
%
n
]
if
y
>
min
(
p1y
,
p2y
):
if
y
<=
max
(
p1y
,
p2y
):
if
x
<=
max
(
p1x
,
p2x
):
if
p1y
!=
p2y
:
xints
=
(
y
-
p1y
)
*
(
p2x
-
p1x
)
/
(
p2y
-
p1y
)
+
p1x
if
p1x
==
p2x
or
x
<=
xints
:
inside
=
not
inside
p1x
,
p1y
=
p2x
,
p2y
if
inside
:
return
"IN"
else
:
return
"OUT"
# Test a vertex for inclusion
poligono
=
[(
-
33.416032
,
-
70.593016
), (
-
33.415370
,
-
70.589604
),
(
-
33.417340
,
-
70.589046
), (
-
33.417949
,
-
70.592351
),
(
-
33.416032
,
-
70.593016
)]
lat
=
-
33.416032
lon
=
-
70.593016
print
point_in_poly
(
lat
,
lon
,
poligono
)
# test a boundary point for inclusion
poly2
=
[(
1
,
1
), (
5
,
1
), (
5
,
5
), (
1
,
5
), (
1
,
1
)]
x
=
3
y
=
1
print
point_in_poly
(
x
,
y
,
poly2
)
Back
|
FazBrowse Home
|
New Git URL