給大家一條語句能執(zhí)行的地方
成都創(chuàng)新互聯(lián)是一家專業(yè)提供朝陽企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站制作、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為朝陽眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
SELECT id, ( 6371* acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance 25 ORDER BY id LIMIT 20 數(shù)據(jù)庫中查找 距離 37,-122 距離 小于25公里的 經(jīng)緯度
以前看GOOGLE 地圖 API 開發(fā)時候的一篇文章里面有 給分 給分
DROP FUNCTION IF EXISTS func_calcDistance ;
CREATE FUNCTION func_calcDistance(
origLng DECIMAL(20,6), -- 目的地經(jīng)度
origLat DECIMAL(20,6), -- 目的地緯度
longitude DECIMAL(20,6), -- 當(dāng)前所在地點(diǎn)經(jīng)度
latitude DECIMAL(20,6) -- 當(dāng)前所在地點(diǎn)緯度
)
RETURNS DOUBLE
BEGIN
DECLARE result DOUBLE DEFAULT 0;
SET result = round(6378.138*2*asin(sqrt(pow(sin(
(origLat*pi()/180-latitude*pi()/180)/2),2)+cos(origLat*pi()/180)*cos(latitude*pi()/180)*
pow(sin( (origLng*pi()/180-longitude*pi()/180)/2),2)))*1000);
RETURN result;
END ;
注:
網(wǎng)上有很多的方法,但是最終結(jié)果都有很大的差異,對于半徑取值(地球赤道半徑6378.137千米,極半徑6356.752千米,平均半徑約6371千米)根據(jù)自己需求進(jìn)行定義;計算結(jié)果應(yīng)與其他地圖軟件進(jìn)行對比,保證數(shù)值正確;
樓主 請再講清楚點(diǎn)好吧?
GlangXMeter GlatYMeter, PxMeter PyMeter 各確定一個點(diǎn) 怎么個確定法?
不大明白
快下班了 才看到你的補(bǔ)充
來不及寫語句了 思路說下吧 就像高中學(xué)的
點(diǎn)1(x1,y1) 點(diǎn)2(x2,y2)
兩點(diǎn)距離:(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) 再平方根就可以了
數(shù)據(jù)庫中應(yīng)該有平方,平方根的函數(shù)
很簡單的 只是用在數(shù)據(jù)庫中了而已、
當(dāng)前文章:mysql怎么計算距離 可以在mysql 進(jìn)行計算么
文章源于:http://chinadenli.net/article24/hjjsje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站營銷、App開發(fā)、網(wǎng)頁設(shè)計公司、全網(wǎng)營銷推廣、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)