【发布时间】:2021-10-03 20:12:35
【问题描述】:
我正在使用 shapely 将坐标映射到 geojson 文件,但似乎映射错误。在下图中(来自 geojson.io),您可以看到多边形,黄色是我要映射的点。在这种情况下,匀称地告诉我该点位于多边形内部,但正如您所见,这是错误的。
我的代码:
import json
from shapely.geometry import shape, Point
upzs = open('upzs.geojson', encoding='utf-8')
upzs = json.load(upzs)
point = Point(-74.09008026123047,4.719461869021348) # longitude, latitude
for feature in upzs['features']:
polygon = shape(feature['geometry'])
if point.within(polygon) == True:
print(feature['properties']['NOMBRE'])
if polygon.contains(point):
print(feature['properties']['NOMBRE'])
我的输出:
EL RINCON
EL RINCON
('EL RINCON' 是错误多边形的名称)
如果你想测试它,你可以从link下载geojson文件
【问题讨论】:
-
你的代码返回给我,
Exception has occurred: AttributeError 'NoneType' object has no attribute 'lower' File "C:\Lab Stackoverflow\readDir.py", line 31, in <module> polygon = shape(feature['geometry']) -
@Rizquuula,感谢您的反馈。我已经更新了指向正确 geojson 文件的链接
-
我不确定我是否在关注...您说的是一个点和一个多边形,但图像似乎显示了两个多边形(一个灰色,一个较小,用黄色勾勒)。
-
@TurePålsson,黄色的那个是一个点,我只是画了一个正方形来显示。如果您检查代码示例,我将其分配为坐标