详解详解js根据百度地图提供经纬度计算两点距离根据百度地图提供经纬度计算两点距离
正常在使用百度地图时,我们可以通过BMap的实例对象提供的方法计算距离:
var map = new BMap.Map('map_canvas');
map.getDistance(point1 ,point2);
//point1、point2 是Point对象
如果在不使用百度地图,但是已知百度地图的经纬度情况下也是可以计算出与上面相同的值的
三方库 此库提供计算两点距离的方法
引用此库使用 返回(米)
BMapLib.GeoUtils.getDistance(point1 ,point2)
当然如果只想计算距离也可以直接用下面的代码:
注: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之间,经度使用