from shapely.geometry import Point
from shapely.geometry.polygon import Polygon
from shapely.geometry import shape
import time
import shapefile
try:
file = shapefile.Reader(os.getcwd()+r"\\shp\HEBEI.shp", encoding='gbk')
except:
print('No shpfile!')
else:
attribute_box=[]
border_shape = file
border = border_shape.shapes()
attribute = file.records()
sf = file.shapeRecords()
for i in range(len(sf)):
attribute_box.append(sf[i].shape.bbox)
# print(attribute[i])
# print(sf[i].shape.bbox)
print('Success read shpfile')
print(attribute_box)
lat = 43.146
lon = 125.247
point = Point(lon, lat)
sheng = ''
shi = ''
xian = ''
for i in range(len(sf)):
# print(sf[i].shape.bbox)
[lon_min,lat_min,lon_max,lat_max]=attribute_box[i]
if lat_min<lat<lat_max and lon_min<lon<lon_max: ###提高速度
# if point.within(shape(sf[i].shape)):
if shape(sf[i].shape).contains(point):
geo_attr = attribute[i]
# print(geo_attr)
xian = geo_attr['XIAN_NAME']
shi = geo_attr['SHI_NAME]
sheng = geo_attr['SHENG_NAME']
print(lg, ly, lc)
break
python 根据shp文件解析经纬度市县信息
于 2022-06-24 14:56:52 首次发布
该博客介绍了如何利用Python的Shapely和shapefile库读取和操作Shapefile地理数据。通过示例展示了如何查找指定经纬度坐标点(43.146, 125.247)所在省份、城市和县的名称。通过遍历shapefile的记录和边界,实现了基于空间位置的快速查询。
Python3.10
Conda
Python
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本
您可能感兴趣的与本文相关的镜像
Python3.10
Conda
Python
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本
655

被折叠的 条评论
为什么被折叠?



