php根據IP獲取經緯度信息--百度地圖篇


一、前言

之前一篇寫過 php根據IP獲取IP所在城市  ,但是還想再精確一點,獲取這個IP所在的經緯度信息,該怎么辦呢?

百度地圖為我提供了一種解決方案(當然還有其他的解決方案)。

先總的來說一下,想使用百度地圖的接口,除了你要寫一些php(其他代碼當然也能實現,本文寫的是php實現)代碼之外,唯一需要的就是申請一個百度地圖的 密鑰(免費申請,過程簡單)。有了這個密鑰,就相當於百度給你了一個訪問百度地圖api的通行證了。

百度地圖的接口也分很多種,我的需求是:打開一個php頁面就獲取IP以及經緯度。

二、具體過程:

我會從頭到尾,一步一步寫出開發的過程,好了擼開袖子開干吧:

1.申請密鑰(密鑰和語言無關):

先訪問接口文檔 高精度IP定位API·

然后填寫一個自定義的名稱、寫一個IP白名單(根據自己需求,可選),然后提交。

TIP:如果是第一次申請的話,百度會發手機驗證碼進行驗證.

2.擼代碼

<?php
header("Content-type: text/html; charset=utf-8"); 
?>
<?php

$user_ip= $_SERVER["REMOTE_ADDR"];//獲取客戶端IP 

get_lat_and_lng_ByIP($user_ip);

//根據IP獲取經緯度
function get_lat_and_lng_ByIP($ip)
{
	if(empty($ip))
	{
		 return 'IP不能為空'; 
	}
	 $content = file_get_contents("http://api.map.baidu.com/highacciploc/v1?qcip=$ip&qterm=pc&ak=請輸入您的AK&coord=bd09ll");  
	 $json = json_decode($content);
	 
	 $lng=$json->{'content'}->{'location'}->{'lng'};//提取經度數據
      
         $lat=$json->{'content'}->{'location'}->{'lat'};//提取緯度數據 

     echo "當前經度:".$lng;
     echo "<br/>";
    
     echo "當前緯度:".$lat;
}

 

訪問效果:

這個接口電腦端訪問的定位還是挺准的;但是手機端訪問就不准會差很多,最多只能到城市級別的精確度,請注意,至於原因本人也很困惑,有知道的大俠希望能夠指點一下~

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM