一、核心工具选择
推荐使用高德/百度/腾讯地图的地理编码API,三者均支持地址→行政区划代码的直接解析,且提供免费额度。
二、高德地图API操作流程
-
注册与配置
- 访问https://lbs.amap.com/,注册账号并创建应用,获取
AppKey。 - 在"服务管理"中启用"地理编码"和"行政区域查询"服务。
- 访问https://lbs.amap.com/,注册账号并创建应用,获取
-
地址解析示例
python`import requests def get_area_code(address): app_key = "YOUR_APP_KEY" url = f"https://restapi.amap.com/v3/geocode/geo?address={address}&key={app_key}" response = requests.get(url) data = response.json() if data['status'] == '1' and data['geocodes']: # 提取行政区划代码(adcode) address_component = data['geocodes'][0]['address_component'] area_code = address_component['adcode'] # 区县级代码 return area_code return None` -
行政区划代码查询
-
使用https://lbs.amap.com/api/webservice/guide/api/district获取多级代码:
python`def get_district_code(keywords, level=2): url = f"https://restapi.amap.com/v3/config/district?keywords={keywords}&subdistrict={level}&key=YOUR_APP_KEY" response = requests.get(url) return response.json()`
-
三、百度地图API操作流程
-
注册与配置
- 访问https://lbsyun.baidu.com/,注册账号并创建应用,获取
AK。 - 在"控制台"→"应用管理"中启用"地理编码"服务。
- 访问https://lbsyun.baidu.com/,注册账号并创建应用,获取
-
地址解析示例
python`def get_area_code_baidu(address): ak = "YOUR_AK" url = f"http://api.map.baidu.com/geocoding/v3/?address={address}&output=json&ak={ak}" response = requests.get(url) data = response.json() if data['status'] == 0: # 提取行政区划代码 city_code = data['result']['city_code'] # 城市代码 return city_code return None`
四、腾讯地图API操作流程
-
注册与配置
- 访问https://lbs.qq.com/,注册账号并创建应用,获取
Key。 - 在"应用管理"中启用"地理编码"服务。
- 访问https://lbs.qq.com/,注册账号并创建应用,获取
-
地址解析示例
python`def get_area_code_tencent(address): key = "YOUR_KEY" url = f"https://apis.map.qq.com/ws/geocoder/v1/?address={address}&key={key}" response = requests.get(url) data = response.json() if data['status'] == 0: # 提取行政区划代码(adcode) ad_info = data['result']['ad_info'] area_code = ad_info['adcode'] # 区县级代码 return area_code return None`
五、行政区划代码解析技巧
- 层级映射 :高德/腾讯返回的
adcode为区县级代码,百度返回的city_code为城市代码。 - 多级查询 :通过
subdistrict参数(高德)或level参数(腾讯)可获取省、市、区三级代码。 - 错误处理 :
- 地址模糊时返回
comprehension评分(百度),低于80分需人工干预。 - 调用频率限制:高德/百度默认10次/秒,腾讯5次/秒,超限需申请提升配额。
- 地址模糊时返回
六、进阶方案:自定义行政区划数据库
若需完整行政区划代码体系,可结合http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/或https://lbs.amap.com/api/webservice/guide/api/district构建本地数据库:
python
`# 示例:高德行政区域API批量获取区县代码
def get_districts(parent_adcode):
url = f"https://restapi.amap.com/v3/config/district?keywords={parent_adcode}&subdistrict=3&key=YOUR_KEY"
response = requests.get(url)
return response.json()['districts'][0]['districts']`
七、注意事项
- 合规性:使用前需阅读各平台《服务协议》,避免商业滥用。
- 数据更新:行政区划代码每年调整,需定期同步最新数据。
- 坐标系:国内地图使用GCJ-02坐标系,与WGS-84存在偏差,需注意转换。
通过上述步骤,可实现通过API接口精准解析地址对应的地区码,适用于物流分单、区域统计、位置服务等场景。