时间:2021-05-25
正常在使用百度地图时,我们可以通过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之间,经度使用 */ 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根据百度地图提供经纬度计算两点距离详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
利用JS实现的根据经纬度计算地球上两点之间的距离最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下。计算地球表面两点间的距离大概有两种办法
SQLSERVER根据地图经纬度计算距离的公式复制代码代码如下:go--创建经纬度距离计算函数CREATEFUNCTION[dbo].[fnGetDistanc
这是一个不错的示例,直接贴代码,首先要知道纬度值、经度值/***@desc根据两点间的经纬度计算距离*@paramfloat$lat纬度值*@paramfloa
本文实例为大家分享了php计算两点地理坐标距离的具体代码,供大家参考,具体内容如下功能:根据圆周率和地球半径系数与两点坐标的经纬度,计算两点之间的球面距离。获取
一、背景希望根据企业名称查询其经纬度,所在的省份、城市等信息。直接将企业名称传给百度地图提供的API,得到的经纬度是非常不准确的,因此希望获取企业完整的地理位置