【发布时间】:2019-02-11 12:22:26
【问题描述】:
在this answer 之后,我尝试检查坐标对(经度、纬度)= (-3.4066095486248327, 51.38747051763357) 是否代表陆地上的位置。这是我的代码:
import fiona
import cartopy.io.shapereader as shpreader
import shapely.geometry as sgeom
from shapely.prepared import prep
geoms = fiona.open(shpreader.natural_earth(resolution='10m', category='physical', name='land'))
land_geom = sgeom.MultiPolygon([sgeom.shape(geom['geometry']) for geom in geoms])
land = prep(land_geom)
x = -3.4066095486248327
y = 51.38747051763357
print(land.contains(sgeom.Point(x, y)))
结果是False,即使该点位于陆地上,我使用Google Maps 进行了检查。我还检查了x 和y 是否应该在sgeom.Point(x, y) 中交换位置,但这并没有成功,因为结果仍然是False。
有人可以帮忙吗?
【问题讨论】:
标签: cartopy