任务内容:根据某个城市的经纬度坐标范围,将城市范围划分成一个个的小网格,依次爬取每个网格内的道路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="道