条件:
经纬度的值;要求:
根据条件经纬度的值 查出数据库中其范围内的所有值(数据库中某表中有经纬度的字段)
在Oracle中有空间函数relate  不过在Mysql中貌似不行吶请问各位有什么好的思路,谢谢各位。

解决方案 »

  1.   

    select * from activity where sqrt(   
       (   
        ((113.914619-alon)*PI()*12656*cos(((22.50128+alat)/2)*PI()/180)/180)   
        *   
        ((113.914619-alon)*PI()*12656*cos (((22.50128+alat)/2)*PI()/180)/180)   
      )   
      +   
       (   
        ((22.50128-alat)*PI()*12656/180)   
         *   
        ((22.50128-alat)*PI()*12656/180)   
        )   
    )<2  ;
    自己写好了,自己回答关闭了。
      

  2.   

    暂时还是不关闭了,如果还有更好的办法,请各位大大写下:
    指定一个经纬度,给定一个范围值(单位:千米),查出在经纬度周围这个范围内的数据。 
    比如:经度:113.914619 纬度:22.50128 范围:2km 
    alon为数据表经度字段 alat为数据表纬度字段
      

  3.   

    这种问题只需要查在它附近正方形里点的就行了。使用半径2KM的圆太费力。
    还有一种geohash,你可以google一下。它虽然有边界问题,但速度快得没话说。