公司新闻

将想法与观点,与您一起分享~

开发案例插画 插画-树 插画-树

重庆网站建设mysql计算经纬度距离排序方法

润雪科技 时间:2021-03-15 11:08 浏览量:2481

我们最近在开发一个交友聊天类的app,需要计算用户与用户之间的距离,然后通过距离来排序,距离排序还是比较简单的,因为现在可以直接使用mysql来完成了。


在几年前,我们也遇到过类似的需求,那时候我们是用的百度云的lbs来计算距离,所有的数据、经纬度都要传到百度的lbs云上,读取的时候也需要读取百度的,然后在到字的系统里面来补充剩余的字段信息,相比起来就麻烦多了,下面就看重庆网站建设公司如何直接在mysql里面计算距离。


重庆网站建设mysql计算经纬度距离排序方法


1、数据表字段类型为 point,可以直接存经纬度数据,数据表如下:


2、sql如何写point插入语句:

低于mysql8写法:

INSERT INTO 表名 VALUES ( 其它字段,其它字段,GeomFromText('POINT(123.462202 41.804471)'),其它字段,其它字段)

mysql8版本写法:

INSERT INTO 表名 VALUES ( 其它字段,其它字段,ST_GeomFromText('POINT(123.462202 41.804471)'),其它字段,其它字段)

区别在余函数加了个ST_,因为mysql8这个函数被重命名了


3、point字段更新语句

更新语句跟插入语句一样的,就比较类似了

UPDATE 表名 SET 字段名=GeomFromText('POINT(116.427957 40.047081)') WHERE id = 1

mysql8版本写法:

UPDATE 表名 SET 字段名=ST_GeomFromText('POINT(116.427957 40.047081)') WHERE id = 1


4、如何通过mysql直接计算距离进行排序

变量如下:

A=我的所在的经纬度,如106.565758,29.539989

B=计算的距离,单位公里,如计算10公里内的数据那么B就等于10


select 其它字段,st_distance(point(A),表中的经纬度字段名)*100 as distance from 表名 where st_distance(point(A),表中的经纬度字段名)*100 < B order by distance asc 




来源声明:本文【重庆网站建设mysql计算经纬度距离排序方法】由润雪科技编辑原创或采编整理,如需转载请注明来自润雪科技。以上内容部分(包含图片、文字)来源于网络,如有侵权,请及时与本站联系。

TAG标签:网站开发 网站设计

相关文章
  • 前端react项目使用prettier来格式化(美化)各种代码

    前端react项目使用prettier来格式化(美化)各种代码

    前端react项目使用prettier来格式化(美化)各种代码,包括javascript、php、java、typesctip、css、less、json、sql等都可以美化

  • php用Mpdf将html文档转为pdf

    php用Mpdf将html文档转为pdf

    php将html文档转成pdf保存到服务器

  • php用libreoffice将ppt转为pdf

    php用libreoffice将ppt转为pdf

    1、先安装libreoffice:yum install libreoffice;2、由于ppt中都是中文,执行命令转ppt的时候中文可能乱码,我的解决办法是在liunx系统中安装中文字体,把windows的字体直接全部拷贝到liunx服务器中,直接把所有字体都上传到服务器

  • php利用imagick扩展将pdf导出成图片

    php利用imagick扩展将pdf导出成图片

    需要先安装php的imagick扩展,两种方式,第一种是使用php,第二种是使用命令执行;随便用哪种执行需要修改nginx配置文件增加:proxy_read_timeout 600s;使其链接60秒后不断,不然pdf一旦过大60秒无法完成工作就断开链接了

  • apache配置转发,如使用workerman 或 webman等框架的时候配合apache

    apache配置转发,如使用workerman 或 webman等框架的时候配合apache

    在使用workerman 或 webman等框架开发应用的时候需要配合nginx 或 apache进行转发,官网的文档只有写nginx,下面的apache的配置,前提是apche需要开启这两个模块

  • 一个class类几个函数即可调用各种微信支付场景

    一个class类几个函数即可调用各种微信支付场景

    真在的只需要一个class类文件几个函数就可以调用微信的所有支付,不管是微信公众号、h5、app、小程序支付,加密方式都是一样的,对比下微信的支付文档,只需要修改第一步传入的参数不同,下单地址不同,加密方式都是一样的,所以只要看懂下面的第一个函数,将搞定微信的任何支付。

如果您感觉我们的案例非常不错,请与我们取得联系~
立即咨询
获取方案及报价 023-6288-5285
网站建设流程 需求沟通
网站建设流程 签订合同
网站建设流程 项目开发
网站建设流程 上线/运营维护

张经理

186-9655-6121

邹经理

188-1980-6503

润雪科技二维码
电话咨询 在线咨询 微信咨询