在一定距离处查找经纬度四个方向的点
Posted
技术标签:
【中文标题】在一定距离处查找经纬度四个方向的点【英文标题】:Find points in four directions of a latitude and longitude at certain distance 【发布时间】:2021-11-17 00:11:53 【问题描述】:我正在努力在一个位置周围显示四个指针(具有一定纬度和经度的指针),可以在地图上选择。
所以我从https://nominatim.org/ api 获取位置的纬度和经度值。我正在尝试从所选位置获取四点的纬度和经度值。这四个点距离当前点仅100米。
所以现在这里的问题是我如何计算或找到所选位置点的东、西、北和南点(距当前经纬度位置 100 米)。我已经检查了不同的选项,例如此处https://assemblysys.com/php-point-in-polygon-algorithm/ 的多边形算法中的点,或者尝试在所选点周围画一个圆,然后在该圆的圆周上获得四个点,但是问题仍然是我无法知道是否我得到的点是直接从所选位置。它是位置的东边,南边还是西边等。
对于确定某个点在所选点的哪个方向上的任何帮助表示赞赏。
【问题讨论】:
你是在 SQL 中实现这个吗?哪个供应商?如果这是一个与语言无关的问题,我想知道是否有更好的论坛。 @chegancasb 不,实现将在 JS/PHP 中,更正了标记。但我正在寻找的是一个一般提示,只需稍加修改即可在 JS/PHP 中使用。 【参考方案1】:一旦您(或某人)在地图上选择了位置,您就会得到它的纬度和经度。假设它是:
lat = 44.78
lon = 20.45
然后,看看这个答案:Calculating new longitude, latitude from old + n meters。 它应该为您提供 100 米的距离,但作为纬度/经度偏移量。应用 SO 答案中的公式后,您将得到:
lat_offset = 0.0008983152841195215
lon_offset = 0.001265559599380766 // note that this lon_offset contains lat in formula (take a look at the link above)
最后,将计算结果应用到您的公式中:
west_lat = lat
west_lon = lon - lon_offset
east_lat = lat
east_lon = lon + lon_offset
north_lat = lat + lat_offset
north_lon = lon
south_lat = lat - lat_offset
south_lon = lon
注意:这些公式不适用于非常接近南极或北极的位置
【讨论】:
以上是关于在一定距离处查找经纬度四个方向的点的主要内容,如果未能解决你的问题,请参考以下文章