详解js根据百度地图提供经纬度计算两点距离
网络编程 2021-07-04 15:50www.168986.cn编程入门
这篇文章主要介绍了js根据百度地图提供经纬度计算两点距离,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们狼蚁网站SEO优化随着长沙网络推广来一起学习学习吧
正常在使用百度地图时,我们可以通过BMap的实例对象提供的方法计算距离
var map = new BMap.Map('map_canvas'); map.getDistance(point1 ,point2); //point1、point2 是Point对象
如果在不使用百度地图,已知百度地图的经纬度情况下也是可以计算出与上面相同的值的
此库提供计算两点距离的方法
引用此库使用 返回(米)
BMapLib.GeoUtils.getDistance(point1 ,point2)
如果只想计算距离也可以直接用狼蚁网站SEO优化的代码
注BMap需要导入,使用如下
BMapLib.GeoUtils.getDistance(lng1,lat1,lng2,lat2)
import BMap from 'BMap' var BMapLib = window.BMapLib = BMapLib || {}; (function() { / 地球半径 / var EARTHRADIUS = 6370996.81; / @exports GeoUtils as BMapLib.GeoUtils / var GeoUtils = / GeoUtils类,静态类,勿需实例化即可使用 @class GeoUtils类的<b>入口</b>。 该类提供的都是静态方法,勿需实例化即可使用。 / BMapLib.GeoUtils = function(){ }; / 将度转化为弧度 @param {degree} Number 度 @returns {Number} 弧度 / GeoUtils.degreeToRad = function(degree){ return Math.PI degree/180; } / 将v值限定在a,b之间,纬度使用 / function _getRange(v, a, b){ if(a != null){ v = Math.max(v, a); } if(b != null){ v = Math.min(v, b); } return v; } / 将v值限定在a,b之间,经度使用 / function _getLoop(v, a, b){ while( v > b){ v -= b - a } while(v < a){ v += b - a } return v; } / 计算两点之间的距离,两点坐标必须为经纬度 @param {lng1} Number 点对象 @param {lat1} Number 点对象 @param {lng2} Number 点对象 @param {lat2} Number 点对象 @returns {Number} 两点之间距离,单位为米 / GeoUtils.getDistance = function(lng1, lat1, lng2 ,lat2){ let point1 = new BMap.Point(parseFloat(lng1) ,parseFloat(lat1)); let point2 =new BMap.Point(parseFloat(lng2) ,parseFloat(lat2)); //判断类型 if(!(point1 instanceof BMap.Point) || !(point2 instanceof BMap.Point)){ return 0; } point1.lng = _getLoop(point1.lng, -180, 180); point1.lat = _getRange(point1.lat, -74, 74); point2.lng = _getLoop(point2.lng, -180, 180); point2.lat = _getRange(point2.lat, -74, 74); let x1, x2, y1, y2; x1 = GeoUtils.degreeToRad(point1.lng); y1 = GeoUtils.degreeToRad(point1.lat); x2 = GeoUtils.degreeToRad(point2.lng); y2 = GeoUtils.degreeToRad(point2.lat); return EARTHRADIUS Math.acos((Math.sin(y1) Math.sin(y2) + Math.cos(y1) Math.cos(y2) Math.cos(x2 - x1))); } })();
以上所述是长沙网络推广给大家介绍的js根据百度地图提供经纬度计算两点距离详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程