`
xigua366
  • 浏览: 103721 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MYSQL创建一个function用来计算经纬度距离

 
阅读更多

店铺表有一个经度字段,一个纬度字段,用来存储所在位置。先需要根据当前位置的经度与纬度来获取附近10公里内的店铺。故需要将计算距离的逻辑封装成一个function。

函数定义及参数说明如下:

-- curLat 当前纬度
-- curLon 当前经度


-- shopLat 店铺纬度
-- shopLon 店铺经度

CREATE FUNCTION getDistance(curLat DOUBLE, curLon DOUBLE, shopLat DOUBLE, shopLon DOUBLE)
RETURNS DOUBLE
BEGIN
  DECLARE  dis DOUBLE;
	set dis = ACOS(SIN((curLat * 3.1415) / 180 ) * SIN((shopLat * 3.1415) / 180 ) + COS((curLat * 3.1415) / 180 ) * COS((shopLat * 3.1415) / 180 ) * COS((curLon * 3.1415) / 180 - (shopLon * 3.1415) / 180 ) ) * 6380 ;
	RETURN dis;
END;

 

0
3
分享到:
评论
1 楼 戢_时光 2015-09-11  

mark 并传递/

相关推荐

    mysql函数-根据经纬度坐标计算距离

    在MySQL中,我们可以创建一个用户自定义函数(UDF)来实现这个计算。以下是一个示例的SQL函数: ```sql DELIMITER // CREATE FUNCTION haversine(lat1 DECIMAL(10,8), lng1 DECIMAL(11,8), lat2 DECIMAL(10,8), lng...

    利用java、js或mysql计算高德地图中两坐标之间的距离

    首先,你需要创建一个具有GIS类型(如`POINT`)的列,然后可以使用`ST_Distance_Sphere`函数来计算距离。以下是一个例子: ```sql CREATE TABLE locations ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50...

    jquery/php获取经纬度

    这个PHP脚本首先建立到MySQL数据库的连接,然后准备一个SQL语句用于插入经纬度数据,接着执行该语句并将返回的信息反馈给前端。 总结来说,通过jQuery的Geolocation API获取用户设备的经纬度,然后使用Ajax将这些...

    Google Maps API in PHP+MYSQL

    例如,你可以创建一个表来存储地点信息,包括名称、地址、经纬度等字段。通过PHP连接到数据库,执行查询并返回结果,然后在JavaScript中使用这些数据创建地图元素。 总的来说,Google Maps API与PHP和MySQL的结合为...

    (013)PHP 技巧 * 附近的人功能实现

    这个函数首先构建了计算距离的SQL片段,然后在查询中使用它来过滤出符合条件的用户,并按距离排序。 ### 性能优化与注意事项 1. **索引优化**:为了提高查询效率,可以在lat和lng字段上创建复合索引,以加速距离...

    google map v3 demo 数据库动态案例 php的

    首先,我们需要创建一个数据库和数据表来存储地图上的标记信息。在MySQL中,可以执行以下SQL语句: 1. 创建数据库: ```sql CREATE DATABASE maps; ``` 2. 创建名为`markers`的数据表: ```sql CREATE TABLE `...

    百度地图开发java源码-monitor:地理信息系统监视器

    一个新手入门级别的java web应用 非常简陋,至于有多简陋,如果你不小心看了,还请不要骂我 框架 前端没有用框架,采取最简单的Jquery+ajax方式来进行交互 UI库使用的是Bootstrap 后端服务器端使用Java开发 地图 ...

Global site tag (gtag.js) - Google Analytics