1. 程式人生 > >百度地圖 sn 計算方法 阿星小棧

百度地圖 sn 計算方法 阿星小棧

<?php

//API控制檯申請得到的ak(此處ak值僅供驗證參考使用)
$ak = 'yourak';

//應用型別為for server, 請求校驗方式為sn校驗方式時,系統會自動生成sk,可以在應用配置-設定中選擇Security Key顯示進行檢視(此處sk值僅供驗證參考使用)
$sk = 'yoursk';

//以Geocoding服務為例,地理編碼的請求url,引數待填
$url = "http://api.map.baidu.com/geocoder/v2/?address=%s&output=%s&ak=%s&sn=%s";

//get請求uri字首
$uri = '/geocoder/v2/';

//地理編碼的請求中address引數 $address = '百度大廈'; //地理編碼的請求output引數 $output = 'json'; //構造請求串陣列 $querystring_arrays = array ( 'address' => $address, 'output' => $output, 'ak' => $ak ); //呼叫sn計算函式,預設get請求 $sn = caculateAKSN($ak, $sk, $uri, $querystring_arrays); //請求引數中有中文、特殊字元等需要進行urlencode,確保請求串與sn對應
$target = sprintf($url, urlencode($address), $output, $ak, $sn); //輸出計算得到的sn echo "sn: $sn \n"; //輸出完整請求的url(僅供參考驗證,故不能正常訪問服務) echo "url: $target \n"; ?> </syntaxhighlight> <div class="separate-title">其中,caculateAKSN的定義如下:</div> <syntaxhighlight lang="null"> function caculateAKSN($ak
, $sk, $url, $querystring_arrays, $method = 'GET') { if ($method === 'POST'){ ksort($querystring_arrays); } $querystring = http_build_query($querystring_arrays); return md5(urlencode($url.'?'.$querystring.$sk)); }

詳情關注官網http://lbsyun.baidu.com/index.php?title=lbscloud/api/appendix#service-page-anchor2