【问题标题】:Geolocation and Haversine formula地理位置和Haversine公式
【发布时间】:2010-10-10 22:20:18
【问题描述】:

我正在尝试创建一个基本的 Web 应用程序,用于检测用户的地理位置、查询 mySQL 数据库并返回 5 公里内的所有公交车站。

包含经度和纬度的 GTFS 提要已插入到 mySQL 数据库中,我找到了一个示例 HTML 页面,该页面提供了访问 Web 应用程序的浏览器的经度和纬度。

我正在寻求一些帮助来编写获取此信息并返回结果的 mySQL 查询。

【问题讨论】:

  • 在确定答案不可用之前,您查看了多少标题中带有haversine的问题?我只用haversine得到了100到150个结果(粗略计算大约130个);其中许多包括地理位置,许多还包括数据库。

标签: mysql sql geolocation haversine gtfs


【解决方案1】:

虽然大圆公式很精确,但在这种情况下您不需要精确度。一分钟的纬度约为 1 英里(1.6 公里)。一分钟的经度大约是 cos(LAT)*1 英里。我会考虑选择 LAT +/- 3 分钟和 LONG +/- (3/cos(LAT)) 分钟的框。如果你真的需要一个圆,而不是一个盒子,那么就假装它是欧几里得坐标。这个尺度上的误差小于总线的长度。

唯一棘手的部分是一分钟经度的长度取决于您离赤道的距离。

【讨论】:

  • 您能否详细说明“假设它是欧几里得坐标”部分,如何做到这一点?
【解决方案2】:

在这个link 你会发现:

SELECT id, ( 3959 * acos( cos( 弧度(37) ) * cos( 弧度( lat ) ) * cos( 弧度( lng ) - 弧度(-122) ) + sin( 弧度(37) ) * sin ( 弧度( lat ) ) ) ) AS 距离标记 HAVING distance

【讨论】:

    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2017-09-27
    • 2013-01-22
    • 2011-09-12
    相关资源
    最近更新 更多