在开发过程中;经常遇到处理地理位置的情况;这个时候;我们可能就要结合百度/高德等地图的开发文档;来实现我们的需求。这里就拿高德开发文档来讲述Java如何结合高德开发文档Api。
1:首先我们进入高德开发文档开发文档链接
2:登录之后我们需要创建key,这里我们选择web服务;相当于密钥,只有key 才可以进入对应的应用;从而调用相关api
3:创建key后;我们就可以在我们程序使用了;把我们申请的key赋值到我们程序中;设置静态常用
4:到此就可以调用开发文档Api,举例如下
/**
* 根据地址获取高德经纬度信息
*
* @param address
* @return
*/
public static String getLngLatByAddress(String address) {
if (StringUtils.isEmpty(address)){
return null;
}
String url=URL + "?address=" + address + "&output=JSON&key=" + KEY;
String message = HttpUtils.getInfoByGetWay(url,null);
String jsonStr = message.toString();
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
//判断输入的位置点是否存在
if (jsonObject.getJSONArray("geocodes").size() <= 0) {
return null;
};
return jsonObject.getJSONArray("geocodes").getJSONObject(0).get("location").toString();
}
/**
* 获取多个距离
* @param startLonLat:允许多个经纬度;|拼接
* @param endLonLat 目的地经纬度
* @return
*/
public static String getMoreDistance(String startLonLat, String endLonLat) {
//返回起始地startAddr与目的地endAddr之间的距离,单位:米
Long result = new Long(0);
try {
startLonLat = URLEncoder.encode(startLonLat, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String queryUrl = "http://restapi.amap.com/v3/distance?key="+KEY+"&origins="+startLonLat+"&destination="+endLonLat+"&type=0";
String queryResult = HttpUtils.getInfoByGetWay(queryUrl,null);
JSONObject job = JSONObject.fromObject(queryResult);
String status=job.getString("status");
String resultData=null;
if ("1".equals(status)){
resultData = job.getString("results");
}
return resultData;
}
5:由上述案例可知;我们调用高德Api接口;得到我们需要的结果从而进行解析。可能有人说了,看见一大堆的内容,给人感觉很复杂,实则不是,大家沉住心仔细观看文档,发现并不是太复杂。好了,本次分享就到这里了。拜拜~