spoon 100500 Asked:2021-11-23 12:11:07 +0000 UTC2021-11-23 12:11:07 +0000 UTC 2021-11-23 12:11:07 +0000 UTC 确定坐标点是否在圆的半径内 772 需要判断用户是否在该区域的半径范围内,有一个经纬度点圣彼得堡59.93428、30.3351和一个活动半径,例如100公里,我们使用HTML5 Geolocation接收用户数据API,我们需要了解他是否包含在开源软件领域? javascript 1 个回答 Voted Best Answer DiD 2021-11-23T14:00:27Z2021-11-23T14:00:27Z 要确定两个坐标之间的距离,可以使用以下函数: function geoDistance(lat1,lon1,lat2,lon2) { // a = sin²(Δφ/2) + cos(φ1)⋅cos(φ2)⋅sin²(Δλ/2) // tanδ = √(a) / √(1−a) // see mathforum.org/library/drmath/view/51879.html for derivation const R = 6371e3, π = Math.PI; const { sin, cos, atan2 } = Math; const φ1 = lat1 * π / 180, λ1 = lon1 * π / 180; const φ2 = lat2 * π / 180, λ2 = lon2 * π / 180; const Δφ = φ2 - φ1, Δλ = λ2 - λ1; const a = sin(Δφ/2)**2 + cos(φ1) * cos(φ2) * sin(Δλ/2)**2; const c = 2 * atan2(a**.5, (1-a)**.5); const d = R * c; return d; }; console.log('Расстояние в метрах =', geoDistance(59.93428,30.3351, 55.75222,37.61556));
要确定两个坐标之间的距离,可以使用以下函数: