我有一个位置的mySQL表,每个表都有一个id,街道,城市,州,纬度,经度,半径列。每个位置的半径可能会有所不同,即5,10,15,20 ...(英里)。
我要执行的是一个查询,该查询将给我所有半径与给定纬度和经度坐标相关的位置的计数(id)。
我在下面找到了该查询,但是还没有弄清楚如何修改它以满足我的需求。它需要纬度,经度和固定距离。
我的猜测是获取要修改(或删除)Having子句的关键。
我的目标是确定给定半径的任何位置是否碰到中心。
SELECT
`id`, `street`, `city`, `state`, `radius`, `longitude`, `latitude`,
(
6371 *
acos(
cos( radians( 41.257160 ) ) *
cos( radians( `latitude` ) ) *
cos(
radians( `longitude` ) - radians( -95.995102 )
) +
sin(radians(41.257160)) *
sin(radians(`latitude`))
)
) `distance`
FROM
`shops`
HAVING
`distance` < 25
ORDER BY
`distance`
LIMIT
25
我似乎使用“具有distance
<radius
来获得结果,但我质疑它们的准确性。我在查询中使用的经度和纬度接近奥马哈东北54 S街1801号。>
查看所附的结果屏幕快照,您可以看到该公式返回的距离是950英里远的阿灵顿和2182英里的加利福尼亚尤巴城。实际上,阿灵顿(驾车)约为694英里,加利福尼亚尤巴市则为1565英里。
答案 0 :(得分:0)
我似乎将查询设置为公里,而不是英里。抱歉