我们有一个由lat& amp; LNG
我们想要生成一些其他随机lat&距离这个位置20公里的位置
有没有人有这个
的好公式答案 0 :(得分:1)
在范围r
中生成两个统一的随机值Fi
和0..1
将距离计算为d = Radius * Sqrt(r)
(description here for plane circle)
计算方位为Theta=2 * Pi * Fi
找到给定中心点的纬度/经度坐标,并在Destination point given distance and bearing from start point
部分中计算d和Theta为described here
JavaScript:
(all angles
in radians)
var φ2 = Math.asin( Math.sin(φ1)*Math.cos(d/R) +
Math.cos(φ1)*Math.sin(d/R)*Math.cos(θ) );
var λ2 = λ1 + Math.atan2(Math.sin(θ)*Math.sin(d/R)*Math.cos(φ1),
Math.cos(d/R)-Math.sin(φ1)*Math.sin(φ2));
where φ is latitude, λ is longitude,
θ is the bearing (clockwise from north), d being the distance travelled,
R the earth’s radius