从地理定位字符串中提取纬度/液化
extract Lat/Lng from Geo loaction string
我有一个地理位置字符串为 25°9'37"N 55°13'28"E。使用 JavaScript 正则表达式,我想从上面的字符串中提取 Lat 和 Lng。谢谢。
您的第一行可能是"25°9'37"N 是纬度的分钟格式,您可能希望提取其值并转换为其十进制度表示形式,这样可以对其进行进一步计算。 @Stormwind
根据这篇博文,转换公式是
//latitude formula
([LATITUDE_DEG])+([LATITUDE_MIN]/60)+([LATITUDE_SEC]/3600))*
IF [Latitude_Direction]="South" THEN -1 ELSE 1 END
//longitude
([LONGITUDE_DEG]+([LONGITUDE_MIN]/60)+([LONGITUDE_SEC]/3600))*
IF [Longitude_Direction]="West" THEN -1 ELSE 1 END
正则表达式(简单)
//latitude
25°9'37"N
/('w+)°('w+)'('w+)"('w+)/
`25`, `9`, `37`, `N`
//regex from @PranavCBalan also works well
/('d+)°('d+)'('d)+"([NEWS])/
`25`, `9`, `37`, `N`
纬度解决方案(简单) - 请注意,此解决方案容易出错,因为它是在 5 分钟内编写的,所以要小心
var lat_str = "25°9'37'"N"; //escaped string
lat_str = lat_str.replace(''"', '"'); //little trick
var matches = lat_str.match(/('w+)°('w+)'('w+)"('w+)/); //regexify
var lat_deg = parseInt(matches[1]); //degrees
var lat_min = parseInt(matches[2]); //minutes
var lat_sec = parseInt(matches[3]); //seconds
var lat_dir = matches[4]; //direction
var latitude = (lat_deg+(lat_min/60)+(lat_sec/3600))*(lat_dir === 'N' ? 1 : -1);
//25.160277777777775
经度解决方案
//same as latitude (except direction check), do it as your homework
有关更多详细信息,请参阅将纬度/经度从度/分/秒转换为十进制度
相关文章:
- 在数据提取完成之前进行页面渲染
- “可绘制地图”设置地图选项“纬度-经度”
- 如何在Javascript中从字符串中提取某些单词
- RegEx JavaScript:数字后的符号提取
- 如何在内联依赖项并将图像转换为dataURI的情况下完全提取网页
- 如何用javascript获取谷歌地图的经度和纬度
- Regex提取URL返回数组的一部分;未定义”;
- 如何提取“;href"最近列表项中的属性值
- 使用时刻.js从日期时间中提取时间
- 使用API在我的网站Google-Map上显示搜索地址的纬度和经度
- 通过javascript从会话中提取用户名
- HTML页面如何提取通过表单传递的参数
- 给定带有位置“loc”的链接,搜索使用谷歌地图API从标记中提取纬度和经度
- 从地理定位字符串中提取纬度/液化
- 在 JavaScript 中,如何从字符串中提取纬度和经度
- 如何从外部文件中提取纬度经度组合
- 从云代码中的ParseGeopoint提取纬度和经度
- 使用Javascript从Google融合表中的kml字段中提取纬度和经度
- 通过Javascript从字符串中提取纬度和经度
- 从可变长度的字符串中提取纬度,lng