老师让我们从百度地图的api上获取数据源最为两地运输距离,结果百度地图api的开发文档居然连个示例都没有。。。于是上网找了半天,都是一百多行的源码,我就想用个api,你给我这玩意???终于最后还是找到了一个简单一些的只有60+行,这个是经纬度转换的点击切换,作为小白我只想找到百度api是怎么用的,隔壁腾讯的小程序开发文辣么全,百度要走的路还很长啊。
  下面是我删减后批量算路的简单示例。将"你的ak"里面的内容替换成你申请的ak就可以直接运行了。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;public class test {private static final String BAIDU_APP_KEY = "你的ak";public static Map<String, String> run() {try {URL resjson = new URL("http://api.map.baidu.com/routematrix/v2/driving?output=json&origins=40.45,116.34&destinations=40.34,116.45&ak=" + BAIDU_APP_KEY);BufferedReader in = new BufferedReader(new InputStreamReader(resjson.openStream()));String res;StringBuilder sb = new StringBuilder("");while ((res = in.readLine()) != null) {sb.append(res.trim());}in.close();String str = sb.toString();System.out.println("return json:" + str);} catch (Exception e) {e.printStackTrace();}return null;}public static void main(String args[]) {Map<String, String> map = test.run();}
}

下面是整合版,通过百度地图api获取国内任意两点之间的驾驶距离

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;public class getData {private static final String BAIDU_AK = "你的ak";/*** 返回输入地址的经纬度坐标 key lng(经度),lat(纬度)*/public static Map<String, String> getLatitude(String address) {try {// 将地址转换成utf-8的16进制address = URLEncoder.encode(address, "UTF-8");URL resjson = new URL("http://api.map.baidu.com/geocoder?address="+ address + "&output=json&key=" + BAIDU_AK);BufferedReader in = new BufferedReader(new InputStreamReader(resjson.openStream()));String res;StringBuilder sb = new StringBuilder("");while ((res = in.readLine()) != null) {sb.append(res.trim());}in.close();String str = sb.toString();System.out.println("return json:" + str);if(str!=null&&!str.equals("")){Map<String, String> map = null;int lngStart = str.indexOf("lng\":");int lngEnd = str.indexOf(",\"lat");int latEnd = str.indexOf("},\"precise");if (lngStart > 0 && lngEnd > 0 && latEnd > 0) {String lng = str.substring(lngStart + 5, lngEnd);String lat = str.substring(lngEnd + 7, latEnd);map = new HashMap<String, String>();map.put("lng", lng);map.put("lat", lat);return map;}}} catch (Exception e) {e.printStackTrace();}return null;}//将返回数据改成double类型单位改成千米private static double format(String temp) {Double one=Double.parseDouble(temp);return (one/1000);}//返回两地距离public static double backDis(Map<String, String> A,Map<String, String> B) {try {URL resjson = new URL("http://api.map.baidu.com/routematrix/v2/driving?output=json&origins="+A.get("lat")+","+A.get("lng")+"&destinations="+B.get("lat")+","+B.get("lng")+"&ak="+BAIDU_AK);BufferedReader in = new BufferedReader(new InputStreamReader(resjson.openStream()));String res;StringBuilder sb = new StringBuilder("");while ((res = in.readLine()) != null) {sb.append(res.trim());}in.close();String str = sb.toString();System.out.println("return json:" + str);if(str!=null&&!str.equals("")){double temp=0;int disStart = str.indexOf("value\":");int disEnd = str.indexOf("},\"duration");if (disStart > 0  && disEnd > 0) {String dis = str.substring(disStart + 7, disEnd);temp=format(dis);return temp;}}} catch (Exception e) {e.printStackTrace();}return (Double) null;}public static void main(String args[]){double temp=backDis(getLatitude("南京"), getLatitude("上海"));System.out.print(temp);}}

java调用百度地图api简单示例--获取国内任意两地之间距离相关推荐

  1. java调用百度地图API根据地理位置获取经纬度

    前言: 自己申请一个百度地图得账号,然后创建自己需要服务拿到Ak 下载地址:登录百度帐号 https://lbsyun.baidu.com/apiconsole/key 1.第一步:申请账号,这一步大 ...

  2. 百度地图 截图java_[Java教程]百度地图API 简单使用

    [Java教程]百度地图API 简单使用 0 2015-08-24 19:00:12 最近项目上需要用到百度地图进行导航,参考百度地图API完成一个例子.API地址:http://developer. ...

  3. java调用百度地图API依据地理位置中文获取经纬度

    百度地图api提供了非常多地图相关的免费接口,有利于地理位置相关的开发,百度地图api首页:http://developer.baidu.com/map/. 博主使用过依据地理依据地理位置中文获取经纬 ...

  4. springboot8==调用百度地图API从浏览器获取经纬度,后端使用geodesy依赖计算配送距离

    见百度地图API调用文档 jspopularGL | 百度地图API SDK ================ <!--引入百度地图API用于从浏览器获取当前经纬度--> <scri ...

  5. c语言api获取百度地图,H5调用百度地图API获取地理位置

    //获取当前位置 var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function(r){ alert ...

  6. java 地图api接口_Java调用百度地图API

    本实战代码将使用百度地图的接口来实现以下功能: 1.确定输入地址的坐标 2.两个坐标的距离 其他的话,还要使用百度账户申请相关的api,具体见: http://lbsyun.baidu.com/ind ...

  7. 百度地图AK申请注意+百度地图API生成热力图+调用百度地图API自动获取经纬度和地址

    文章目录 一.百度地图AK密钥申请 二.调用百度地图API生成热力图 三.调用百度地图API自动获取经纬度和地址 一.百度地图AK密钥申请 点击百度地图API控制台,输入登录账户,即可进入,若账户未完 ...

  8. C#调用百度地图API,根据地名获取经纬度geocoding

    前言 公司的一个内部网站维护,需要根据地名填写经纬度,最终同echarts生成地图. 之前数据比较少,直接经纬度查询查的,https://jingweidu.bmcx.com/ 现在数据越来越多,手动 ...

  9. HTML5页面调用百度地图API,获取当前位置并导航到目的地

    微信也可用, <!DOCTYPE html> <html lang="zh-cmn-Hans"><meta charset="UTF-8&q ...

最新文章

  1. 海康威视 | AI算法实习生招聘(3D检测/分割/多模态融合)
  2. TI xDAIS的深入理解
  3. Linux 常用命令与设置
  4. ALV输出无法指定STATUS
  5. Java 8:对速度3.0.1“森林”流ORM的更深入了解
  6. element ui 表单验证为正整数
  7. mssql导出数据到mysql_MSSQL数据导出到MYSQL
  8. 单点登录 之 OAuth
  9. Spring Boot2.x 整合quartz集群
  10. 数据仓库之电商数仓-- 3.2、电商数据仓库系统(DWS层)
  11. Java常用类库-AutoCloseable
  12. mysql jndi 实例_自己收藏-JNDI应用实例
  13. H5唤起 uniapp 版的app 端
  14. Word题库转成Excel题库的方法
  15. 计算机专用英语1500词带音标,带音标的计算机英语1500词
  16. Thread-Specific Data(线程私有数据)
  17. 计算机视觉面试宝典--目标检测篇(二)
  18. 微信小程序轮播图swiper详细代码介绍
  19. 频域分析中的三频段理论
  20. SEO词汇表:您应该知道的180多个术语和定义

热门文章

  1. Java基础-day18-反射方法应用·暴力反射·内部类
  2. Swin UNETR: Swin Transformers for Semantic Segmentation of Brain Tumors in MRI Images
  3. 促进创新成果高质量发展,华秋“戴上举劳模和工匠人才创新工作室”成立!
  4. android 地图lbs架构
  5. 有毒气体运输如何监管?资产监测设备可以完成实现透明化监测
  6. autobagging r语言_快讯| 2017年7月R新包推荐
  7. 程序员的简历该怎么写?
  8. swf文件加密基础(转)
  9. 长虹linux电视安装软件下载,长虹电视怎么安装第三方软件?学会这3招软件随便装...
  10. 数学建模 based on 清风