python - 如何使用geojson和shapely确定一个点是否在多边形内部

标签 python polygon geojson shapely

我希望在 map 上创建一个区域,并能够自动确定点(坐标)是否在该区域内。在本示例中,我使用整个美国的 geojson 文件和纽约市的坐标。

Geojson:https://github.com/johan/world.geo.json

我已阅读 shapely 文档,但无法弄清楚为什么我的结果返回 False。任何帮助将不胜感激。

import json
from shapely.geometry import shape, GeometryCollection, Point

with open('USA.geo.json', 'r') as f:
    js = json.load(f)

point = Point(40.712776, -74.005974)

for feature in js['features']:

    polygon = shape(feature['geometry'])

    if polygon.contains(point):
        print ('Found containing polygon:', feature)

我希望打印包含的坐标,但没有打印任何内容。

最佳答案

您需要交换 Point() 的值:

point = Point(-74.005974, 40.712776)

您使用的数据集的坐标首先是经度,其次是纬度。

关于python - 如何使用geojson和shapely确定一个点是否在多边形内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57727739/

相关文章:

Python 的 os.chdir 函数不起作用

具有所有子列表变体的单个列表的 Pythonic 方式

python - 限制scrapy可以收集的元素数量

geometry - 如何使用 sequelize 检查特定 lat lng 是否位于多边形中

ios - 为什么空 SceneKit 场景具有高多边形数?

javascript - L.geoJSON - 如何使用更多 L.geoJSON 坐标处理多个引用文件?

python - 从拟合分布中抽取

c - 用C解析geojson文件

ios - 在 Apple Maps 中绘制 GeoJson 作为叠加层

python - Shapely : "shapely.geos.TopologicalError: The operation ' GEOSIntersection_r' produced a null geometry"中的多边形相交错误