我有以下形式的 GPS 信息:
北纬 36°57'9"西经 110°4'21"
我可以使用 javascript functions of Chris Veness将度、分和秒转换为数字度,但首先需要将 GPS 信息解析为单独的纬度和经度字符串(带有 NSEW 后缀)。我已经阅读了关于 stackoverflow 的相关帖子,但我不是正则表达式专家(也不是程序员),需要一些解析功能方面的帮助。将此字符串解析为纬度和经度以便在转换函数中使用的最佳方法是什么?
所有这一切的结果将是一个 Web 链接,点击该链接可以查看 Google map 位置表示。
最佳答案
要解析您的输入,请使用以下命令。
function ParseDMS(input) {
var parts = input.split(/[^\d\w]+/);
var lat = ConvertDMSToDD(parts[0], parts[1], parts[2], parts[3]);
var lng = ConvertDMSToDD(parts[4], parts[5], parts[6], parts[7]);
}
以下会将您的 DMS 转换为 DD
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;
}
因此您的输入将产生以下结果:
36°57'9" N = 36.9525000
110°4'21" W = -110.0725000
小数坐标可以通过 GLatLng(lat, lng)
( Google Maps API ) 输入到 google map 以获取点
关于javascript - 将纬度和经度转换为十进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1140189/