坐标系中找一个参考点某个范围内坐标点的问题
一个坐标系中有很多点(坐标),现给出一个参考点,找出参考点范围(xxx米,xxx公里)内的点。 1.现实生活中坐标就是指经度和纬度,每个单位之间距离可以量化(每个单位纬度距离≈111公里;每个单位经度距离≈111cosα公里,赤道≈111公里),给出一个坐标点,找附近的点,可以理解为以该点为圆心,该圆所覆盖的点(方便计算可以理解为矩形覆盖),那么可以根据量化单位和范围得出经度和纬度的范围,比如点[104.292100,30.990100]一公里范围内的点就是(非球面计算法,经度范围[104.282200~104.302000],纬度[30.981010~30.999190]) 2.每条数据坐标分别保存在数据库表中字段x(经度),y(纬度)里,那么查询条件(where x BETWEEN 104.282200 AND 104.302000 AND y BETWEEN 30.981010 AND 30.999190) 3.另外mysql,mongodb本身就支持坐标计算,直接使用相应查询语句可以实现(具体可以参考相关文档) 4.针对坐标数据存储的问题,如何优化。比如mysql可以采用分表的方法存储,比如分为N个表(例如华东、华北、华南、东北),看你怎么分(其中涉及到临界点范围点跨表的问题以及点范围的判断,具体分析业务逻辑来划分处理这个问题),每个分区都有x,y的范围,先对点判断分区