利用百度地图WEB服务APIGeoCoding API批量地址解析
2016-04-10 16:15
351 查看
Geocoding API包括地址解析和逆地址解析功能:
地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”。同时,地理编码也支持名胜古迹、标志性建筑名称直接解析返回百度经纬度,例如:“百度大厦”地址解析的结果是“lng:116.30815,lat:40.056885” ,通用的POI检索需求,建议使用Place API。
逆地理编码:即逆地址解析,由百度经纬度信息得到结构化地址信息,例如:“lat:31.325152,lng:120.558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。
本文所讲的是地理编码,从本地硬盘读取excel数据,地址解析,将结果存到本地的excel数据表当中。
主要代码如下:
取得的结果数据主要包括了对应地址的经度、纬度、是否精确查找,打点的可信度。
地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”。同时,地理编码也支持名胜古迹、标志性建筑名称直接解析返回百度经纬度,例如:“百度大厦”地址解析的结果是“lng:116.30815,lat:40.056885” ,通用的POI检索需求,建议使用Place API。
逆地理编码:即逆地址解析,由百度经纬度信息得到结构化地址信息,例如:“lat:31.325152,lng:120.558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。
本文所讲的是地理编码,从本地硬盘读取excel数据,地址解析,将结果存到本地的excel数据表当中。
主要代码如下:
try{ address = URLEncoder.encode(address,"UTF-8"); URL resjson = new URL("http://api.map.baidu.com/geocoder/v2/?address=" +address+"&output=json&ak="+key+"&callback=showLocation"); BufferedReader in = null; if(resjson.openStream()!=null){ in = new BufferedReader(new InputStreamReader(resjson.openStream())); } String res; StringBuilder sb = new StringBuilder(""); while ((res=in.readLine())!=null) { sb.append(res.trim()); } in.close(); String str = sb.toString(); //System.out.println("return json:"+str); Map<String,String> map = null; if(str!=null) { int lngStart = str.indexOf("lng\":"); int lngEnd = str.indexOf(",\"lat"); int latEnd = str.indexOf("},\"precise"); int preciseEnd = str.indexOf(",\"confidence"); int confidenceEnd = str.indexOf(",\"level"); if(lngStart>0&&lngEnd>0&&latEnd>0){ String lng = str.substring(lngStart+5,lngEnd); String lat = str.substring(lngEnd+7,latEnd); String precise = str.substring(latEnd+12,preciseEnd); String confidence = str.substring(preciseEnd+14,confidenceEnd); map = new HashMap<String, String>(); map.put("lng", lng); map.put("lat", lat); map.put("precise", precise); map.put("confidence", confidence); return map; } } }catch(Exception e){ e.printStackTrace(); } return null; }
取得的结果数据主要包括了对应地址的经度、纬度、是否精确查找,打点的可信度。
![](https://images2015.cnblogs.com/blog/321697/201604/321697-20160410161436156-705843516.png)
相关文章推荐
- Java排序算法——快速排序
- 夺命雷公狗---Thinkphp----4之数据表的设计
- Javascript全局变量var与不var的区别
- java保留两位小数
- 如何在CSDN博客中编辑公式?
- 初始化MySQL
- matlab中save,load使用方法
- linux下组管理命令详解
- 【CentOS7-Python系列】之一【Python升级】
- kvm 虚拟化 SMP(对称多处理器)介绍及配置
- poj 1252(完全背包)
- 交互设计中的功能动效
- C++ 友元
- 台湾
- 升级Xcode7.2.1后注释插件VVDocument失效
- hdu 1285 确定比赛名次 拓扑排序 解题报告
- 邁向IT專家成功之路的三十則鐵律 鐵律二十九 IT人富足之道-信仰
- C#中属性与字段的用法
- 算法--树的一些性质
- python --yield