文章目录
准备
首先要注册天地图,并申请天地图的API key,详细过程略,参见天地图官方网站 http://lbs.tianditu.gov.cn 。
本文中,我申请的key只能用于浏览器,所以下面均以浏览器为例。
从经纬度获取地理信息
也叫"逆地理编码查询"。
参考 http://lbs.tianditu.gov.cn/server/geocoding.html 。
请求格式:
bash
http://api.tianditu.gov.cn/geocoder?postStr={'lon':<经度>,'lat':<纬度>,'ver':1}&type=geocode&tk=<key>
例如:

可见,从经纬度,可以获取该位置的地理信息,如详细地址,所在的国家、省、市、县、街道等等。
应用场景:比如在移动应用中,如果用户授权地理位置信息,则可以通过经纬度获取其地理信息。
从地名获取经纬度
也叫"地名搜索"。
参考: http://lbs.tianditu.gov.cn/server/search2.html 里面的"普通搜索服务"。
请求格式:
bash
https://api.tianditu.gov.cn/v2/search?postStr={'keyWord':'<关键字>','queryType':12,'start':0,'count':10,'specify':'156000000'}&type=query&tk=<key>
例如:

本例中,查询了"北京大学"的地理位置信息,返回结果里包含了经纬度的信息。
注意请求里面的 specify 参数。该参数指定了行政区的国标码。
可以从天地图下载行政区划编码表( https://download.tianditu.gov.cn/download/xzqh/AdminCode.csv )。
如果不清楚或者懒得提供,就直接用 156000000 (表示中国)。
参考
https://www.tianditu.gov.cn