1、前言php
以前一篇寫過 php根據IP獲取IP所在城市 ,可是還想再精確一點,獲取這個IP所在的經緯度信息,該怎麼辦呢?html
百度地圖爲我提供了一種解決方案(固然還有其餘的解決方案)。web
先總的來講一下,想使用百度地圖的接口,除了你要寫一些php(其餘代碼固然也能實現,本文寫的是php實現)代碼以外,惟一須要的就是申請一個百度地圖的 密鑰(免費申請,過程簡單)。有了這個密鑰,就至關於百度給你了一個訪問百度地圖api的通行證了。json
百度地圖的接口也分不少種,個人需求是:打開一個php頁面就獲取IP以及經緯度。api
2、具體過程:post
我會從頭至尾,一步一步寫出開發的過程,好了擼開袖子開幹吧:spa
1.申請密鑰(密鑰和語言無關):code
先訪問接口文檔 高精度IP定位API·Web服務API ,這個頁面有個「產品介紹」小節,裏面有個「申請密鑰」的超連接:htm
單擊它,跳轉到申請蜜鑰的頁面:blog
而後單擊「建立應用」,到建立頁面:
而後填寫一個自定義的名稱、寫一個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; }
訪問效果: