地图开发--逆地理编码regeocoding
来源:互联网 发布:sql注入测试网站 编辑:程序博客网 时间:2024/05/29 07:20
应“远才科技公司”需求,开发一个将在服务器上将gps坐标转换成地理名(主要是坐标的道路名)的功能,也就是逆地理编码的功能。
网上很容易找到JS版本的逆地理编码程序,百度、阿里都是现在的例子、网页源代码可以看。可要是不通过JS、网页方式逆地理编码,就要花点心思去找找了。经过一阵子的百度、谷歌,没有现成的材料。在比较各大地图API时发现,阿里地图API说明极少,显得好可怜,百度地图有正儿八经的文档,详细的说明。可偏偏在逆地理编码方面,百度地图提供的访问调用方式比阿里的要麻烦,并且效果远不如阿里地图的regeocoding。如下所示:
阿里的逆地理编码regeocoding请求:
阿里的这个请求每天不限次数。
百度的逆地理编码regeocoding请求:
对比之后,果断选用阿里的逆地理编码,参考学习地址:http://ditu.aliyun.com/jsdoc/geocode_api.html#a1_5。
找好方向和方法后,就开始coding了,直接上代码:
public void testUrlRes(String lat,String lng) throws IOException{//type 001 (100代表道路,010代表POI,001代表门址,111可以同时显示前三项)String path="http://gc.ditu.aliyun.com/regeocoding?l="+lat+","+lng+"&type=100";//参数直接加载url后面URL url=new URL(path);HttpURLConnection conn=(HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(5000);if(conn.getResponseCode()==200){//200表示请求成功InputStream is=conn.getInputStream();//以输入流的形式返回//将输入流转换成字符串ByteArrayOutputStream baos=new ByteArrayOutputStream();byte [] buffer=new byte[1024];int len=0;while((len=is.read(buffer))!=-1){baos.write(buffer, 0, len);}if(baos.size() < 1){LogUtil.log("坐标请求异常.");return;}//得出整个坐标反馈信息String jsonString=baos.toString();LogUtil.log(jsonString);baos.close();is.close();//转换成json数据处理//{"queryLocation":[39.938133,116.395739],"addrList":[{"type":"doorPlate","status":1,"name":"地安门外大街万年胡同1号","admCode":"110102","admName":"北京市,北京市,西城区,","addr":"","nearestPoint":[116.39546,39.93850],"distance":45.804}]}JSONObject jsonObject = JSONObject.fromObject(jsonString);String addrList = jsonObject.getString("addrList");LogUtil.log(addrList); //地址信息JSONArray jsonarry = JSONArray.fromObject(addrList);for(int i = 0;i<jsonarry.size();i++){JSONObject jsonObject2 = jsonarry.getJSONObject(i);String roadName = jsonObject2.getString("name"); //路名(这才是我最终想要的)LogUtil.log(roadName);}}}
以上代码说明:1.LogUtil .log()是的写的一个通用方法,相当于System.out.println();2.使用的JSON相关的包文件有:
commons-beanutils-1.7.jar,commons-collections.jar,commons-lang.jar,commons-logging-1.1.1.jar,ezmorph.jar,json-lib-2.4-jdk15.jar,特意贴出这些
JSON相关的包,是因为我在开发中就出现了问题。我是jdk是1.7的,而最新的JSON相关包我只找对jdk1.5版本的,若是只引入json-lib-2.4-jdk15.jar
包,就会报错,得把这些包都引用进来。
以上就是今天的心得,写完了。感谢阿里,感谢马云,感谢我的远才科技的兄弟们!
- 地图开发--逆地理编码regeocoding
- iOS 开发 百度地图 逆地理编码
- Android地图开发中的地理编码与地理反编码
- Android地图开发中的地理编码与地理反编码
- Android地图开发中的地理编码与地理反编码
- 谷歌地图开发:地理编码和反地理编码
- iOS开发-地图03-地理编码
- iOS开发地图定位及地理编码
- Android 百度地图api地理编码与逆地理编码
- 高德地图地理编码和逆地理编码
- 高德地图之逆地理编码
- 百度地图地理编码
- 地图,CoreLocation地理编码,反地理编码
- 百度地图开发(二)之添加覆盖物 + 地理编码和反地理编码
- ] 百度地图开发(二)之添加覆盖物 + 地理编码和反地理编码
- 百度地图开发(二)之添加覆盖物 地理编码和反地理编码
- 百度地图开发(二)之添加覆盖物 + 地理编码和反地理编码
- 百度地图开发(二)之添加覆盖物 + 地理编码和反地理编码
- 题目1151:位操作练习
- Oracle存储过程(分页、模糊查找、排序、按字段区间查找)etc.以及JAVA代码
- iOS多线程编程之NSOperation和NSOperationQueue的使用
- Java生成和解析XML格式文件和字符串
- My New Life!
- 地图开发--逆地理编码regeocoding
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- iOS的基本的设计模式
- 提取海量文本文件中含有指定字符串的行
- debian 设置开机自启动
- 黑马程序员--基础--第一篇--RandomAccessFile,PipedInputStream和ByteArrayInputStream类
- 双网卡双网关冲突问题
- linux 下node.js 使用child_process模块的exec方法所遇问题
- 用于词义消岐的Lesk算法