如何计算半径内的最大和最小纬度和经度值?
Posted
技术标签:
【中文标题】如何计算半径内的最大和最小纬度和经度值?【英文标题】:How do I calculate the maximum and minimum latitude and longitude values within a radius? 【发布时间】:2017-08-18 19:44:32 【问题描述】:我想,给定一个点的纬度和经度,以及该点周围的特定半径(以公里为单位),计算纬度和经度的最大值和最小值。
从我所做的研究看来,如果你想要精确,你应该牢记两极和赤道的近似值。因此,如果可能的话,我希望了解更多关于计算的精确版本,除非它太复杂。
【问题讨论】:
你是如何测量距离的? (如果你不能回答,“精确”版本与你无关。除非半径以数千公里为单位。) @StephenC 确实我不明白你的意思。这个半径可能永远不会超过 150-200 公里,所以我假设根据你的回答,我不需要它是精确的。但我的问题仍然存在,如何计算最大值和最小值? 有一个叫做Haversine公式的公式可以计算两个纬度/经度点之间的距离。根据 X 公里的已知距离,使用代数求解点。 【参考方案1】:您似乎想要“边界框”的代码。这允许您执行“商店定位器”操作,该操作不计算数据库中每个商店的距离。第 0 步(可选)是在您的数据库中建立一个索引(在纬度、经度上)。第 1 步是计算 (lo_lat, hi_lat, lo_lon, hi_lon) 的框,并在过滤掉不需要的行的查询中使用它。第 2 步计算剩余行的距离,并删除所需圆之外的行。
这将帮助您了解详细信息:http://janmatuschek.de/LatitudeLongitudeBoundingCoordinates
【讨论】:
【参考方案2】:在我看来,答案必须在起点的北、南、东和西。考虑到地球的半径,这使得计算最大和最小纬度变得微不足道。对于经度,您可以计算给定纬度的地球半径,并使用它来计算最大和最小经度。 我在这里错过了一个问题吗?
【讨论】:
以上是关于如何计算半径内的最大和最小纬度和经度值?的主要内容,如果未能解决你的问题,请参考以下文章