我有一个地理位置字符串为25°9'37“N 55°13'28”E。使用JavaScript正则表达式我想从上面的字符串中提取Lat和Lng。 谢谢。从地理位置提取纬度/ Lng字符串
回答
您的第一行可能是“25°9'37”N是纬度的分钟格式,您可能想要提取它的值并将其转换为十进制度表示,这可以对其进行进一步计算。 @Stormwind
根据this博客帖子,转换公式是
//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
详情参阅Converting Latitude/Longitude from Degrees/Minutes/Seconds to Decimal Degrees
这个声明“25°9'37”N是十进制度的值 - 不是纬度,你必须将其转换为纬度“_is非常不稳定,当然这是一个纬度值,有几分钟甚至几秒钟,你部分回答了问题中没有提到的问题,即如何将该经纬度分钟对转换成十进制度。也许这就是他最终想要的,但它不是这样表达的,一分钟经常是dd°mm.mm'(其中m是0 ... 59.99 - 秒不再现代),而十进制经度是dd.dddd ...°要对它进行计算,可以使用十进制度表示 – Stormwind
@Stormwind我认为OP期望像'23.23232'这样的常用纬度值_使用JavaScript正则表达式我想额外从上面的字符串中选择Lat和Lng_OP想要从'25°9'37“N'得到__Lat__,所以他需要从字符串中提取degs/min/secs,然后转换为度数来获得纬度,这是同意的吗? –
可能是他想要的,所以你的解决方案是可以的。但你应该纠正你的第一句话。这当然是一个纬度,也是“通常”的一个,如果有的话,它不是十进制度数值。他们不会在海上使用十进制经纬度,请放心。您的第一行可能是“25°9'37”N是纬度的分钟格式,您可能想要提取它的值并将其转换为十进制度表示,这可以对其进行进一步计算“,或者类似的。不是那么容易让人误解,因为这个现在的人在我眼中真的发红:-)。 – Stormwind
- 1. 从Google地理定位API获取当前经纬度和lng
- 2. 获得塔GSM位置经纬度LNG
- 3. 从经纬度获取位置地址
- 4. Geocoder无法从android中的特定字符串获取纬度lng?
- 5. 获取当前位置经纬度和LNG在地图上的准备
- 6. 提取纬度/龙从通过谷歌API(地理编码)
- 7. 提高纬度/长地理位置的性能
- 8. 在iOS中获取iBeacon的地理位置Long和纬度
- 9. 地理位置 - 如何从长期获得城市和纬度
- 10. 验证地理位置纬度和经度
- 11. 地理位置(纬度/经度)到美国在java状态
- 12. 单张geosearch:回纬度/从地址LNG发现事件
- 13. 地理定位 - 将经度和纬度值分配给变量
- 14. Javascript:从字符串中提取不同位置的数字?
- 15. HTML5地理位置中经度和纬度的半径
- 16. 如何在谷歌地图中提取纬度/纬度?
- 17. 从TXT文件中提取从位置X到位置Y的字符串
- 18. 从任意长度的字符串中提取子字符串
- 19. 如何从googleapis中考虑纬度和经度的位置
- 20. 附近地点的经纬度位置
- 21. 从用户指定位置获取纬度和经度
- 22. 字符串处理,提取和从字符串
- 23. 返回从字符串位置获取的默认标记的经度和纬度
- 24. 如何从某个位置提取字符串
- 25. 无法在位置对象的字符串中存储经度或纬度
- 26. Python提取字段和符号位置的子字符串
- 27. 从地理编码获取错误的经度和纬度
- 28. 从Geocoder获取经度和纬度值的位置更新
- 29. android从输入位置获取纬度和经度
- 30. 通过获取纬度和经度在地图上绘制多个位置
'VAR RES = “25°9'37 \” N 55°13'28 \ “E” .match(/ \ d +° \ d +'\ d +“[NEWS]/g)' –
我在每个值之间看到一个空格。你可以简单地做一个字符串拆分,并使用正确的值 –
@PranavCBalan你的建议为我工作。非常感谢完美的解决方案。 –