python 根据shp文件解析经纬度市县信息

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


                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值