示例:

<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">body, html {width: 100%;height: 100%; margin:0;font-family:"微软雅黑";}#allmap{height:500px;width:100%;}#r-result,#r-result table{width:100%;}</style><script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=9AvzGkm2h2EDbNmULlOApaiOCteZWcqF"></script><script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script><title>根据起终点名称驾车导航</title>
</head>
<body>
<div id="allmap"></div>
<div id="driving_way"><select><option value="0">最少时间</option><option value="1">最短距离</option><option value="2">避开高速</option></select><input type="button" id="result" value="查询"/>
</div>
<div id="r-result"></div>
</body>
</html>
<script type="text/javascript">// 百度地图API功能var map = new BMap.Map("allmap");var start = "天安门";var end = "金燕龙办公楼";map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放//三种驾车策略:最少时间,最短距离,避开高速var routePolicy = [BMAP_DRIVING_POLICY_LEAST_TIME,BMAP_DRIVING_POLICY_LEAST_DISTANCE,BMAP_DRIVING_POLICY_AVOID_HIGHWAYS];$("#result").click(function(){map.clearOverlays();var i=$("#driving_way select").val();search(start,end,routePolicy[i]);function search(start,end,route){var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true},policy: route});driving.search(start,end);}});
</script>

打开该html可以看到百度地图

工具类:


/*** 百度地图操作工具类*/
public class BaiduMapUtils {public static void main(String[] args) {String origin = getCoordinate("北京市育新花园小区");String destination = getCoordinate("北京市百度大厦");Double distance = getDistance(origin, destination);System.out.println("订单距离:"+distance + "米");Integer time = getTime(origin, destination);System.out.println("线路耗时"+time+"秒");}private static String AK = "UEBQm9c3KZ5LrsO2C2qsOAs1eSdLvlzM";/*** 调用百度地图地理编码服务接口,根据地址获取坐标(经度、纬度)* @param address* @return*/public static String getCoordinate(String address){String httpUrl = "http://api.map.baidu.com/geocoding/v3/?address=" + address + "&output=json&ak=" + AK;String json = loadJSON(httpUrl);Map map = JSON.parseObject(json, Map.class);String status = map.get("status").toString();if(status.equals("0")){//返回结果成功,能够正常解析地址信息Map result = (Map) map.get("result");Map location = (Map) result.get("location");String lng = location.get("lng").toString();String lat = location.get("lat").toString();DecimalFormat df = new DecimalFormat("#.######");String lngStr = df.format(Double.parseDouble(lng));String latStr = df.format(Double.parseDouble(lat));String r = latStr + "," + lngStr;return r;}return null;}/*** 调用百度地图驾车路线规划服务接口,根据寄件人地址和收件人地址坐标计算订单距离* @param origin* @param destination* @return*/public static Double getDistance(String origin,String destination){String httpUrl = "http://api.map.baidu.com/directionlite/v1/driving?origin="+origin+"&destination="+destination+"&ak=" + AK;String json = loadJSON(httpUrl);Map map = JSON.parseObject(json, Map.class);if ("0".equals(map.getOrDefault("status", "500").toString())) {Map childMap = (Map) map.get("result");JSONArray jsonArray = (JSONArray) childMap.get("routes");JSONObject jsonObject = (JSONObject) jsonArray.get(0);double distance = Double.parseDouble(jsonObject.get("distance") == null ? "0" : jsonObject.get("distance").toString());return distance;}return null;}/*** 调用百度地图驾车路线规划服务接口,根据寄件人地址和收件人地址坐标计算订单距离* @param origin* @param destination* @return*/public static Integer getTime(String origin,String destination){String httpUrl = "http://api.map.baidu.com/directionlite/v1/driving?origin="+origin+"&destination="+destination+"&ak=" + AK;String json = loadJSON(httpUrl);Map map = JSON.parseObject(json, Map.class);if ("0".equals(map.getOrDefault("status", "500").toString())) {Map childMap = (Map) map.get("result");JSONArray jsonArray = (JSONArray) childMap.get("routes");JSONObject jsonObject = (JSONObject) jsonArray.get(0);int time = Integer.parseInt(jsonObject.get("duration") == null ? "0" : jsonObject.get("duration").toString());return time;}return null;}/*** 调用服务接口,返回百度地图服务端的结果* @param httpUrl* @return*/public static String loadJSON(String httpUrl){StringBuilder json = new StringBuilder();try {URL url = new URL(httpUrl);URLConnection urlConnection = url.openConnection();BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));String inputLine = null;while ((inputLine = in.readLine()) != null) {json.append(inputLine);}in.close();} catch (MalformedURLException e) {} catch (IOException e) {}System.out.println(json.toString());return json.toString();}
}

结果:

用百度开放地图api在代码中获得两地距离相关推荐

  1. 利用百度地图api将excel中的经纬度数据可视化

    利用百度地图api将excel中的经纬度数据可视化 因为本人最近在研究2019年研究生数学建模华为杯D题,想将它3个excel文件汽车的经纬度数据在地图上画出来,找了很多方法才实现.现将它分享给大家, ...

  2. WordPress百度快速收录 API 提交代码

    百度快速收录功能上线,全面继承百度移动专区天级收录功能,并且百度熊掌号天级提交收录将于 5 月 18 日(即日)暂停使用,当然需要第一时间来帮助大家利用搜索引擎工具来做好网站优化! 将以下代码添加至主 ...

  3. WordPress CMS百度快速收录 API 提交代码以及配置教程

    百度快速收录的提交代码,百度快速收录的功能上线,是全面继承百度移动专区天级收录功能,并且天级提交功能于 5 月 18 日已经暂停使用了. 污水流量计 使用方法 将下面代码添加到你的 WordPress ...

  4. 抓取百度页面html,百度会抓取页面代码中的注释内容吗

    百度会抓取页面代码中的注释内容吗 内容导读:百度会抓取页面代码中的注释内容吗?答案是百度会抓取,但是在提取正文的时候会直接忽略掉,也就是说页面代码的注释内容不会影响到页面质量,所以大家尽管放心. 问题 ...

  5. 百度离线地图API2.0 百度离线地图api,已经修改源码

    百度离线地图API2.0 百度离线地图api,已经修改源码,绕过服务端验证,除了路书等需要服务端数据支持的功能外,其余功能已经全部实现,包括常用的:地图示例.地图控件添加.覆盖物添加.信息窗口展示等等 ...

  6. 利用百度地图API,在浏览器中找到自己的位置

    首先你得有个百度地图的秘钥,http://lbsyun.baidu.com/apiconsole/key 剩下的就是编码了 这里面会用到一个javascript里的一个函数,getMyLocation ...

  7. 百度个性化地图如何在网页中使用?

    个性化地图引入到网页中有三种方式: 一种是引入个性化编辑器中编辑好的地图json样式文件 第二种是直接复制样式ID到js中 第三种通过百度地图提供的样式模板,选择地图,然后通过JavaScriptAP ...

  8. 我的百度离线地图API V3.0制作

    我拿到这个任务的时候是懵逼的,因为没有做过地图,一波三折才会做.我是参考很多博客结合起来做的,主要是看这篇博客: https://blog.csdn.net/wml00000/article/deta ...

  9. 百度语音识别rest html,delphi调用百度语音识别REST API(示例代码)

    delphi调用百度语音识别REST API -20160616 -感谢 魔术猫 和 DelphiTeacher 兄的帮助解决了返回中文乱码的问题! -注:语音的录音格式目前只支持评测8k/16k采样 ...

最新文章

  1. [小技巧]移除C/C++源码中无关的#ifdef
  2. 位居新品第一、单品第二,乐视1s吊打了谁的耳光?
  3. 中国首枚芯片邮票问世:搭载NFC芯片 可APP读取
  4. 《转》Unsafe与CAS
  5. Spring Boot的RestTemplate 之exchange方法
  6. json 在后天怎么接_前台向后台传一个json数据,后台怎么接?
  7. cocos2dx 云彩特效
  8. mysql连接报java.math.BigInteger cannot be cast to java.lang.Long异常
  9. 55)PHP,在html嵌套PHP写法
  10. 英文键盘盲打最快速练习口诀和方法
  11. UltraCompare v21.00分析
  12. Python描述 LeetCode 781. 森林中的兔子
  13. Huawei 华为云 机器翻译调用 详解
  14. 如何理解高内聚,低耦合
  15. 安全四大顶会论文查询
  16. 拼多多买菜入驻永善县了,支持自提!
  17. 【Python3.6爬虫学习记录】(十五)Scrapy爬虫框架的应用及马赛克拼图生成
  18. 一个可以扩容C盘的第三方免费软件
  19. 如何在面试中介绍自己的项目经验(面向java改进版)
  20. 【评论,赢萌宠护眼小台灯】HMS Core Insights第四期,我们来聊聊:机器学习,推开AI应用的门

热门文章

  1. table row设置cell的html,css中display设置为table、table-row、table-cell后的作用及其注意点...
  2. vue 单选框样式_作为一位Vue工程师,这些开发技巧你都会吗?
  3. excel填充序列_excel如何快速填充数据
  4. 小米0扇区完整写入_真材实料霸榜DXOMARK,小米10系列凭三个卖点“感动人心”...
  5. db2主键自增和oracle,oracle_浅析常用数据库的自增字段创建方法汇总,DB2复制代码 代码如下:CREATEnbsp - phpStudy...
  6. mysql乐观和悲观锁实现_mysql实现乐观锁和悲观锁该怎么编写?
  7. ssh中exit命令退出远程服务器_解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止...
  8. 单调不减序列查询第一个大于等于_[力扣84,85] 单调栈
  9. mongodb php 安装配置,MongoDB 基本安装配置
  10. redis 启动无输出_深入剖析Redis系列: Redis入门简介与主从搭建