日期:2014-05-18  浏览次数:20527 次

一个较难和算法问题. 已经一组经纬度数据(1W多条). 现在输入一个经纬度,找一个离此点最近的点
已经一组经纬度数据(1W多条).  
现在输入一个经纬度,找一个离此点最近的点
经度               纬度
112.92248     28.17778
112.92274     28.17356
112.92089     28.1767
112.90476     28.22937
112.93131     28.23108
112.92346     28.22899
112.92125     28.22906
112.91535     28.22881
112.90412     28.22702
112.90625     28.22825
112.91412     28.22786
112.91149     28.22641
112.9106     28.22407
112.90894     28.21994
112.91038     28.22209
112.91143     28.22254
112.91611     28.22273
112.9229     28.22221
112.92581     28.22132
112.92729     28.2212
112.9289     28.21983
112.94791     28.18694
112.94635     28.1873
112.94581     28.18741

当然一条条计算距离行...那得计算机1W多次....有没有好一点的算法做呢?



------解决方案--------------------
到112.95 28.18最近的

select top 1 * from tablename
order by SQUARE(经度-112.95)+SQUARE(纬度-28.18)


------解决方案--------------------
计算机多少次是数据库生产商要解决的啊,我们就一句sql语句查出来就可以了
------解决方案--------------------
关注一下