标题: 如何快速查询,距用户 [15km, 20km) 远的地点?
时间: 06-17 23:12发布,06-17 23:21修改
1km
/块),所有地点按 (lat_chunk, lng, lat)
建索引。(矩形 - 圆环)
的地点。下面是 [8km, 10km)
,纬度按 1km
分块后,计算出的示意图:
user_lat
。user_lat_chunk
上方时,东边的矩形:15km
内圈,与块上边纬度交点20km
外圈,与块下边纬度交点user_lat_chunk
下方时,东边的矩形:15km
内圈,与块下边纬度交点20km
外圈,与块上边纬度交点user_lat_chunk
本块时,东边的矩形:user_lat
远,取其纬度与 15km
内圈交点user_lat
与 20km
外圈交点后面追踪画图,发现距离圆环◎不是标准(椭)圆(纬度高时,尤为明显)。
下面是 [2900km, 3000km)
,纬度按 100km
分块后,计算出的示意图:
因此第二步里的假设出错,圆环最宽处,不是用户纬度,进而算错某些最小包含矩形了:
『回复列表(11|隐藏机器人聊天)』
不用太刻意强迫自己必须选择一个圆形区域。直接根据经纬度选择一个矩形区域,性能更好,效果也差不多。
除非你是做那种精确定位的,如果你是做一般的生活服务类的否则没必要太精确,因为假设 5km 的附近的兴趣点,但是在现实生活中,有的有河流、山地、交通管制等,需要绕行,实际行程可能更远或者更近。
@老虎会游泳,@水木易安,@胡图图,算个导数,再求零点,就纠正了。。
已知半径为
求其零点,得到