저는 파이썬을 사용하고 있으며지도상의 폴리곤의 위도와 경도 (도 단위)를 정의했습니다. 내 목표는 좌표의 일반 지점 P
이 이러한 다각형 내에 있는지 확인하는 것입니다. 따라서 해당 조건을 점검하고 점이 다각형의 내부 또는 외부에있는 경우 True
또는 False
을 반환하는 기능을 갖고 싶습니다. 결과가 False
지오 - 포인트가 파이썬의 폴리곤 내부 또는 외부에 있는지 확인하십시오.
질문 될 수 있도록이 예에서
지점은 외부입니다 : 내 목표에 도달 할 수있는 라이브러리/패키지가 있습니까? 그렇다면 어느 것이 좋습니다? 그것을 사용하는 방법에 대한 작은 예제를 줄 수 있습니까? 여기
는 지금까지 작성한 코드입니다 : 다각형 내가 cartopy 사용하고 난 다음 코드 줄 썼다 관심 지점 플롯하기 위해import numpy as np
# Define vertices of polygon (lat/lon)
v0 = [7.5, -2.5]
v1 = [2, 3.5]
v2 = [-2, 4]
v3 = [-5.5, -4]
v4 = [0, -10]
lats_vect = np.array([v0[0],v1[0],v2[0],v3[0],v4[0]])
lons_vect = np.array([v0[1],v1[1],v2[1],v3[1],v4[1]])
# Point of interest P
x, y = -6, 5 # x = Lat, y = Lon
## START MODIFYING FROM HERE; DO NOT MODIFY POLYGON VERTICES AND DATA TYPE
# Check if point of interest falls within polygon boundaries
# If yes, return True
# If no, return falls
:
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
ax = plt.axes(projection=ccrs.PlateCarree())
ax.stock_img()
# Append first vertex to end of vector to close polygon when plotting
lats_vect = np.append(lats_vect, lats_vect[0])
lons_vect = np.append(lons_vect, lons_vect[0])
plt.plot([lons_vect[0:-1], lons_vect[1:]], [lats_vect[0:-1], lats_vect[1:]],
color='black', linewidth=1,
transform=ccrs.Geodetic(),
)
plt.plot(y, x,
'*', # marker shape
color='blue', # marker colour
markersize=8 # marker size
)
plt.show()
을
주 :
- 점은 큰 CI에 의해 서로 연결되어 rcles!
- 가 나는 internt에서 연구하고 좀 비슷한 질문을 찾는 결국 like this one하지만 나는 그들이 이후로 성공을 내가 가지고 있지 않은
.shp
모든 파일을 사용할 수 없었다.
이 알고리즘을 Python https://wrf.ecse.rpi.edu//Research/Short_Notes/pnpoly로 변환 해보십시오.html # C 코드 – arboreal84
python에는 아무것도 수행하는 패키지가 없습니다. 미리 만들어진 모듈이 적습니다. 패키지는 일반적으로 커뮤니티에 의해 제공됩니다. – Uriel
다각형은 항상 볼록합니까? –