你需要知道你已經(jīng)得到的經(jīng)緯度是谷歌的還是百度的。
專(zhuān)注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)潛江免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
我之前做過(guò)一個(gè)團(tuán)購(gòu)的搜附近的美食計(jì)算距離,數(shù)據(jù)庫(kù)存著每個(gè)店鋪的經(jīng)緯度,APP會(huì)獲取用戶(hù)的經(jīng)緯度來(lái)進(jìn)行比較。
我做的很久了,代碼找不到了。不過(guò)我的代碼是在網(wǎng)上搜得,代碼大概有地球半徑什么的數(shù)學(xué)運(yùn)算,代碼也沒(méi)多少。就是計(jì)算復(fù)雜。
你百度搜吧。我忘記在哪找到的了
這種功能,只能調(diào)用第三方的接口了,百度地圖API就有這個(gè)接口addressComponents,逆地址解析,參考方法如下:
GeocoderSearchResponse
statusOK/status
result
location
lat38.990998/lat
lng103.645966/lng
/location
formatted_address甘肅省武威市民勤縣/formatted_address
business/
addressComponent
streetNumber/
street/
district民勤縣/district
city武威市/city
province甘肅省/province
/addressComponent
cityCode118/cityCode
/result
/GeocoderSearchResponse
地理(Geography),是世界或某一地區(qū)的自然環(huán)境(山川、氣候等)及社會(huì)要素的統(tǒng)稱(chēng)。“地理”一詞最早見(jiàn)于中國(guó)《易經(jīng)》。古代的地理學(xué)主要探索關(guān)于地球形狀、大小有關(guān)的測(cè)量方法,或?qū)σ阎牡貐^(qū)和國(guó)家進(jìn)行描述。
地理學(xué)是研究地球表面的地理環(huán)境中各種自然現(xiàn)象和人文現(xiàn)象,以及它們之間相互關(guān)系的學(xué)科。地理是一門(mén)綜合性的基礎(chǔ)學(xué)科。
//php 計(jì)算地圖上兩個(gè)坐標(biāo)之間的距離
define('EARTH_RADIUS', 6378.137);//地球半徑,假設(shè)地球是規(guī)則的球體
define('PI', 3.1415926);
/**
* 計(jì)算兩組經(jīng)緯度坐標(biāo) 之間的距離
* params :lat1 緯度1; lng1 經(jīng)度1; lat2 緯度2; lng2 經(jīng)度2; len_type (1:m or 2:km);
* return m or km
*/
function GetDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2)
{
$radLat1 = $lat1 * PI ()/ 180.0; //PI()圓周率
$radLat2 = $lat2 * PI() / 180.0;
$a = $radLat1 - $radLat2;
$b = ($lng1 * PI() / 180.0) - ($lng2 * PI() / 180.0);
$s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
$s = $s * EARTH_RADIUS;
$s = round($s * 1000);
if ($len_type -- 1)
{
$s /= 1000;
}
return round($s, $decimal);
}
echo GetDistance(39.908156,116.4767, 39.908452,116.450479, 1);//輸出距離/米
!DOCTYPE html
html
body
p id="demo"點(diǎn)擊這個(gè)按鈕,獲得您的坐標(biāo):/p
button onclick="getLocation()"試一下/button
script
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"br /Longitude: " + position.coords.longitude;
}
/script
/body
/html
1、檢測(cè)是否支持地理定位
2、如果支持,則運(yùn)行 getCurrentPosition() 方法。如果不支持,則向用戶(hù)顯示一段消息。
3、如果getCurrentPosition()運(yùn)行成功,則向參數(shù)showPosition中規(guī)定的函數(shù)返回一個(gè)coordinates對(duì)象
4、showPosition() 函數(shù)獲得并顯示經(jīng)度和緯度