mysql计算附近的地铁站
问题描述

如图有两张表,小区表(xiaoqu)和地铁表(metro),现在小区表里面小区附近的地铁站(图片中红色字段)是空的。想批量完善这个字段,求助。附近的定义是:离小区最近,并且在1000米以内的一个地铁站。例如:北京的华腾园小区,附近1000米有双井和劲松两个站,但是劲松距离较近,所以华腾园那一行对应的就是劲松站。
目前已经自定义了两个经纬度之间距离的函数。getdistance(纬度1,经度1,纬度2,经度2),函数代码如下:
-- getdistance(Lat1 ,Lon1,Lat2 ,Lon2)BEGIN DECLAREdis DOUBLE ; SET dis = ACOS(SIN((Lat1 * 3.1415) / 180) * SIN((Lat2 * 3.1415) / 180) + COS((Lat1 * 3.1415) / 180) * COS((Lat2 * 3.1415) / 180) * COS( (Lon1 * 3.1415) / 180 - (Lon2 * 3.1415) / 180) ) * 6370996.81;RETURN dis ;END
问题解答
回答1:我的思路是:获取目标点坐标->以一定范围r来查看地铁表中哪些地铁在r中,如果有,进行比较距离,如果没有增大r,重复直到r距离超过最大范围->结束。
我觉得效率的关键在于计算、比较距离这块。
回答2:我觉得这种不应该用SQL去实现。
我去做的话:
获取小区信息,获取属于哪座城市。
用SQL把当前城市地铁数据搜出来。
然后可以用各种算法(或规则,例如你上面的方法)计算最近地铁。
SQL应该是用来存储和获取数据的,不应该承载太多逻辑功能
相关文章:
1. javascript - jQuery post()方法,里面的请求串可以转换为GBK编码么?可以的话怎样转换?2. python3.x - python 中的maketrans在utf-8文件中该怎么使用3. javascript - 一排三个框,各个框的间距是15px,距离外面的白框间距也是15px,这个css怎么写?4. css - ul ol前边的标记如何调整样式呢5. html5 - vue-cli 装好了 新建项目的好了,找不到项目是怎么回事?6. javascript - nodejs调用qiniu的第三方资源抓取,返回401 bad token,为什么7. mysql - C#连接数据库时一直这一句出问题int i = cmd.ExecuteNonQuery();8. django - python 2层文件夹导入9. python - 用urllib抓取网页上的下载链接,目标文件是xls形式,但发现抓下来的xls是空表,里面只有一句报错信息,求帮助。10. javascript - vue 手机端项目在进入主页后 在进入子页面,直接按返回出现空白情况

网公网安备