Delphi百度地图经纬度与地址互转
通过百度地图Geocoding API Web服务API,实现输入经纬度坐标,转换为经纬度所在地址,效果如图:
API参见
接口功能介绍
- 1、地理编码
http://api.map.baidu.com/geocoder/v2/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showLocation //GET请求 - 2、逆地理编码
http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=35.658651,139.745415&output=json&pois=1&ak=您的ak //GET请求
- json示例:
http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=json&pois=1 - xml示例:
http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
这里用的是返回xml格式,使用的是XMLDocument控件
参考代码
procedure TForm1.Button1Click(Sender: TObject); var url: string; begin url := 'http://api.map.baidu.com/geocoder/v2/?ak=' + Edit1.Text + '&callback=renderReverse&location=' + Edit2.Text + ',' + Edit3.Text + '&output=xml&pois=1'; XMLDocument1.LoadFromFile(url); Memo1.Lines := XMLDocument1.Xml; Memo2.Lines.Add(XMLDocument1.DocumentElement.ChildNodes['result'].ChildNodes ['formatted_address'].NodeValue); end;