高德地图之Python爬取上海市所有道路轮廓坐标

任务内容:根据某个城市的经纬度坐标范围,将城市范围划分成一个个的小网格,依次爬取每个网格内的道路id,name,存储至excel文件,然后再根据道路id,爬取每条道路的坐标轮廓。

步骤:

step1:申请高德地图的key,之后调用接口时会用到。

step2:根据高德地图接口可获取上海市的区域范围的经纬度坐标,此处可直接更改下图中的参数,例如,我想要上海市的区域坐标范围,那么可修改下图中的参数。

 修改参数后点击运行,

查看 polyline字段。

处理polyline字段,获得最大以及最小的longitude,latitude。 

step3:划分网格,代码如下:

maxlatitude = 122.247149
minlatitude = 120.856804
maxlongitude = 31.872716
minlongitude = 30.675593
def generalID(column_num,row_num):
    latitude = (maxlatitude - minlatitude)/column_num
    longitude = (maxlongitude - minlongitude)/row_num
    print("maxlatitude", maxlatitude,"minlatitude",minlatitude,"latitude",latitude,"column_num",column_num)
    polylists = []

    for i in range(column_num):
        left_latitude = minlatitude + latitude * i
        righ_latitude = minlatitude + latitude * (i+1)
        for j in range(row_num):
            temp = ""
            left_longitude = minlongitude + longitude * j
            righ_longitude = minlongitude + longitude * (j+1)
            temp = str(left_latitude) + ',' + str(left_longitude) + '|' + str(righ_latitude) + ',' + str(righ_longitude)
            polylists.append(temp)
    return polylists

step4:根据返回的坐标对,查询该网格下道路的id,使用接口

#https://restapi.amap.com/v3/place/polygon?key=你的Key&polygon=
# 120.856804,30.675593|121.856804,31.675593&keywords="道
  • 13
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 51
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值