php 经纬度 距离排序,php mysql 根据经纬度计算距离和排序
#1.兩點距離(1.4142135623730951)
select st_distance(point(0,0),point(1,1));
select st_distance(point (120.10591, 30.30163),point(120.13026,30.25961)) as distance HAVING distance>0 ORDER BY distance;
mysql 5.6 添加
#2.兩點球面距離(157249.0357231545m)
select st_distance_sphere(point(0,0),point(1,1)) as distance HAVING distance>0 ORDER BY distance;
select st_distance_sphere(point (120.10591, 30.30163),point(120.13026,30.25961)) as distance HAVING distance>0 ORDER BY distance;
This function was added in MySQL 5.7.6.
第一個函數是計算平面坐標系下,兩點的距離,就是
如果用于計算地球兩點的距離,帶入的參數是角度(經緯度),則計算的單位也是相差的角度,用此角度計算距離不準。緯度距離約111km每度,經度距離在赤道平面上是111km每度,隨緯度的升高逐漸降低為0。
第二個函數是計算球面距離的公式,傳入的參數是經緯度(經度-180~180,緯度-90~90),返回的值以m為單位的距離。
如果mysql版本不支持上述函數怎么辦?自己實現嘍!下面是我自己寫的球面距離函數
delimiter //
drop function if exists Spherical_Distance;
create function Spherical_Distance(jin1 double,wei1 double,jin2 double,wei2 double) returns double
NO SQL
BEGIN
declare j1 double;
declare w1 double;
declare j2 double;
declare w2 double;
declare R double;
set j1 = jin1*PI()/;
set w1 = wei1*PI()/;
set j2 = jin2*PI()/;
set w2 = wei2*PI()/;
set R = ;
return R*acos(cos(w1)*cos(w2)*cos(j1-j2)+sin(w1)*sin(w2));
END
//
delimiter ;
調用方式
select Spherical_Distance(120.10591,30.30163,120.13026,30.25961);
計算出的值和st_distance_sphere函數計算結果相差不大。
另外的求經緯度距離方法:
$lat = trim($_POST['lat']);
$lng = trim($_POST['lng']);
$distance = "
ROUND(
6378.138 * * ASIN(
SQRT(
POW(
SIN(
(
'$lat' * PI() / - lat * PI() /
) /
),
) + COS(40.0497810000 * PI() / ) * COS(lat * PI() / ) * POW(
SIN(
(
'$lng' * PI() / - lng * PI() /
) /
),
)
)
) * ) AS distance ";
// 內容
$sql = <<
select id,title as shop_name,create_at,master_title,lng,lat,reg_address,province,city,area,address,start_at,end_at,phone,business_name,business_phone,pics,club_id,{$distance}
from jiazhen_shop_info as jsi
where = order by distance ASC,id desc
doc;
PHP,Mysql根據經緯度計算距離并排序
網上給出的計算公式是這樣的: Lng1表示A點緯度和經度,Lat2 Lng2 表示B點緯度和經度 a = Lat1 – Lat2為兩點緯度之差 b = Lng1 -Lng2 為兩點經度之差 6378. ...
MySQL創建根據經緯度計算距離的函數
按照經緯度計算距離 日常開發中,特別是做微信項目時,經常會遇到根據用戶地理位置來展示附近商家的功能,通常解決這種問題的思路是,后臺設置商家的經緯度,然后再根據前臺傳的經緯度進行計算,具體經緯度轉換以及 ...
iOS根據2個經緯度計算距離
#pragma mark - calculate distance 根據2個經緯度計算距離 #define PI 3.14159265358979323 +(double) CalculationDi ...
java工具類(六)根據經緯度計算距離
Java實現根據經緯度計算距離 在項目開發過程中,需要根據兩地經緯度坐標計算兩地間距離,所用的工具類如下: Demo1: public static double getDistatce(double ...
python的N個小功能(文本字段對應數值,經緯度計算距離,兩個時間點計算時間間隔)
案例1 >>> import pandas as pd >>> df=pd.DataFrame({'A':[1,2,3],'B':[1,2,3],'C':[1,2, ...
php有經緯度計算距離
/** *??@desc?根據兩點間的經緯度計算距離 *??@param?float?$lat?緯度值 *??@param?float?$lng?經度值 */ ?function?getDistanc ...
PHP根據兩點間的經緯度計算距離,php兩點經緯度計算(轉)
這是一個不錯的示例,直接貼代碼,首先要知道緯度值.經度值 /** * @desc 根據兩點間的經緯度計算距離 * @param float $lat 緯度值 * @param float $lng 經 ...
PHP根據兩點間的經緯度計算距離
/** * 說明: 根據兩點間的經緯度計算距離 * @param float $lat 緯度值 * @param float $lng 經度值 */ function getDistance($lat ...
cesium根據經緯度計算距離
var startLatitude?= 36;var startLongitude?= 120; var?endLatitude=34; var?endLongitude=121; var start ...
隨機推薦
MariaDB 主從復制的配置
一.安裝MariaDB 安裝過程省略. 二.主從配置 環境 ? ? Master/Slave ? ? 系統 IP 數據庫版本 Master ? ? CentOS6.7 ? ? ? ? 10.10.3. ...
weui 問題
1.阻止checkbox 被 checked 方法1: $('.weui-check').on('click', function(e){ $(this).attr('disabled', true) ...
使用Linux系統中的SSH服務
使用Linux系統中的SSH服務 1.SSH服務應用場景 ① 可以實現對文件的上傳與下載 ② 實現遠程管理Linux 2.安裝SSH服務器 服 務:sshd 位 置:光盤2 軟 件:openssh-s ...
javascript 路線整理
前端開發很重要,編寫腳本也不容易. 總結我以前的前端學習經歷,基本是一團亂麻:css+javascript是在大三自學的,當時自己做課程設計,逼著自己在一個月之內,寫了一個半成品的j2ee網站.當時, ...
(轉)MySQL join語法解析與性能分析
文章轉載的:http://www.cnblogs.com/BeginMan/p/3754322.html 一.join語法概述 join用于多表中字段之間的聯系,語法如下: ... FROM tabl ...
maven多模塊依賴源碼調試
Maven多模塊項目中,通常存在摸個模塊同時依賴其他多個基礎模塊的情況.在eclipse中使用run-jetty-run插件調試時,常常會出現找不到被依賴模塊對應源碼的錯誤提示.舉個例子,模塊A同時依 ...
apiCloud 雙擊事件
apiCloud 雙擊事件只能使用純js去寫 var app = new Vue({ el: "#app", data: function() { return { token: ...
javamail模擬郵箱功能--郵件回復-中級實戰篇【郵件回復方法】(javamail API電子郵件實例)
引言: JavaMai下載地址l jar包:http://java.sun.com/products/javamail/downloads/index.html 此篇是緊隨上篇文章而封裝出來的,閱讀本 ...
如何修改織夢dedecms文章標題的最大長度
織夢dedecms默認的文章標題的最大長度為60字節,如果文章標題超過60字節將會自動截斷,導致標題顯示不全,這并非是我們所希望的.那么如何將標題長度改成我們想要的?只需簡單兩步即可解決問題. 1.進 ...
總結
以上是生活随笔為你收集整理的php 经纬度 距离排序,php mysql 根据经纬度计算距离和排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab第二章选择题填空题,matl
- 下一篇: vba单元格批量赋值,EXCEL——VB