我如何计算距离中心 10 或 20 公里半径内的纬度和经度
how i can count lat and lon in radius ten or twenty kilometres from center
我需要计算距离中心 10 公里和 20 公里半径内的随机纬度和经度,我有哪些电线。
例如:
location_center = {
"lat": 5.0123,
"lon": 40.712
}
半径 10 公里内的随机线:
location_center = {
"lat": 6.246,
"lon": 45.678
}
半径 20 公里内的随机线:
location_center = {
"lat": 7.368,
"lon": 50.678
}
我怎么算?
将不胜感激。
在 0..2*Pi 范围内生成随机角度
使用 this page 中的 Destination point given distance and bearing from start point
部分,计算所需距离 d
公里处的点(地球半径 R=6378.13 km
)
brng = random() * 2 * Math.pi
lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) +
Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) );
lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1),
Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));
我需要计算距离中心 10 公里和 20 公里半径内的随机纬度和经度,我有哪些电线。
例如:
location_center = {
"lat": 5.0123,
"lon": 40.712
}
半径 10 公里内的随机线:
location_center = {
"lat": 6.246,
"lon": 45.678
}
半径 20 公里内的随机线:
location_center = {
"lat": 7.368,
"lon": 50.678
}
我怎么算?
将不胜感激。
在 0..2*Pi 范围内生成随机角度
使用 this page 中的 Destination point given distance and bearing from start point
部分,计算所需距离 d
公里处的点(地球半径 R=6378.13 km
)
brng = random() * 2 * Math.pi
lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) +
Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) );
lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1),
Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));