1 申请百度账号
2 全球逆地理编码API文档
参考链接:
http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad
请求URL:
http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=35.658651,139.745415&output=json&pois=1&ak=您的ak
请求方式:GET
3 代码
//180602百度地图定位(根据经纬度返回城市名称)
public function getGetLocation($data){
global $_W;
$language = tools::getLanguageOrder();//获取语言 0:chinese 1:english 2 Malaysian
$ak='3avLm2YMGbTFW0yvOo0ZoTUWHpdSHHo0';
load()->model('cloud');
$latitude=$data['latitude'];
$longitude=$data['longitude'];
$arr=array($latitude,$longitude);
$location=implode(',',$arr);
$cityname=baidu_location($location,$ak);
if (is_error($cityname)) {
respon::custom(-1,'经纬度错误,定位失败!');
}
if($language==0){
$whereSql="WHERE `level`=:level AND `uniacid`=:uniacid AND `cantonname` LIKE '%$cityname%'";
$sql="SELECT cantonvalue,cantonname FROM".tablename("zgmart_areas");
}elseif($language==1){
$whereSql="WHERE `level`=:level AND `uniacid`=:uniacid AND `cantonname_en` LIKE '%$cityname%'";
$sql="SELECT cantonvalue,cantonname_en FROM".tablename("zgmart_areas");
}else{
$whereSql="WHERE `level`=:level AND `uniacid`=:uniacid AND `cantonname_ma` LIKE '%$cityname%'";
$sql="SELECT cantonvalue,cantonname_ma FROM".tablename("zgmart_areas");
}
$sql .=$whereSql;
$results=pdo_fetch($sql,array(':level'=>2,':uniacid'=>$_W['uniacid']));
if($results){
respon::success($results);
}
}
//百度地图定位
function baidu_location($location,$ak){
$locationUrl='http://api.map.baidu.com/geocoder/v2/?output=json&location=%s&ak=%s';
load()->func('communication');
$res=ihttp_request(sprintf($locationUrl,$location,$ak));
$resConteng=@json_decode($res['content'],true);
if($resConteng['status']!=0){
return error(-1, '经纬度错误,定位失败!');
}
return $resConteng['result']['addressComponent']['city'];
}
4 请求示例
前端请求示例:
请求URL:
https://ch-zgmart.wshoto.com/members/getLocation?access_token=f6c361e27df891c062ac937fdd4defbc&latitude=5.7388715&longitude=116.1805417&sessionkey=a10327f5520e7b8ff61180494cf6fa5c×tamp=1527927551&sign=5f7d343bcaacdc79fea62044249ac735&lang=Malaysian
请求方式:get
请求参数:latitude:纬度
Longitude:经度
Lang:语言(chinese english malaysian)
返回结果: