給大家一條語句能執(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)前所在地點經(jīng)度
latitude DECIMAL(20,6) -- 當(dāng)前所在地點緯度
)
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ù)值正確;
樓主 請再講清楚點好吧?
GlangXMeter GlatYMeter, PxMeter PyMeter 各確定一個點 怎么個確定法?
不大明白
快下班了 才看到你的補(bǔ)充
來不及寫語句了 思路說下吧 就像高中學(xué)的
點1(x1,y1) 點2(x2,y2)
兩點距離:(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) 再平方根就可以了
數(shù)據(jù)庫中應(yīng)該有平方,平方根的函數(shù)
很簡單的 只是用在數(shù)據(jù)庫中了而已、