我有一个mySQL表,其中包含用户名,用户的经度和经度。我想获得一个用户列表,该用户列表位于给定纬度和经度的给定距离内。例如我的输入Lat = 78.3232和Long = 65.3234,距离= 5 km。我想获得距离点78.3232和65.3234 5km范围内的用户列表。是否可以通过单一查询解决这个问题?或者你可以给我一个提示开始解决这个问题吗?我是基于地理信息的新手。
答案 0 :(得分:0)
http://www.movable-type.co.uk/scripts/latlong-db.html
根据点之间的距离(您的圆半径)
,您可以开始工作imo,你需要定义进入这个“圆圈”的所有点(表面),并检查你的用户是否进入这个表面......事实上,这样做的一个好方法是定义范围。例如:
纬度:72,长度介于65和15之间。 67 纬度:73,长度在64& 69 ......
如果你用精确的xx.yyyy来做这件事会增加可能性......这只是一个数学挑战......祝你好运!
答案 1 :(得分:0)
我认为一个好的起点是毕达哥拉斯定理a ^ 2 + b ^ 2 = c ^ 2其中a =从点到原点的纬度差,而b将=长的差值。和c等于距离。
解决了数学问题。
我需要一些帮助从长距离的纬度和距离进行转换。
将成为一个地方,州或全球计划?这会产生变化,因为当你到达极点时经度的差异变小,而当你到达赤道时变得更大。