1. 目前在项目中,遇到一个需求不会作,就是要计算两个城市之间的距离,而这两个城市的输入是可变的,若是要使用数据库来先存储两地之间的距离,调用的时候再来调用,那么存数据的时候,要哭的,由于光是省级区域,目前就是34个省级行政区,两个城市之间的距离,就是取任意两地之间的距离,那么按照排列组合的分析,就要有 34*33 = 1122 种排列组合方式,每一个省有若干个城市,那这工做量就大了,因此须要寻找一种更为方便的方法来求两个城市之间的距离

2. 先看下需求:两个城市之间的距离,在数学中,两点之间的距离就是两点之间的直线长度,若是两点之间使用曲线连接,那么两点之间的距离就是曲线的长度;那么怎么样求两点之间的距离呢,首先,须要知道两点分别在哪里,因此,第一步,就是要获取这点之间的定位,准确的说,是先要找出这两个点在当前平面上的坐标,x坐标是多少,y坐标是多少,找出了(x1,y1),(x2,y2)之间的坐标后,就可以使用公式:d = sqrt((x1-x2 )2+ (y1-y2)2 );来求直线距离了

3. 对应到两地之间的距离,就是要先确认两地的位置,也是就经纬度,经纬度一旦肯定,定位就肯定了,地球表面是一个球面,那么两地之间的距离就是一条弧线,根据弧线的计算公式,就能够把两地之间的距离算出来了,固然咱们这个是有假设的,假设地球球面是光滑的,这样算下来的距离,会有必定的偏差,可是从理论上是可行的html

4. 本身按照地球表面的弧度来计算两地之间的距离,理论上是可行的,可是,目前网上有一些作好API,咱们能够直接调用,就能够计算出两地之间的距离了,并且很好用。下面,我将使用 高德地图的API 来计算两地之间的距离jquery

4.1 按照上面所说的理论,要计算两地的距离,首先须要确认这两个点在哪里,那怎么肯定呢?--------地球上一个点的定位,使用经纬度就能够了,经度和纬度定了,那么这个点也就定了web

例如:咱们要计算:重庆市到深圳市的距离ajax

如今,咱们须要获取  重庆市 和 深圳市 的经纬度数据库

4.1. 1 来看高德地图API:要使用高德的API,首先须要注册一下成为高德用户,直接在百度里输入 ‘高德地图’ ,回车,而后进入 ‘高德开放平台 | 高德地图API’json

4.1.2  而后在点击注册页面,注册一个用户api

4.1.3 申请秘钥:浏览器

为何要申请秘钥呢?由于你要使用高德地图的服务,而服务会以一个地址的形式发送到高德的服务器,高德的服务器会先肯定你的身份,而后再肯定是否处理你提交的东西;那高德地图怎么肯定是否要受理这份请求呢,毕竟谁也不会吃饱了没事干,而后有求必应,处理完了还不知道是谁在发送请求;这里秘钥就器做用了,秘钥说白了就是一个字符串,是一个身份标识,是高德地图给注册它的用户的一个身份标识。你发送请求了,他先肯定,哦,这是个人用户,而后才会进行处理,并且用户的请求是有限制的,每一个用户天天最多只能请求多少次,每秒钟请求多少次,这都是有限制的。服务器

秘钥申请 OK 以后,在你发送请求的同时,把秘钥放在请求的参数里,一块儿发送到高德地图的服务端,服务端返回请求结果,这样就可使用了异步

4.1.4.1   获取起始点和结束点的经纬度(重庆和深圳的经纬度)

找到web 服务,以下:

4.1.4.2 咱们将会用到如下两个模块:

4.1.4.3 请求地址:

4.1.4.4 请求返回的数据:

4.1.4.5 请求例子:

例如,我申请的秘钥是:key=3eac2241aca3b6f67079173fe3f3b8ec

而后申请的地点是:重庆市

那么个人服务请求就是:  http://restapi.amap.com/v3/geocode/geo?address=重庆市&output=JSON&key=3eac2241aca3b6f67079173fe3f3b8ec

把上面的请求输入浏览器地址栏:http://restapi.amap.com/v3/geocode/geo?address=重庆市&output=JSON&key=3eac2241aca3b6f67079173fe3f3b8ec,获得如下结果:

这里获得重庆市的经纬度为:106.551556,29.563009

经过相同的方式,获取深圳市的经纬度为:114.057868,22.543099

4.1.4.6  计算两地之间的距离:

4.1.4.7 找到距离测量:

4.1.4.8 测距返回数据:

4.1.4.9  服务请求地址:

http://restapi.amap.com/v3/distance?origins=106.551556,29.563009&destination=114.057868,22.543099&output=json&key=3eac2241aca3b6f67079173fe3f3b8ec&type=1

在浏览器中输入:http://restapi.amap.com/v3/distance?origins=106.551556,29.563009&destination=114.057868,22.543099&output=json&key=3eac2241aca3b6f67079173fe3f3b8ec&type=1,请求结果以下:

因此,重庆市和深圳市之间的距离就是:1446881  米 ,合 1446.88 千米

查看下手机高德地图的导航结果:1445 千米,基本一致

5.  把距离测算写成代码:

1

2

3

4

5

6

7

8

9

Document

10

11 $(function() {12 //获取起始点和结束点的经纬度

13 $("#btn2").on('click',function() {14 vardizhi1=$("#ostart").val();15 vardizhi2=$("#oend").val();16 //var url = "http://restapi.amap.com/v3/geocode/geo?address=" + dizhi1 + "|" + dizhi2 + "&output=JSON&key=3eac2241aca3b6f67079173fe3f3b8ec&batch=true";

17 varurl1= "http://restapi.amap.com/v3/geocode/geo";18 $.post(url1, {19 address: dizhi1+ '|' +dizhi2,20 output:'JSON',21 key:'3eac2241aca3b6f67079173fe3f3b8ec',22 batch:true

23 },function(data) {24 $("#ospan").html(data.geocodes[0].location);25 $("#osend").html(data.geocodes[1].location);26 });27 });28 //根据经纬度计算起始点和结束点的距离

29 $("#btn").on('click',function() {30 varst=$("#ospan").html();31 vared=$("#osend").html();32 varurl2= "http://restapi.amap.com/v3/distance?origins=" +st+ "&destination=" +ed+ "&output=json&key=3eac2241aca3b6f67079173fe3f3b8ec&type=1"

33 $.get(url2, {},function(data) {34 $("#distance").html(data.results[0].distance);35 });36 });37 $("#btn1").on('click',function() {38 $("#ostart").val('');39 $("#oend").val('');40 $("#ospan").html('');41 $("#osend").html('');42 $("#distance").html('');43 });44 });45

46

47

48

49

50

51

起始地:

52

结束地:

53

两地距离:米

54

55

高德地图ajax距离,高德地图 API 计算两个城市之间的距离相关推荐

  1. 厘米换算英尺英寸程序_使用C程序计算两个城市之间的距离,从公里到米,厘米,英尺和英寸...

    厘米换算英尺英寸程序 Input the distance between two cities in kilometers, we have to calculate the distance in ...

  2. mysql 计算gps坐标距离_mysql实现经纬度计算两个坐标之间的距离

    DELIMITER $$ CREATE DEFINER = CURRENT_USER FUNCTION `getDistance`(`lon1` float,`lat1` float,`lon2` f ...

  3. 利用高德地图API获取任意两座城市之间的距离!异地也有惊喜!

    工作中有时会遇到这样一种场景:年末需要统计所有员工该年的航旅出差情况,然后根据他们的飞行距离补贴一定的交通费.例如如下所示情况: 然而,如果我们使用地图APP等工具逐一进行手工查询,在一家规模稍大的公 ...

  4. 高德经纬度距离计算php,计算两个经纬度之间的距离 单位(m)

    /** * 计算两个经纬度之间的距离 单位(m) * * @param lat1 * @param lng1 * @param lat2 * @param lng2 * @return */ publ ...

  5. sklearn计算两个向量之间的距离

    from sklearn.feature_extraction.text import CountVectorizer from sklearn.metrics.pairwise import euc ...

  6. ITK:计算两个索引之间的距离

    ITK:计算两个索引之间的距离 内容提要 输出结果 C++实现代码 内容提要 计算两个索引之间的距离 输出结果 Dist: 1.73205 Dist2: 3 C++实现代码 #include &quo ...

  7. OpenCV计算两条平行线之间的距离

    代码来自www.opencvchina.com #include "cv.h" #include "highgui.h" #include "cxco ...

  8. hive 计算两个经纬度之间的距离

    select 6378137*2*ASIN(SQRT(POWER(SIN((lat1-lat2)*ACOS(-1)/360),2) + COS(lat1*ACOS(-1)/180)*COS(lat2* ...

  9. c#语言+计算两个位置的距离,C#计算两个经纬度之间的距离

    最近在项目中有一个功能需要计算两个经纬度之间的距离,在网上找了很多,也试了很多,下面的计算方法得出的结果是精度是最高,希望对大家有所帮助. private const double EARTH_RAD ...

  10. 计算两个点之间的距离

    题目来源:学堂在线_清华大学_JAVA程序设计 编写一个表示二维平面上的点的类MyPoint,满足以下条件: 1.定义private的成员变量x和y,表示点的x和y坐标,类型为double 2.定义两 ...

最新文章

  1. java.library.path hadoop_java - Hadoop“无法为您的平台加载native-hadoop库”警告
  2. Unity 3D 一个简单的角色控制脚本
  3. OpenJudge 1.7 09:密码翻译 题解
  4. 【ARM】协处理器指令
  5. error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
  6. 【原创】SQL SERVER 查询Job作业基本信息及执行情况
  7. 【集合框架】JDK1.8源码分析HashSet LinkedHashSet(八)
  8. linux系统下替换图片,Linux(ubuntu系统)下使用FreeImage库
  9. 产品经理 - 汽车维修连锁企业 - 发展预测
  10. 计算机科学 高中研究项目,高中信息科技教学中渗透计算机科学史的实践研究...
  11. 为啥学蛇和python10年后的变化
  12. NodeMCU(ESP8266)使用UDP控制8x8点阵显示
  13. android 4.4 hifi,Android系统HiFi手机需要解决什么问题?_音频新闻-中关村在线
  14. SLAM | 视觉SLAM中特征点法开源算法:PTAM、ORB-SLAM
  15. 物联网IoT终端设备如何选择接入协议——(TCP、UDP、MQTT、CoAP、LwM2M哪个更适合?)
  16. Pycharm快速入门(6) — 版本控制
  17. Excel常用技巧(一)——快捷键
  18. vue v-if : TypeError: Cannot read property 'length' of undefined
  19. runnable、callable、consumer、supplier
  20. Flask中使用定时任务

热门文章

  1. 安卓的短信记录导入苹果_如何把安卓系统的短信导入苹果手机
  2. flume1.8 TailDirSource断点续传与文件更名后数据重复采集的bug修复
  3. Java游戏吉他英雄_《吉他英雄:世界巡演》游戏秘技
  4. (一)android为什么需要recovery升级?
  5. 写在NPL小书出版之时
  6. forward和redirect的区别是什么?
  7. js对象嵌套数组_使用角管过滤嵌套数组和对象的数组并突出显示结果
  8. HackingLab脚本关
  9. 解决“网易邮箱提醒:一次被阻止的收信行为”
  10. mysql 按照条件计数_Mysql按条件计数的几种方法