> 馆藏中心

SQL 经纬度问题

来源:cnblogs 编辑:张华

楼上回答的2113不详细,代码如下,正巧我做到5261相关项目,虽然回答有点4102晚,但是为了帮助后续1653搜索的人。。。$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为你数据库存的商家经纬度的字段名,其余的为注释,mysql两点间距,你也自己2113弄成函数5261公式如下,单位米:第一点4102经纬度:lng1 lat1第二点1653经纬度:lng2 lat2round(6378.138*2*asin(sqrt(pow(sin((lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)*pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000)例如:SELECT store_id,lng,lat,ROUND(6378.138*2*ASIN(SQRT(POW(SIN((22.299439*PI()/180-lat*PI()/180)/2),2)+COS(22.299439*PI()/180)*COS(lat*PI()/180)*POW(SIN((114.173881*PI()/180-lng*PI()/180)/2),2)))*1000)AS juliFROM store_infoORDER BY juli DESCLIMIT 316本回答被提问者和网友采纳www.179s.com防采集请勿采集本网。

第一个问题 行政区划肯定是region,这个但凡做图的都会有这个函数(点是否在region中的函数),而诸如在线地图这些,这个是透明的,可以返回行政区划;第二个问题 地图也会带这个函数,如果自己实现,通常用圆近似地球略扁的椭圆来计算,也就是求了一段弧长,当然距离很短比较粗糙两点坐标求距离看情况也可以接受。收获园豆:90

============================================

在sql中存图片,一般是存储图片的指定的编号,编号一般是由两部分组成,一部分是图片名,另一部分是就是唯一索引号,这样做是为了避免图片的主键的重复,图片就放在指定的文件加中,每次显示图片时,先找图片存放文件夹路径,再找数据库中的文件

有具体的代码可以参考一下吗?

中间的插入过程没必要ORDER BY,这句没有实际意义。

============================================

在sql中存图片,一般是存储图片的指定的编号,编号一般是由两部分组成,一部分是图片名,另一部分是就是唯一索引号,这样做是为了避免图片的主键的重复,图片就放在指定的文件加中,每次显示图片时,先找图片存放文件夹路径,再找数据库中的文件

@码农工具人: 刚好有记录过~~https://www.cnblogs.com/huapiaoshuiliuxi/p/4562650.html明显网上有很多,这是抄写测试过的一份;Region,这个函数的实现比较普遍的存在各种类库中,如Gdi+,this.Region.IsVisible(this.Location);谷歌地图api,自己看自己学不难,补充一下百度地图api也可以,优先考虑用谷歌的收获园豆:5为啥不用带经纬度的数据库,自动支持经纬度查询,无非就是经度与维度,根据距离查询收获园豆:5Redis里的测距不好用??

分组,使用Case When 语句将特定数据横向展开,具体语句如下 Select street, 1号点=Max(Case When Name='1号点' Then 经纬度 Else null End), 2号点=Max(Case When Name='2号点' Then 经纬度 Else null End), 3号点=Max(Case When Name='3号点'

给大家一条语句能执行的地2113方 SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY id LIMIT 20 数据库中查找5261 距离 37,-122 距离 小于25公里的 经纬度以前看GOOGLE 地图4102 API 开发时候的一篇文章1653里面有 给分 给分追问大神啊,我要精确到50米以内啊,不过分还是给你好了。参考资料:https://developers.google.com/maps/articles/phpsqlsearch?hl=zh-CN,你可以2113在系统中创建一个二维数组5261,把每个坐标作为一个二维数组存储4102起来,写一个方法,输入16532个坐标的时候,自动计算两个坐标之间的距离。比如我的坐标是: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);//返回两者的平方和的开根}追问public double getDistance(double longt1, double lat1, double longt2,double lat2) {private final double PI = 3.14159265358979323; //圆周率private final double R = 6371229; //地球的半径double x,y,distance;x=(longt2-longt1)*PI*R*Math.cos( ((lat1+lat2)/2) *PI/180)/180;y=(lat2-lat1)*PI*R/180;distance=Math.hypot(x,y);return distance;}追答你写的基本上没什么问题,但是PI和R的修饰符去掉private,因为定义在方法内部,它们的作用于只限制于方法内部,没必要加上private等范围修饰符,而且编译也没法通过。其他的你注意你的计算公式吧,我看你好像用到了弧度计算公式,这个我不太记得了,你可以搜索一下,带入需要的值就行了。我给你一个建议:你把两点放到一个切面上,计算出两点的直线距离,然后计算角度,最后在计算弧度,这样的结果更精确。没法给你具体的3D效果图。可以自己画图研究研究。。。好吧,如果你是需要这个的话,下面的 链接可以帮助你;http://blog.sina.com.cn/s/blog_73ca77220100qhn3.html,这单用SQL语句是办不到的吧应该先把坐标从数据库中取出,再用三角函数计算。或者在存入数据库之前,先把距离计算出来,一并存入,这不是单独一个SQL语句能解决的问题更多追问追答追问那我该怎么做啊?追答写在你的程序里 你开发用的什么语言 比如java 将从数据库获得的2点坐标传到客户端 然后在代码里计算就好了 单独用sql语句不行追问我之前是这么做的,功能都能实现 但是经理说这样效率低,要用sql内容来自www.179s.com请勿采集。

本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。本文《SQL 经纬度问题》转载自cnblogs,版权归原作者所有,若侵权请联系:E-MAIL:513175919@qq.com
违法违规信息请立即联系本网可获得现金奖励,TEL:1-8-2-1-0-2-3-3-3-8-1(电话仅供违法违规信息举报,侵权类信息请EMAIL。)

www.179s.com false 互联网 http://www.179s.com/jsblogcnk/po/pokpap.html report 4041 第一个问题 行政区划肯定是region,这个但凡做图的都会有这个函数(点是否在region中的函数),而诸如在线地图这些,这个是透明的,可以返回行政区划;第二个问题 地图也会带这个函数,如果自己实现,通常用圆近似地球略扁的椭圆来计算,也就是求了一段弧长,当然距离很短比较粗糙两点坐标求距离看情况也可以接受。收获园豆:90============================================有具体的代码可以参考一下吗?=========================

热门图片

经济金融企业管理法律法规社会民生科学教育降生活体育运动文化艺术电子数码电脑网络娱乐休闲行政地区心理分析医疗卫生