一、使用 IP 地址獲取發布者地址標注
在獲取發布者地址標注時,可以使用其 IP 地址進行定位。在 thinkphp 中,可以通過 getRequest() 方法獲取當前請求的 IP 地址,再利用第三方地理位置服務(如百度地圖 API)進行解析,獲取對應的地理位置信息。
代碼示例:
//?獲取當前請求的?IP?地址 $client_ip?=?request()->ip(); //?利用百度地圖?API?獲取地理位置信息 $url?=?"http://api.map.baidu.com/location/ip?ak=您的密鑰&ip=$client_ip&coor=bd09ll"; $result?=?file_get_contents($url); $location?=?json_decode($result,?true); $address?=?$location['content']['address'];
其中,$client_ip 變量存儲當前請求的 IP 地址,$url 變量存儲調用百度地圖 API 的 URL 地址,$result 變量存儲解析結果,$location 變量為解析結果的數組形式,$address 變量存儲最終獲取的地址標注信息。
立即學習“PHP免費學習筆記(深入)”;
二、利用瀏覽器定位獲取發布者地址標注
除了使用 IP 地址定位獲取位置標記,還可以利用瀏覽器定位來獲取位置標記。在 ThinkPHP 中,可以使用 JavaScript 獲取瀏覽器定位,再利用第三方地理位置服務(如騰訊地圖 API)進行解析,獲取對應的地址標注信息。
代碼示例:
//?頁面中引入?JavaScript?定位代碼 navigator.geolocation.getCurrentPosition(function(position)?{ ????//?獲取瀏覽器定位的經緯度 ????var?lat?=?position.coords.latitude; ????var?lng?=?position.coords.longitude; ????//?利用騰訊地圖?API?獲取地理位置信息 ????var?url?=?"https://apis.map.qq.com/ws/geocoder/v1/?location="?+?lat?+?","?+?lng?+?"&key=您的密鑰&get_poi=0"; ????$.ajax({ ????????url:?url, ????????dataType:?"jsonp", ????????success:?function(result)?{ ????????????//?解析結果,獲取地址標注信息 ????????????var?address?=?result.result.formatted_addresses.recommend; ????????} ????}) });
其中,navigator.geolocation.getCurrentPosition() 方法獲取瀏覽器定位,lat 和 lng 變量存儲獲取的經緯度信息,url 變量存儲調用騰訊地圖 API 的 URL 地址,success 參數內的代碼獲取解析結果,并獲取最終的地址標注信息。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END