/**
* 度换成弧度
* @param d 度
* @return 弧度
*/
function rad(d) {
return d * Math.PI / 180.0;
}
/**
* 弧度换成度
* @param x 弧度
* @return 度
*/
function deg(x) {
return x * 180 / Math.PI;
}
/**
* 计算另一点经纬度
* @param lnglat
* 已知点经纬度
* @param brng
* 方位角 ---- 正北方:000°或360° 正东方:090° 正南方:180° 正西方:270°
* @param dist
* 距离(米)
*/
ADestinceAngle_B = function (lnglat, brng, dist) {
/*
* 大地坐标系资料WGS-84 长半径a=6378137 短半径b=6356752.3142 扁率f=1/298.2572236
*/
var ct = {
a: 6378137,
b: 6356752.3142,
f: 1 / 298.257223563
};
var a = ct.a, b = ct.b, f = ct.f;
var lng1 = lnglat.lng * 1; //乘一(*1)是为了确保经纬度的数据类型为number
var lat1 = lnglat.lat * 1;
var s = dist;
var alpha1 = rad(brng);
var sinAlpha1 = Math.sin(alpha1);
var cosAlpha1 = Math.cos(alpha1);
var tanU1 = (1 - f) * Math.tan(rad(lat1));
var cosU1 = 1 / Math.sqrt((1 + tanU1 * tanU1)), sinU1 = tanU1 * cosU1;
var sigma1 = Math.atan2(tanU1, cosAlpha1);
var sinAlpha = cosU1 * sinAlpha1;
var cosSqAlpha = 1 - sinAlpha * sinAlpha;
var uSq
球体相关算法
最新推荐文章于 2023-01-07 08:38:12 发布