日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php 经纬度 距离排序,php mysql 根据经纬度计算距离和排序

發布時間:2024/9/15 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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&comma;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工具類&lpar;六&rpar;根據經緯度計算距離

Java實現根據經緯度計算距離 在項目開發過程中,需要根據兩地經緯度坐標計算兩地間距離,所用的工具類如下: Demo1: public static double getDistatce(double ...

python的N個小功能&lpar;文本字段對應數值&comma;經緯度計算距離&comma;兩個時間點計算時間間隔&rpar;

案例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兩點經緯度計算&lpar;轉&rpar;

這是一個不錯的示例,直接貼代碼,首先要知道緯度值.經度值 /** * @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 根据经纬度计算距离和排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。