


import requests
address = '40.8587960,86.866991'
url = 'http://api.map.baidu.com/geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&location=' + str(address)
response = requests.get(url)
answer = response.json()
print('得到反解数据', answer)


1 import requests
2 address = '40.8587960,86.866991'
3 url = 'http://api.map.baidu.com/geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&location=' + str(address)
4 response = requests.get(url)
5 answer = response.json()
6 print('得到反解数据', answer)
7 lng = answer['result']['location']['lng']
8 lat = answer['result']['location']['lat']
9 formatted_address = answer['result']['formatted_address']
10 business = answer['result']['business']
11 city = answer['result']['addressComponent']['city']
12 direction = answer['result']['addressComponent']['city']
13 distance = answer['result']['addressComponent']['direction']
14 district = answer['result']['addressComponent']['district']
15 province = answer['result']['addressComponent']['province']
16 street = answer['result']['addressComponent']['street']
17 street_number = answer['result']['addressComponent']['street_number']
18 cityCode = answer['result']['cityCode']
19 s = str(lng) + '|' + str(lat)+ '|' + str(formatted_address) + '|' + str(business) + '|'+ str(city) + '|'+ str(direction) + '|'+ str(distance) + '|'+ str(district) + '|'+ str(province) + '|'+ str(street) + '|'+ str(street_number) + '|'+ str(cityCode)
20 print(s)

http://api.map.baidu.com/lbsapi/getpoint/index.html

1 #鸡头1 2 #129.000000,54.000000 #锚点(鸡头) 3 #115.000000,54.0000000 4 #115.000000,42.0000000 #北京 5 #129.000000,42.000000 #沈阳 6 #['54.0000000', '42.000000', '129.000000', '115.000000'],#鸡头1 7 8 #鸡头2 9 #129.000000,42.000000 #沈阳 10 #135.200000,42.000000 11 #129.000000,50.000000 12 #135.200000,50.000000 13 #['50.000000','42.000000','135.000000','129.000000'],#鸡头2 14 #鸡头补充 15 #115.000000,42.0000000 #北京 16 #105.0000000,42.000000 #锚点(银川上面) 17 #105.0000000,45.500000 #乌兰巴托 18 #115.000000,45.500000 19 #['45.500000', '42.000000', '115.000000', '105.000000'],#鸡头补充 20 21 #鸡屁股上补充 22 #105.0000000,42.000000 #锚点(银川上面) 23 #91.500000,45.500000 #乌鲁木齐 24 #105.0000000,45.500000 #乌兰巴托 25 #91.500000,42.000000 #锚点(鸡屁股) 26 #['45.500000', '42.000000', '105.0000000', '91.500000'],#鸡屁股上补充 27 #鸡屁股上 28 #91.500000,42.000000 #锚点(鸡屁股) 29 #79.800000,42.000000 #啊拉木图 30 #79.800000,49.200000 31 #91.500000,49.200000 32 #['49.200000', '42.000000', '91.500000', '79.800000'],#鸡屁股上 33 #鸡屁股下 34 #79.800000,42.000000 #啊拉木图 35 #79.800000,30.0000000 #巴雷利 36 #73.400000,42.000000 37 #73.400000,30.000000 38 #['42.000000', '30.000000', '79.800000', '73.400000'],#鸡屁股下 39 #鸡下补充 40 #79.800000,30.0000000 #巴雷利 41 #97.300000,30.000000 #拉萨昌都(锚点) 42 #97.300000,26.800000 43 #79.800000,26.800000 44 #['42.000000', '30.000000', '97.300000', '79.800000'],#鸡下补充 45 #鸡下 46 #97.300000,30.000000 #拉萨昌都(锚点) 47 #105.000000,30.000000 #(成都重庆贵阳) 48 #105.000000,21.000000 #河内 49 #97.300000,21.000000 #曼德勒 50 #['30.000000', '21.000000', '105.000000', '97.300000'],#鸡下 51 52 53 #鸡胸 54 #105.0000000,42.000000 #锚点(银川上面) 55 #105.0000000,21.000000 #河内 56 #129.000000,42.000000 #沈阳 57 #129.000000,21.000000 #台北(海) 58 #['42.000000', '21.000000', '129.000000', '105.000000'],#鸡胸 59 60 #鸡身 61 #105.000000,42.000000 #锚点(银川上面) 62 #79.800000,42.000000 #啊拉木图 63 #79.800000,30.000000 #巴雷利 64 #105.000000,30.000000 #(成都重庆贵阳) 65 #['42.000000', '30.000000', '105.000000', '79.800000'],#鸡身 66 #鸡脚 (南海) 67 #105.000000,21.000000 #河内 68 #129.000000,21.000000 #台北(海) 69 #105.0000000,3.000000 #新加坡 70 #129.000000,3.000000 #海(苏拉威西海) 71 #['21.000000', '3.000000', '129.000000', '105.000000'],


1 import requests
2 from decimal import Decimal
3 def obtain(address):
4 url = 'http://api.map.baidu.com/geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&location=' + str(address)
5 response = requests.get(url)
6 answer = response.json()
7 print('得到反解数据', answer)
8 lng = answer['result']['location']['lng']
9 lat = answer['result']['location']['lat']
10 formatted_address = answer['result']['formatted_address']
11 business = answer['result']['business']
12 city = answer['result']['addressComponent']['city']
13 direction = answer['result']['addressComponent']['city']
14 distance = answer['result']['addressComponent']['direction']
15 district = answer['result']['addressComponent']['district']
16 province = answer['result']['addressComponent']['province']
17 street = answer['result']['addressComponent']['street']
18 street_number = answer['result']['addressComponent']['street_number']
19 cityCode = answer['result']['cityCode']
20 s = str('%6f' % lng) + '|' + str('%6f' % lat) + '|' + str(formatted_address) + '|' + str(business) + '|' + str(
21 city) + '|' + str(direction) + '|' + str(distance) + '|' + str(district) + '|' + str(province) + '|' + str(
22 street) + '|' + str(street_number) + '|' + str(cityCode)
23 print(s)
24
25 def longitude(slon,precision,elon,slat):
26 while slon >= elon:
27 address = '%s,%s' % (slon,slat) # 请求用的,经度,纬度,
28 obtain(address)#传入经度,纬度,获取地址地名
29 slon -= precision
30
31 #['42.000000', '30.000000', '105.000000', '79.800000'], # 鸡身
32 slon = Decimal('42.000000')#经度longitude开始
33 elon = Decimal('30.000000')#经度结束
34 slat=Decimal('105.000000')# 纬度latitude开始
35 elat=Decimal('79.800000')#纬度结束
36 precision = Decimal('5.0001000')#精度 0.0001000==1000米
37 while slat>=elat:
38 slat -= precision
39 longitude(slon,precision,elon,slat)


1 import requests
2 from decimal import Decimal
3 def obtain(address):
4 url = 'http://api.map.baidu.com/geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&location=' + str(address)
5 response = requests.get(url)
6 answer = response.json()
7 print('得到反解数据', answer)
8 lng = answer['result']['location']['lng']
9 lat = answer['result']['location']['lat']
10 formatted_address = answer['result']['formatted_address']
11 business = answer['result']['business']
12 city = answer['result']['addressComponent']['city']
13 direction = answer['result']['addressComponent']['city']
14 distance = answer['result']['addressComponent']['direction']
15 district = answer['result']['addressComponent']['district']
16 province = answer['result']['addressComponent']['province']
17 street = answer['result']['addressComponent']['street']
18 street_number = answer['result']['addressComponent']['street_number']
19 cityCode = answer['result']['cityCode']
20 s = str('%6f' % lng) + '|' + str('%6f' % lat) + '|' + str(formatted_address) + '|' + str(business) + '|' + str(
21 city) + '|' + str(direction) + '|' + str(distance) + '|' + str(district) + '|' + str(province) + '|' + str(
22 street) + '|' + str(street_number) + '|' + str(cityCode)
23 print(s)
24
25 def longitude(slon,precision,elon,slat):
26 while slon >= elon:
27 address = '%s,%s' % (slon,slat) # 请求用的,经度,纬度,
28 obtain(address)#传入经度,纬度,获取地址地名
29 slon -= precision
30
31 LogLatList=[
32 ['42.000000', '30.000000', '105.000000', '79.800000'], # 鸡身
33 ['42.000000', '21.000000', '129.000000', '105.000000'], # 鸡胸
34 ['50.000000', '42.000000', '135.000000','129.000000'], #鸡头2
35 ['54.000000', '42.000000', '129.000000', '115.000000'], #鸡头1
36 ['45.500000', '42.000000', '115.000000', '105.000000'], #鸡头补充
37 ['49.200000', '42.000000', '91.500000', '79.800000'], # 鸡屁股上
38 ['42.000000', '30.000000', '79.800000', '73.400000'], # 鸡屁股下
39 ['45.500000', '42.000000', '105.000000', '91.500000'], #鸡屁股上补充
40 ['30.000000', '21.000000', '105.000000', '97.300000'], # 鸡下
41 ['42.000000', '30.000000', '97.300000', '79.800000'], #鸡下补充
42 ['21.000000', '3.000000', '129.000000', '105.000000'], # 鸡脚 (南海)
43 ]
44 precision = Decimal('10.0001000') # 精度 0.0001000==1000米
45 for single_list in LogLatList:
46 slons,elons,slats,elats=single_list
47 #['42.000000', '30.000000', '105.000000', '79.800000'], # 鸡身
48 slon = Decimal(slons)#经度longitude开始
49 elon = Decimal(elons)#经度结束
50 slat=Decimal(slats)# 纬度latitude开始
51 elat=Decimal(elats)#纬度结束
52
53 while slat>=elat:
54 slat -= precision
55 longitude(slon,precision,elon,slat)


1 import requests
2 from decimal import Decimal
3 import threading , time
4 def obtain(address):
5 url = 'http://api.map.baidu.com/geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&location=' + str(address)
6 response = requests.get(url)
7 answer = response.json()
8 print('得到反解数据', answer)
9 lng = answer['result']['location']['lng']
10 lat = answer['result']['location']['lat']
11 formatted_address = answer['result']['formatted_address']
12 business = answer['result']['business']
13 city = answer['result']['addressComponent']['city']
14 direction = answer['result']['addressComponent']['city']
15 distance = answer['result']['addressComponent']['direction']
16 district = answer['result']['addressComponent']['district']
17 province = answer['result']['addressComponent']['province']
18 street = answer['result']['addressComponent']['street']
19 street_number = answer['result']['addressComponent']['street_number']
20 cityCode = answer['result']['cityCode']
21 s = str('%6f' % lng) + '|' + str('%6f' % lat) + '|' + str(formatted_address) + '|' + str(business) + '|' + str(
22 city) + '|' + str(direction) + '|' + str(distance) + '|' + str(district) + '|' + str(province) + '|' + str(
23 street) + '|' + str(street_number) + '|' + str(cityCode)
24 print(s)
25
26 def longitude(slon,precision,elon,slat):
27 while slon >= elon:
28 address = '%s,%s' % (slon,slat) # 请求用的,经度,纬度,
29 obtain(address)#传入经度,纬度,获取地址地名
30 slon -= precision
31
32
33 class Thre(threading.Thread):#继承线程中的类
34 #Thre(single_list,precision,ctime)
35 def __init__(self,single_list,precision,ctime):
36 super(Thre,self).__init__()#重新写父类,解决多继承问题
37 self.precision=precision#精度
38 self.single_list=single_list#单列表
39 self.ctime=ctime#当前时间
40 def run(self):
41 print('执行线程开始时间:', self.ctime, '执行的列表:',self.single_list)
42 slons, elons, slats, elats = self.single_list
43 # ['42.000000', '30.000000', '105.000000', '79.800000'], # 鸡身
44 slon = Decimal(slons) # 经度longitude开始
45 elon = Decimal(elons) # 经度结束
46 slat = Decimal(slats) # 纬度latitude开始
47 elat = Decimal(elats) # 纬度结束
48 while slat >= elat:
49 slat -= self.precision
50 longitude(slon,self.precision, elon, slat)
51 else:
52 end_time=time.time()-self.ctime
53 print('执行线程所用时间:',end_time, '执行的列表:',self.single_list)
54
55 def main():
56 LogLatList=[
57 ['42.000000', '30.000000', '105.000000', '79.800000'], # 鸡身
58 ['42.000000', '21.000000', '129.000000', '105.000000'], # 鸡胸
59 ['50.000000', '42.000000', '135.000000','129.000000'], #鸡头2
60 ['54.000000', '42.000000', '129.000000', '115.000000'], #鸡头1
61 ['45.500000', '42.000000', '115.000000', '105.000000'], #鸡头补充
62 ['49.200000', '42.000000', '91.500000', '79.800000'], # 鸡屁股上
63 ['42.000000', '30.000000', '79.800000', '73.400000'], # 鸡屁股下
64 ['45.500000', '42.000000', '105.000000', '91.500000'], #鸡屁股上补充
65 ['30.000000', '21.000000', '105.000000', '97.300000'], # 鸡下
66 ['42.000000', '30.000000', '97.300000', '79.800000'], #鸡下补充
67 ['21.000000', '3.000000', '129.000000', '105.000000'], # 鸡脚 (南海)
68 ]
69 precision = Decimal('20.0001000') # 精度 0.0001000==1000米
70
71 thre_list=[] #线程列表
72 for single_list in LogLatList:
73 ctime=time.time()#当前时间
74 temp=Thre(single_list,precision,ctime)#实例化类
75 thre_list.append(temp)#线程列表
76 for thre in thre_list:#线程列表
77 thre.start()#执行单个线程
78
79 if __name__ == '__main__':
80 main()


1 import requests
2 from decimal import Decimal
3 import threading , time
4 def obtain(address,file_name):
5 url = 'http://api.map.baidu.com/geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&location=' + str(address)
6 response = requests.get(url)
7 answer = response.json()
8 print('得到反解数据', answer)
9 lng = answer['result']['location']['lng']
10 lat = answer['result']['location']['lat']
11 formatted_address = answer['result']['formatted_address']
12 business = answer['result']['business']
13 city = answer['result']['addressComponent']['city']
14 direction = answer['result']['addressComponent']['city']
15 distance = answer['result']['addressComponent']['direction']
16 district = answer['result']['addressComponent']['district']
17 province = answer['result']['addressComponent']['province']
18 street = answer['result']['addressComponent']['street']
19 street_number = answer['result']['addressComponent']['street_number']
20 cityCode = answer['result']['cityCode']
21 s = str('%6f' % lng) + '|' + str('%6f' % lat) + '|' + str(formatted_address) + '|' + str(business) + '|' + str(
22 city) + '|' + str(direction) + '|' + str(distance) + '|' + str(district) + '|' + str(province) + '|' + str(
23 street) + '|' + str(street_number) + '|' + str(cityCode)
24 print(s)
25 if cityCode==0:
26 #print('外国')
27 pass
28 else:
29 #print(s)
30 fname=str(file_name)+'list'
31 with open(fname, 'a+', encoding=('utf-8')) as f:
32 f.write(s+'\n')
33
34 def longitude(slon,precision,elon,slat,file_name):
35 while slon >= elon:
36 address = '%s,%s' % (slon,slat) # 请求用的,经度,纬度,
37 obtain(address,file_name)#传入经度,纬度,获取地址地名
38 slon -= precision
39
40
41 class Thre(threading.Thread):#继承线程中的类
42 #Thre(single_list,precision,ctime)
43 #temp = Thre(single_list, precision, ctime, file_name) # 实例化类
44 def __init__(self,single_list,precision,ctime,file_name):
45 super(Thre,self).__init__()#重新写父类,解决多继承问题
46 self.precision=precision#精度
47 self.single_list=single_list#单列表
48 self.ctime=ctime#当前时间
49 self.file_name=file_name#文件名
50 def run(self):
51 print('执行线程开始时间:', self.ctime, '执行的列表:',self.single_list)
52 slons, elons, slats, elats = self.single_list
53 # ['42.000000', '30.000000', '105.000000', '79.800000'], # 鸡身
54 slon = Decimal(slons) # 经度longitude开始
55 elon = Decimal(elons) # 经度结束
56 slat = Decimal(slats) # 纬度latitude开始
57 elat = Decimal(elats) # 纬度结束
58 while slat >= elat:
59 slat -= self.precision
60 longitude(slon,self.precision, elon, slat,self.file_name)
61 else:
62 end_time=time.time()-self.ctime
63 print('执行线程所用时间:',end_time, '执行的列表:',self.single_list)
64
65 def main():
66 LogLatList=[
67 ['42.000000', '30.000000', '105.000000', '79.800000'], # 鸡身
68 ['42.000000', '21.000000', '129.000000', '105.000000'], # 鸡胸
69 ['50.000000', '42.000000', '135.000000','129.000000'], #鸡头2
70 ['54.000000', '42.000000', '129.000000', '115.000000'], #鸡头1
71 ['45.500000', '42.000000', '115.000000', '105.000000'], #鸡头补充
72 ['49.200000', '42.000000', '91.500000', '79.800000'], # 鸡屁股上
73 ['42.000000', '30.000000', '79.800000', '73.400000'], # 鸡屁股下
74 ['45.500000', '42.000000', '105.000000', '91.500000'], #鸡屁股上补充
75 ['30.000000', '21.000000', '105.000000', '97.300000'], # 鸡下
76 ['42.000000', '30.000000', '97.300000', '79.800000'], #鸡下补充
77 ['21.000000', '3.000000', '129.000000', '105.000000'], # 鸡脚 (南海)
78 ]
79 # ——测试使用——开始————
80 precision = Decimal('1.0001000') # 精度 0.0001000==1000米
81 # ——测试使用——结束————
82
83 #——实际获取时替换——精度自己控制————建议是 0.0001000 ————开始————
84 #precision = Decimal('0.0001000') # 精度 0.0001000==1000米
85 # ——实际获取时替换——精度自己控制————建议是 0.0001000 ————结束————
86
87 file_name=0
88
89 thre_list=[] #线程列表
90 for single_list in LogLatList:
91 ctime=time.time()#当前时间
92 temp=Thre(single_list,precision,ctime,file_name)#实例化类
93 file_name+=1
94 thre_list.append(temp)#线程列表
95 for thre in thre_list:#线程列表
96 thre.start()#执行单个线程
97
98 if __name__ == '__main__':
99 main()

来源:https://www.cnblogs.com/ujq3/p/9775376.html
