2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 高德地图API-地理/逆地理编码开发

高德地图API-地理/逆地理编码开发

时间:2019-02-03 17:56:15

相关推荐

高德地图API-地理/逆地理编码开发

1.应用场景

● 地理编码:将详细的结构化地址转换为高德经纬度坐标。且支持对地标性名胜景区、建筑物名称解析为高德经纬度坐标。

结构化地址举例:北京市朝阳区阜通东大街6号转换后经纬度:116.480881,39.989410

地标性建筑举例:天安门转换后经纬度:116.397499,39.908722

● 逆地理编码:将经纬度转换为详细结构化的地址,且返回附近周边的POI、AOI信息。

例如:116.480881,39.989410 转换地址描述后:北京市朝阳区阜通东大街6号

2.准备工作

1.申请高德个人开发者账号

快速地址:高德开发平台地址

第一步:登录高德开放平台,注册个人账号(该账号是免费的,可以使用支付宝登录)

第二步:创建一个应用,然后配置web服务API类型Key

3.测试工作

1.前言

这里使用的地理/逆地理编码,就是将结构化地址转为经纬度或者经纬度转换为结构化地址

地理/逆地理编码地址:地理/逆地理编码接口文档

2.地理编码接口测试

1.地理编码接口文档

2.postman测试

这里直接使用postman进行测试,注意:实际接口返回的参数和官方文档对不上,应该是官方接口文档没有更新

3.逆地理编码接口测试

逆地理编码:将经纬度转换为详细结构化的地址,且返回附近周边的POI、AOI信息。

1.逆地理编码接口文档

2.postman测试

4.代码演示

1.地理编码接口代码测试

代码演示:

/**** 地理编码:* 通过结构化地址获取经纬度信息*/@Testpublic void queryLocationTest() {String url = "/v3/geocode/geo?key={key}&address={address}";Map<String, String> map = Maps.newHashMapWithExpectedSize(2);map.put("key", key);map.put("address", "管城回族区");// 注意: getForObject 请求,url需要提前指定好参数的位置.String result;try {result = restTemplate.getForObject(url, String.class, map);} catch (Exception e) {throw new ExampleException(ExceptionEnum.OUTER_ERROR.getCode());}System.out.println(result);}

输出结果:

{"status":"1","info":"OK","infocode":"10000","count":"1","geocodes":[{"formatted_address":"河南省郑州市管城回族区","country":"中国","province":"河南省","citycode":"0371","city":"郑州市","district":"管城回族区","township":[], "neighborhood":{"name":[],"type":[]},"building":{"name":[],"type":[]},"adcode":"410104","street":[],"number":[],"location":"113.677548,34.754500","level":"区县"}]}

2.逆地理编码接口测试

代码演示:

/*** 逆地理编码* 通过经纬度获取结构化地址*/@Testpublic void queryLatitudeAndLongitude() {String url = "/v3/geocode/regeo?key={key}&location={location}";Map<String, String> parameters = Maps.newHashMapWithExpectedSize(2);parameters.put("key", key);parameters.put("location", "113.677548,34.754500");String result;try {result = restTemplate.getForObject(url, String.class, parameters);} catch (Exception e) {throw new ExampleException(ExceptionEnum.OUTER_ERROR.getCode());}System.out.println(result);}

输出结果:

{"status":"1","regeocode":{"addressComponent":{"city":"郑州市","province":"河南省","adcode":"410104","district":"管城回族区","towncode":"410104001000","streetNumber":{"number":"217号","location":"113.677500,34.754290","direction":"南","distance":"23.7611","street":"商城路"},"country":"中国","township":"北下街街道","businessAreas":[{"location":"113.686288,34.749987","name":"紫荆山","id":"410104"},{"location":"113.690160,34.750173","name":"城东路","id":"410104"},{"location":"113.671461,34.759608","name":"杜岭","id":"410105"}],"building":{"name":[],"type":[]},"neighborhood":{"name":[],"type":[]},"citycode":"0371"},"formatted_address":"河南省郑州市管城回族区北下街街道郑州市管城回族区人民政府"},"info":"OK","infocode":"10000"}

5.总结

1.需要提前注册一个高德账号,支付宝账户即可,然后申请个人开发者;

2.就是一个简单的请求第三方接口,注意地理编码和逆地理编码接口的出入参和官方文档出有些出入;

3.注意该地理/逆地理不能查询国外的经纬度,如果需要国外的经纬度,推荐使用百度。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。