餐馆申请时候通过填写的地址取得经纬度存入数据库,下面是查询某个经纬度附近500米的
$user_lat='41.749034'//传过来的纬度
$user_lng='123.46017'//传过来的经度
$store_mod=db("store")//数据库
$storelist=$store_mod->query("SELECT
*,ROUND(6378.138*2*ASIN(SQRT(POW(SIN((".$user_lat."*PI()/180-【store_latitude】*PI()/180)/2),2)+COS(".$user_lat."*PI()/180)*COS(【store_latitude】*PI()/180)*POW(SIN((".$user_lng."*PI()/180-【store_longitude】*PI()/180)/2),2)))*1000)
AS distance FROM store HAVING 【搜索条件如 state=1】 distance<【周围距离多少米 如
500】 ORDER BY distance ASC")
var_dump($storelist)
【】sql语句中括号的store_latitude,store_longitude为你数据库存的商家经纬度的字段名,其余的为注释
你可以在系统中创建一个二维数组,把每个坐标作为一个二维数组存储起来,写一个方法,输入2个坐标的时候,自动计算两个坐标之间的距离。比如我的坐标是:2,3;你的坐标是4,6
那么定义一个方法:
public double getDistance(double x1,double y1,double x2,double y2){
double a = Math.abs(x1-x2)//绝对值
double b = Math.abs(y1-y2)//绝对值
return Math.hypot(a,b)//返回两者的平方和的开根
}
楼主 请再讲清楚点好吧?GlangXMeter GlatYMeter, PxMeter PyMeter 各确定一个点 怎么个确定法?
不大明白
快下班了 才看到你的补充
来不及写语句了 思路说下吧 就像高中学的
点1(x1,y1) 点2(x2,y2)
两点距离:(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) 再平方根就可以了
数据库中应该有平方,平方根的函数
很简单的 只是用在数据库中了而已、
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)