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 首次发布