我正在尝试创建一个基本的 Web 应用程序来检测用户的地理位置、查询 mySQL 数据库并返回 5 公里内的所有巴士站。
包含经度和纬度的 GTFS 提要已插入到 mySQL 数据库中,我找到了一个示例 HTML 页面,该页面提供了访问 Web 应用程序的浏览器的经度和纬度。
我正在寻求一些帮助来编写获取此信息并返回结果的 mySQL 查询。
我正在尝试创建一个基本的 Web 应用程序来检测用户的地理位置、查询 mySQL 数据库并返回 5 公里内的所有巴士站。
包含经度和纬度的 GTFS 提要已插入到 mySQL 数据库中,我找到了一个示例 HTML 页面,该页面提供了访问 Web 应用程序的浏览器的经度和纬度。
我正在寻求一些帮助来编写获取此信息并返回结果的 mySQL 查询。
尽管大圆公式是精确的,但在这种情况下您不需要精确度。一分钟的纬度约为 1 英里(1.6 公里)。一分钟的经度大约是 cos(LAT)*1 英里。我会考虑选择 LAT +/- 3 分钟和 LONG +/- (3/cos(LAT)) 分钟的框。如果你真的需要一个圆,而不是一个盒子,那么就假装它是欧几里得坐标。这个尺度上的误差小于总线的长度。
唯一棘手的部分是一分钟经度的长度取决于您离赤道的距离。
在此链接中,您可以找到:
SELECT id, ( 3959 * acos( cos( 弧度(37) ) * cos( 弧度( lat ) ) * cos( 弧度( lng ) - 弧度(-122) ) + sin( 弧度(37) ) * sin( 弧度( lat ) ) ) ) AS距离标记 HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;