步骤:(总共三个类,可直接复制使用)

官网文档:高德地图路径规划API地址

  1. 申请高德API使用的key(备注:key的类型要选择web服务)
  2. 发送http GET请求
  3. 获取结果

以下是代码

HTTP请求代码

package com.jplus.common.http;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
/*** 网络请求(GET和POST)* @开发者 Tiddler* @编写时间 2018年8月14日 上午9:36:57* @文件名 HttpRequest.java* @类名 HttpRequest*/
public class HttpRequest {/*** 向指定URL发送GET方法的请求** @param url   发送请求的URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return URL 所代表远程资源的响应结果*/public static String sendGet(String url, String param) {String result = "";BufferedReader in = null;try {String urlNameString = url + "?" + param;URL realUrl = new URL(urlNameString);// 打开和URL之间的连接URLConnection connection = realUrl.openConnection();// 设置通用的请求属性connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 建立实际的连接connection.connect();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {
//                System.out.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送GET请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输入流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}/*** 向指定 URL 发送POST方法的请求** @param url   发送请求的 URL* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @return 所代表远程资源的响应结果*/public static String sendPost(String url, String param) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(param);// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送 POST 请求出现异常!" + e);e.printStackTrace();}//使用finally块来关闭输出流、输入流finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}
}

获取结果处理代码

package com.jplus.common.amap;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;import com.jplus.common.http.HttpRequest;/*** 高德地图导航工具类* @开发者 tiddler* @编写时间 2018年8月14日 上午10:01:05* @文件名 MapNavUtil.java* @类名 MapNavUtil*/
public class MapNavUtil {private String startCoordinate;private String endCoordinate;private String applicationKey;private String param;/*** 必须要构造参数* @param startCoordinate 起点经纬度 经度在前,纬度在后* @param endCoordinate 终点经纬度 经度在前,纬度在后* @param applicationKey 高德地图应用key,需要Web服务类型的key*/public MapNavUtil(String startCoordinate, String endCoordinate,String applicationKey) {this.startCoordinate = startCoordinate;this.endCoordinate = endCoordinate;this.applicationKey = applicationKey;this.param="origin="+this.startCoordinate+"&destination="+this.endCoordinate+"&key="+this.applicationKey;}/*** 获取地图导航返回值* @return*/public MapNavResults getResults(){String sendGet = HttpRequest.sendGet("https://restapi.amap.com/v3/direction/driving", param);JSONObject jsonObject=JSONObject.fromObject(sendGet);String routeJsonString = jsonObject.get("route").toString();JSONObject routeObject=JSONObject.fromObject(routeJsonString);JSONArray jsonArray = routeObject.getJSONArray("paths");JSONObject zuiJson = jsonArray.getJSONObject(0);MapNavResults mapResult=new MapNavResults();mapResult.setDistance(zuiJson.get("distance").toString());mapResult.setDuration(zuiJson.get("duration").toString());mapResult.setTolls(zuiJson.get("tolls").toString());return mapResult;}}

结果参数POJO类(这个类根据自己所需参数配置)

package com.jplus.common.amap;
/*** 高德地图导航接口返回参数POJO* @开发者 tiddler* @编写时间 2018年8月14日 上午10:04:50* @文件名 MapNavResults.java* @类名 MapNavResults*/
public class MapNavResults {private String distance;//行驶距离private String duration;//行驶时间(单位:秒)private String tolls;//道路收费(单位:元)public String getDistance() {return distance;}public void setDistance(String distance) {this.distance = distance;}public String getDuration() {return duration;}public void setDuration(String duration) {this.duration = duration;}public String getTolls() {return tolls;}public void setTolls(String tolls) {this.tolls = tolls;}@Overridepublic String toString() {return "MapNavResults [distance=" + distance + ", duration=" + duration+ ", tolls=" + tolls + "]";}}

测试类

package com.jplus.common.http;import com.jplus.common.amap.MapNavUtil;public class TestRequest {public static void main(String[] args) {String origin="104.07,30.67";//出发点经纬度String destination="104.46,29.23";//目的地经纬度String key="2ace948ef129************b0774750";//高德用户keyMapNavUtil mapResult=new MapNavUtil(origin, destination, key);System.out.println(mapResult.getResults().toString());}
}

注:地图API使用的key换成自己的即可

Java使用高德地图获取行驶距离等信息相关推荐

  1. Java从高德地图获取全国地铁站数据

    Java从高德地图获取全国地铁站数据. 数据来源(高德地图):http://map.amap.com/subway/index.html?&4401 采集代码 /*** 从高德地图地铁线路同步 ...

  2. 高德地图获取坐标距离_利用java、js或mysql计算高德地图中两坐标之间的距离

    前言 因为工作的原因,最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了 ...

  3. 在vue中使用高德地图获取坐标与地址信息(包含点击+搜索)

    首先 注册登陆高德地图 https://lbs.amap.com/ 划过头像里面有个应用管理点开 进入到应用管理打开我的应用 选择创建应用 然后按照要求填写内容,切记一定要选择web端(JS API) ...

  4. Java 根据高德地图获取经纬度坐标

    1: 申请高德服务key /*** @param addressName* @param cityName* @Description 根据高德地图, 通过地址获取经纬度坐标* @Throws* @R ...

  5. 高德地图获取坐标距离_高德地图获取两个经纬度点间直线距离JS/PHP/SQL代码

    最近做了几个小站,要求要定位到当前地址并且显示附近多少公里内的商家和产品. 定位好办,直接用高德地图搞定.有不需要显示地图又需要定位的页面把地图直接隐藏掉都可以.或者可以直接调用高德的定位组件. 但是 ...

  6. vue项目中使用高德地图获取用户当前位置信息

    项目背景是用vue开发的小程序,需要获取当前用户的地理位置,折腾了好久终于弄好了,今天分享给大家,话不多说,let's go! 第一步:在index.html页面引入高德地图 <script t ...

  7. 高德地图获取坐标距离_计算两个坐标点之间的距离(高德地图)

    /** * 计算两点的距离 * * @param fromPoint * @param toPoint * @return 返回String类型带距离单位 */ public static Strin ...

  8. 高德地图获取坐标距离_【转】根据高德地图得出的坐标算出两点之间的距离

    摘自 http://blog.csdn.net/u012251421/article/details/41242891 public static string GetDistance(double ...

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

    Java调用高德地图API根据详细地址获取经纬度 官方API:https://lbs.amap.com/api/webservice/guide/api/georegeo * Web服务API 地理/ ...

最新文章

  1. 3D视觉技术的6个问答
  2. 动态规划算法-03背包问题
  3. NOIP模拟测试34「次芝麻·呵呵呵·长寿花」
  4. 填问卷,得《2015中国呼叫中心知识库现状与问题报告》
  5. 无线打印服务器 惠普打印机,连接您的HP无线打印机 | 无线打印中心 | 惠普中国...
  6. 边缘设备上的实时AI人员检测:在Raspberry Pi上测试SSD模型
  7. 动态数组 —— 框架搭建
  8. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_06 Properties集合_2_Properties集合中的方法store...
  9. SQL SERVER 数据库修复方法 (数据库变为 “可疑“)
  10. (Demo3D 学习笔记)案例2:飞板传输货物,并按指定货位上架
  11. 三角函数在c语言中应用,三角函数在前端动画中的应用
  12. 看山不是山,看水不是水
  13. Win10安装程序报错2503和2502错误解决方案
  14. 写给后端开发看的安卓入门
  15. 讲人话科普,Python是个啥?为啥大家都在学?
  16. Exception in thread main java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Wi
  17. 阿里云域名解析网络和服务架构设计(二) 之云解析DNS-全局流量管理
  18. 一次linux 【Mirai蠕虫】的应急处置
  19. 重装系统如何做到三步装机
  20. 深富策略:价值将主导4季度行情9月是布局良机

热门文章

  1. tf.reduce_mean()
  2. 2021年高压电工报名考试及高压电工模拟考试
  3. 用php的定界符EOT需要留个心眼
  4. 团队编程——web应用之人事管理系统
  5. 轻松搭建微信答题活动小程序
  6. 钣金系统三维设计与工艺展开功能的实现
  7. Tecnomatix16 安装教程
  8. 支持向量机SVM详解——带有松弛变量的数学模型
  9. 盛邦安全:强化网络空间地图测绘能力,为下一代Web应用构筑坚实护盾
  10. ARIMA模型,在时间序列中,加入其他解释变量