从特定的飞行计划航点获取 GPS 坐标
Posted
技术标签:
【中文标题】从特定的飞行计划航点获取 GPS 坐标【英文标题】:Getting GPS Coordinates from a specific flight plan waypoints 【发布时间】:2017-10-27 14:42:28 【问题描述】:我正在开发一张传单地图,我想根据从 A 到 B 的航路点(交叉点)列表在其上显示飞行计划,例如在网站 http://onlineflightplanner.org/ 上显示飞行路线地图。
我的问题是,如何从航路点获取后面的 gps 坐标(例如:ADABI : N44°4943.15 / W000°42'55.24''?是否有任何 javascript 库可以做到这一点?非常感谢
【问题讨论】:
【参考方案1】:您确实可以使用像Javascript GeoPoint Library 这样的库,但是这样的转换很容易实现。此外,上述库希望您已经知道哪个值是纬度(北),哪个值是经度(东),如果您的输入是 "N44°49'43.15 / W000°42'55.24''"
,则可能不是这种情况。
在Converting latitude and longitude to decimal values 的基础上,我们可以轻松制作适合您情况的特定转换实用程序:
var input = "N44°49'43.15 / W000°42'55.24''";
function parseDMS(input)
var halves = input.split('/'); // Separate northing from easting.
return // Ready to be fed into Leaflet.
lat: parseDMSsingle(halves[0].trim()),
lng: parseDMSsingle(halves[1].trim())
;
function parseDMSsingle(input)
var direction = input[0]; // First char is direction (N, E, S or W).
input = input.substr(1);
var parts = input.split(/[^\d\w.]+/);
// 0: degrees, 1: minutes, 2: seconds; each can have decimals.
return convertDMSToDD(
parseFloat(parts[0]) || 0, // Accept missing value.
parseFloat(parts[1]) || 0,
parseFloat(parts[2]) || 0,
direction
);
function convertDMSToDD(degrees, minutes, seconds, direction)
var dd = degrees + minutes/60 + seconds/(60*60);
if (direction == "S" || direction == "W")
dd = dd * -1;
// Don't do anything for N or E
return dd;
console.log(input);
console.log(parseDMS(input));
【讨论】:
以上是关于从特定的飞行计划航点获取 GPS 坐标的主要内容,如果未能解决你的问题,请参考以下文章
Loj #3085. 「GXOI / GZOI2019」特技飞行