调用高德的接口,地理位置和经纬度相互转换
来源:互联网 发布:qq象棋作弊软件 编辑:程序博客网 时间:2024/05/16 12:40
高德官方有详细的接口调用文档:http://lbs.amap.com/api/webservice/guide/api/georegeo
我是在java项目中使用,下面以地理位置得到经纬度来举例。
首先,你需要注册高德的账号,并且获取一个key:http://lbs.amap.com/dev/key/app;
public class AddressLngLatExchange {private static final String KEY = "0*******16d8db3a0e622fccca24f9";private static final String OUTPUT = "JSON";private static final String GET_LNG_LAT_URL = "http://restapi.amap.com/v3/geocode/geo";private static final Logger LOGGER = Logger.getLogger(AddressLngLatExchange.class);public static PairgetLngLatFromOneAddr(String address){if(StringUtils.isBlank(address)) {LOGGER.error("地址(" + address + ")为null或者空");return null;}Map params = new HashMap (); params.put("address", address); params.put("output", OUTPUT); params.put("key", KEY); String result = HttpclientUtil.post(params, GET_LNG_LAT_URL); Pair pair = null; JSONObject jsonObject = JSONObject.fromObject(result); //拿到返回报文的status值,高德的该接口返回值有两个:0-请求失败,1-请求成功; int status = Integer.valueOf(jsonObject.getString("status")); if(status == 1) { JSONArray jsonArray = jsonObject.getJSONArray("geocodes"); for(int i = 0; i < jsonArray.size(); i++) { JSONObject json = jsonArray.getJSONObject(i); String lngLat = json.getString("location"); String[] lngLatArr = lngLat.split(","); //经度 BigDecimal longitude = new BigDecimal(lngLatArr[0]);// System.out.println("经度" + longitude); //纬度 BigDecimal latitude = new BigDecimal(lngLatArr[1]);// System.out.println("纬度" + latitude); pair = new MutablePair (longitude, latitude); } } else { String errorMsg = jsonObject.getString("info"); LOGGER.error("地址(" + address + ")" + errorMsg); } return pair;}
备注:1)此处用Pair类型返回值,只是个人偏好,这种返回方式无法返回高德的错误信息,不过在试验过程中,发现就算是胡乱写的地址,高德也会返回OK,只是经纬度为空,可能高德的错误信息指的是高德的程序异常,所以返回不OK的概率就比较小了,顾在此处仅记录在日志里。
2)HTTP的工具类可以在网上找,给一个参考的:http://lxy19791111.iteye.com/blog/341409
3)如有需要改进的地方,欢迎指正
阅读全文
1 0
- 调用高德的接口,地理位置和经纬度相互转换
- 百度地图 经纬度和地理位置的转换
- 高德经纬度、百度经纬度、标准经纬度相互转换(VB.NET)
- 高德和百度之间的经纬度转换
- 高德地图地址和经纬度转换
- ArcEngine下投影坐标和经纬度坐标的相互转换
- ArcEngine下投影坐标和经纬度坐标的相互转换
- java调用百度地图api接口---转换非百度坐标和根据百度坐标转换地理位置
- IOS 经纬度 转换地理位置信息
- utm坐标和经纬度相互转换
- java后台百度地图经纬度和地址之间的相互转换(通过经纬度获取地址、通过地址获取经纬度)
- 经纬度到平面坐标的相互转换
- 经纬度到平面坐标的相互转换
- 百度高德地图的经纬度转换问题
- 高德地图定位偏移以及经纬度之间的转换
- js获取地理位置的经纬度
- ios 地理解码(地理位置转换经纬度)
- 百度开发者API接口:获取经纬度和详细地理位置(Geocoding API和IP定位API)
- JAVA之对象初始化过程详解及面试题
- Hibernate学习第二天
- SPOJ 2713 Can you answer these queries IV(线段树)
- Maven Dependencies 不见了
- LightOJ 1038 Race to 1 Again [概率dp]
- 调用高德的接口,地理位置和经纬度相互转换
- OMRON E6B2-CWZ6C
- RGB
- 网站打开速度慢的原因,排查方法及优化方法(大全)
- java eclipse 的安装流程
- 解決thinkPHP出現no input file specified.問題
- 使用ReentrantLock实现生产者消费者模式
- File类 和 io流
- 一个java程序员的真实经历