将格式化的字符串转换为纬度或经度

时间:2014-04-29 07:06:47

标签: javascript openlayers

我使用OpenLayers生成格式化的纬度;像这样:

OpenLayers.Util.getFormattedLonLat(bounds.top, 'lat');

生成字符串57°42'32"Nbounds.top的值为十进制度为57.70889832055789。

这很好。但是如何使用OpenLayers进行相反的操作呢?如果用户输入类似57°42'32"N的字符串,我如何使用OpenLayers将其转换为十进制度数,例如OpenLayers.LonLatOpenLayers.Bounds

1 个答案:

答案 0 :(得分:2)

解析字符串并从Degrees,minutes和seconds计算有理数就足够了,如:

var input = "50° 20' 12''";
var coord = input.match(/[0-9]+/g);
var lat = parseFloat(coord[0]) + coord[1]/60.0 + coord[2]/3600.0 ;
if(/S|W/i.test(input)) lat *= -1;

当然,您应检查输入的正确性,并在3个字段0处启动数组。