1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 高德地图API-获取位置信息的经纬度

高德地图API-获取位置信息的经纬度

时间:2019-06-24 02:48:59

相关推荐

高德地图API-获取位置信息的经纬度

开发指南:/api/webservice/guide/api/georegeo/

一、首先需要注册成为开发者,注册成功后就可以使用此开放平台。

高德开放平台网址:/

点击注册:

选择注册方式,注册完成进入下一步:选择认证方式

我是个人开发,就选个人认证开发者,如果是企业就选企业认证开发者

填写完善信息,进行支付宝扫描实名认证,勾选同意,点击提交资料:

认证结果:

二、进入控制台

使用 API 前请您先注册高德账号申请Key。

1.进入控制台

/dev/key/app

2.在应用管理创建应用

创建好的应用:

3.为上面的应用添加key

生成的key:

注:此key值是以后,请求api所用的key,一定要保存好

服务示例:

/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&output=XML&key=<用户的key>

请求示例:

示例说明:address 是需要获取坐标的结构化地址,output(XML)用于指定返回数据的格式,Key是用户请求数据的身份标识。

localtion中逗号前面为经度,后面为纬度

由此api,把地址转为经纬度。

三、Java调用高德地图API根据详细地址获取经纬度

代码如下:

package com.example.listdemo.utils;import com.alibaba.fastjson.JSONObject;import java.io.BufferedReader;import java.io.InputStreamReader;import .URL;import .URLConnection;/*** 地址转经纬度(使用高德地图获取地址信息的经纬度)* @author qzz*/public class AddressLocationUtil {/*** Key*/private static String KEY="<高德key>";public static String GD_URL="/v3/geocode/geo?address=%s&key=%s";/*** 成功标识*/private static String SUCCESS_FLAG="1";/*** 根据地址获取对应的经纬度信息* @param address* @return*/public static String getLonAndLatByAddress(String address){String location="";GD_URL = String.format(GD_URL, address, KEY);//高德接口返回的是JSON格式的字符串String queryResult = getResponse(GD_URL);JSONObject obj = JSONObject.parseObject(queryResult);if(String.valueOf(obj.get("status")).equals(SUCCESS_FLAG)){JSONObject jobJSON = JSONObject.parseObject(obj.get("geocodes").toString().substring(1, obj.get("geocodes").toString().length() - 1));location = String.valueOf(jobJSON.get("location"));}else{throw new RuntimeException("地址转换经纬度失败,错误码:" + obj.get("infocode"));}return location;}/*** 发送请求** @param serverUrl 请求地址*/private static String getResponse(String serverUrl) {// 用JAVA发起http请求,并返回json格式的结果StringBuffer result = new StringBuffer();try {URL url = new URL(serverUrl);URLConnection conn = url.openConnection();BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result.append(line);}in.close();} catch (Exception e) {e.printStackTrace();}return result.toString();}public static void main(String[] args) {String address="北京市朝阳区阜通东大街6号";String location=getLonAndLatByAddress(address);System.out.println("经纬度:" + location);}}

执行结果:

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