【发布时间】:2014-12-12 04:32:31
【问题描述】:
我构建了一个移动应用程序,该应用程序需要根据他们当前的纬度和经度以及 10 英里半径来定位他们周围发生的事件。用户点击一个事件类型,API 需要搜索距离它们 10 英里范围内的所有事件。我的数据库的设置方式每个事件都属于一个场地,这是存储纬度和经度的地方。这是我到目前为止的 SQL:
$sql = "SELECT events.*, (3959 * acos(cos(radians(78.3232)) * cos(radians($latitude)) * cos(radians($longitude) - radians(65.3234)) + sin(radians(78.3232)) * sin(radians($latitude)))) AS distance
FROM events
INNER JOIN venues ON events.venue_id = venues.id
INNER JOIN promoters ON events.promoter_id = promoters.id
WHERE type = $type AND end > NOW()
ORDER BY distance";
events 表存储有关事件的信息(名称、描述、开始、结束等),而场所表存储有关场所的信息(名称、地址、纬度、经度等)。我将如何加入这些表以确保根据用户的位置检索我想要的事件?
【问题讨论】:
标签: php mysql google-maps