import requests
import numpy as np
import pandas as pd
from pandas import DataFrame
key = '*****'
url = 'http://restapi.amap.com/v3/config/district?'
def getlnglat(address):
uri = url + 'keywords=' + address + '&key=' + key + '&subdistrict=1' + '&extensions=all'
response = requests.get(uri)
temp = response.json()
if temp["districts"] == []:
return None
Data = temp["districts"][0]['polyline']
name = temp["districts"][0]['name']
Data_Div1 = Data.split('|')
len_Div1 = len(Data_Div1)
num = 0
len_Div2 = 0
while num < len_Div1:
len_Div2 += len(Data_Div1[num].split(';'))
num += 1
num = 0
num_base = 0
output = np.zeros((len_Div2, 5)).astype(np.float)
while num < len_Div1:
temp = Data_Div1[num].split(';')
len_temp = len(temp)
num_temp = 0
while num_temp < len_temp:
output[num_temp + num_base, :2] = np.array(temp[num_temp].split(','))
output[num_temp + num_base, 2] = num_temp + 1
output[num_temp + num_base, 3] = num + 1
num_temp += 1
num_base += len_temp
num += 1
output = DataFrame(output, columns=['经度', '纬度', '连接顺序', '块', '名称'])
output['名称'] = name
return output
def getSubName(address):
uri = url + 'keywords=' + address + '&key=' + key + '&subdistrict=1' + '&extensions=all'
response = requests.get(uri)
temp = response.json()
list0 = temp['districts'][0]['districts']
num_Qu = 0
output = []
while num_Qu < len(list0):
output.append(list0[num_Qu]['adcode'])
num_Qu += 1
return output
province = '吉林省'
city = ''
num = 0
ad = getSubName(province)
add = getlnglat(province)
while num < len(ad):
add = pd.concat([add, getlnglat(ad[num].encode("utf-8"))])
num += 1
add.to_csv('{0}.csv'.format(province), encoding='utf-8')