1.1 天地图API特性分析
天地图地理编码API(http://api.tianditu.gov.cn/geocoder)基于WGS84坐标系,支持结构化地址与经纬度的双向转换。其核心参数包括:
{
"keyWord": "北京市海淀区莲花池西路28号",
"level": "15", # 地图缩放级别
"mapBound": "116.375,39.893,116.421,39.918", # 搜索范围坐标
"queryType": "2" # 查询类型(1-关键词搜索,2-精确地址)
}
运行
1.2 QGIS数据处理架构
地址CSV文件
QGIS数据导入模块
Python脚本处理
天地图API交互
结果缓存机制
错误重试模块
QGIS图层生成
结果验证工具
二、天地图API接入准备
2.1 API密钥申请流程
- 访问天地图开放平台(天地图API)
- 注册开发者账号(需实名认证)
- 创建应用获取API Key,注意配额限制:
- 个人开发者:5000次/日
- 企业认证用户:100000次/日
2.2 QGIS环境配置
# 安装必要Python库
pip install requests pandas qgis
运行
三、批量处理脚本开发
3.1 核心代码结构
from qgis.core import *
import requests, csv, time
class TiandituGeocoder:
def __init__(self, api_key):
self.base_url = "http://api.tianditu.gov.cn/geocoder"
self.api_key = api_key
self.rate_limit = 50 # 每分钟请求上限
def geocode(self, address):
params = {
"ds": json.dumps({"keyWord": address}),
"tk": self.api_key
}
try: