通过导入Excel文件(包含一列需要标注的地址),通过百度地图经纬度转换得到需要标注地点的经纬度(保存在经纬度.xlsx),然后再通过导入经纬度.xlsx通过百度地图api批量在地图上标注地点。
首先先到百度地图开放平台百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com)得到自己的ak,放到下面代码的相应位置就好了。
下面代码可以得到经纬度或者是详细地址:
# coding:utf-8
from urllib.request import quote
import requests
import pandas as pd
pd.set_option('display.width', 1000)
pd.set_option('display.max_columns', None)
import json
# 通过百度地图地理查询和逆地址查询
def get_location(address):
try:
url = 'http://api.map.baidu.com/place/v2/search?query={}®ion=标注范围&output=json&ak=你的ak&scope=2'.format(quote(address))
response = requests.get(url)
result = response.json()
if result['status'] == 0 and result['results']:
lng = result['results'][0]['location']['lng']
lat = result['results'][0]['location']['lat']
return lng, lat
except Exception as e:
print(f"Failed to get location for {address}: {e}")
return '', ''
def get_address(lng, lat):
try:
url = 'http://api.map.baidu.com/reverse_geocoding/v3/?'
output = 'json'
ak = 'BXottO3XSK3SKXn99fHquBoPo620cExI'
uri = url + '&output=' + output + '&ak=' + ak + '&location=' + str(lat) + ',' + str(lng)
res