数据库里的经纬度想和当前定位地点的经纬度进行计算,差值最小的数据排在前面,也就是按距离排序,这个函数已经有了,就是不知道怎么结合mysql查询

/**

* 计算两个坐标之间的距离(米)

* @param float $fP1Lat 起点(纬度)

* @param float $fP1Lon 起点(经度)

* @param float $fP2Lat 终点(纬度)

* @param float $fP2Lon 终点(经度)

* @return int

*/

function distanceBetween($fP1Lat, $fP1Lon, $fP2Lat, $fP2Lon){

…..

return $distance;

}

解决方案

60

把这个函数改造一下就行了,在mysql中写一个函数,直接调用。

本人这里有 sql server版本的,你改成mysql的就可以了,提供给你参考:

create FUNCTION dbo.fnGetDistance

(

@LatBegin REAL,

@LngBegin REAL,

@LatEnd REAL,

@LngEnd REAL

)

RETURNS FLOAT

AS

BEGIN

DECLARE @Distance REAL

DECLARE @EARTH_RADIUS REAL

SET @EARTH_RADIUS = 6378.137

DECLARE @RadLatBegin REAL, @RadLatEnd REAL, @RadLatDiff REAL, @RadLngDiff REAL

SET @RadLatBegin = @LatBegin * PI() / 180.0

SET @RadLatEnd = @LatEnd * PI() / 180.0

SET @RadLatDiff = @RadLatBegin - @RadLatEnd

SET @RadLngDiff = @LngBegin * PI() / 180.0 - @LngEnd * PI() / 180.0

SET @Distance = 2 * ASIN(SQRT(POWER(Sin(@RadLatDiff / 2), 2) + COS(@RadLatBegin) * COS(@RadLatEnd) * POWER(SIN(@RadLngDiff/2),2)))

SET @Distance = @Distance * @EARTH_RADIUS

RETURN @Distance

END

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么样能在mysql里结合php的函数!

PHP lareal_怎么样能在mysql里结合php的函数相关推荐

  1. mysql里的ibdata1文件

    mysql大多数磁盘空间被 InnoDB 的共享表空间 ibdata1 使用.而你已经启用了 innodb_file_per_table,所以问题是: ibdata1存了什么? 当你启用了innodb ...

  2. MySQL里的wait_timeout

    如果你没有修改过MySQL的配置,缺省情况下,wait_timeout的初始值是28800. wait_timeout过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能, ...

  3. MySql 里的IFNULL、NULLIF和ISNULL用法

    今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如e ...

  4. mysql 用户 类别_从mysql里读取用户类型

    ##1.后端1(从mysql里读取用户类型): from django import forms from django.forms import widgets from django.forms ...

  5. mysql not in 转化_[转]mysql里not in语句怎么写 | 学步园

    使用mysql中经常会遇到的问题,记录下来 转自: http://database.e800.com.cn/articles/2007/630/1183147360019880660_1.html s ...

  6. MySQL里的日期技巧

    [sql] MySQL里获取当前week.month.quarter的第一天/最后一天      当前week的第一天:  select date_sub(curdate(),INTERVAL WEE ...

  7. mysql里的各种锁

    本文来聊下Mysql里的各种锁 文章目录 加锁的目的是什么 锁是基于什么实现的 锁的分类 属性锁 粒度锁 状态锁 本文小结 加锁的目的是什么 在我们了解数据库锁之前,首先我们必须要明白加锁的目的是为了 ...

  8. php调用mysql中文变量_用php调用MySQL里的数据,为什么汉字都变成了问号?在线等...

    急啊!用php调用MySQL里的数据,为什么汉字都变成了问号?我使用的是windows+Apache+MySQL5.0+PHP5.0+phpmyadmin2.9.1建立的带有汉字的数据库在phpmya ...

  9. 为什么 mysql 里的 ibdata1 文件不断的增长?

    一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用.而你已经启用了innodb_file_per_table,所以问题是: ibdata1存了什么? 当你启用了inn ...

最新文章

  1. 在Rails中撤消脚手架
  2. 15.Three Sum
  3. memcached mysql 性能测试_memcached +mysql+php 测试例子
  4. 后台开发技术--接入层设计
  5. GraphPad Prism绘制时间轴图
  6. 安装SQL Server2008错误解决方案
  7. php服务docker化,docker化你的PHP应用环境Nginx PHP-FPM
  8. 中移4G模块-ML302-OpenCpu开发-(固件编译和烧录)
  9. MasterPages: Improved Version(翻译)
  10. tastypie使用cache对list data无效问题
  11. Latex 合并pdf文档
  12. 2、数字,字符串,列表,字典,集合
  13. mysql身份证校验码_通过SQL校验身份证号码是否正确
  14. 最近写的一个书店项目
  15. 华为 emui 刷机解锁及回锁教程
  16. 顺风车这么难搞,滴滴为何从不放弃?
  17. 科学家提出记忆形成新解 大脑玩的拼图游戏
  18. 稻盛和夫:中国企业如何在萧条中实现大飞跃
  19. Android学习笔记:实现app启动界面跳过倒计时功能
  20. Ray Tracing

热门文章

  1. C#通过对象属性名修改值
  2. MyEclipse提示Errors occurred during the build
  3. C# DDOS攻击代码
  4. C#刀那儿特更清晰讲述什么是事件?
  5. oracle的序列为什么会出错,Oracle系列:(24)序列
  6. Redis事务与MySQL事务的区别
  7. TreeMap1.8源码
  8. case when..then
  9. php通过mysqli链接mysql数据库
  10. Dangling Javadoc comment