如果知道一个位置的经纬度,怎么获取这个地方的位置信息?本文根据百度地图提供的API接口可以直接查询返回地理位置信息。
python代码如下:
# encoding:utf-8 import requests import time import pandas as pd from tqdm import tqdm # 此处需要自己申请的百度地图ak ak = "xxxxxxxxxx" # 替换为自己的浏览器的headers headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0 '} # 百度地图提供的逆地理信息编码api接口 # http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的ak&output=json&coordtype=wgs84ll&location=31.225696563611,121.49884033194 # 逆地理信息编码 def get_address_info(ak=None,lat=None,lon=None): url = "http://api.map.baidu.com/reverse_geocoding/v3/?ak={}&&output=json&coordtype=wgs84ll&location={},{}".format(ak,lat,lon) try: time.sleep(0.1) data = requests.get(url,headers=headers).json() if data["status"] == 0: if data['result']: lat = data['result']['location'].get('lat', '-') # .get('business', 'default') lon = data['result']['location'].get('lng', '-') business = data['result'].get('business', '-') # 所在商圈 cityCode = data['result'].get('cityCode', '-') # 城市代码 city = data['result']["addressComponent"].get('city', '-') # 城市 district = data['result']["addressComponent"].get('district', '-') # 区 street = data['result']["addressComponent"].get('street', '-') # 街道 else: print("no result back!") else: print("=======错误状态码:{}========".format(response["status"])) time.sleep(0.1) except: time.sleep(0.1) print("请求失败!") business = "-" cityCode = "-" city = "-" district = "-" street = "-" pass return business,cityCode,city,district,street business = [] cityCode = [] city = [] district = [] street = [] # addlist = df["address"] data = pd.read_excel(r"E:\dosn2\qiyexinxi\info.xlsx",encoding="gbk") # data.head(11) lats = list(data["纬度"]) lons = list(data["经度"]) for i,j in tqdm(zip(lats,lons)): business1,cityCode1,city1,district1,street1 = get_address_info(ak,str(i),str(j)) business.append(business1) cityCode.append(cityCode1) city.append(city1) district.append(district1) street.append(street1) data.insert(19,"附近商圈",business) data.insert(18,"城市代码",cityCode) data.insert(15,"城市",city) data.insert(16,"地区",district) data.insert(17,"街道",street) data.to_excel(r"E:\dosn2\qiyexinxi\resultcj.xls",sheet_name='Sheet1',encoding="gbk",index=False)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273