php 取经纬度,php根据地址获取百度地图经纬度的实例方法

首先我们来看全部实例代码:

/**

* @param string $address 地址

* @param string $city 城市名

* @return array

*/

function getLatLng($address=‘‘,$city=‘‘)

{

$result = array();

$ak = ‘‘;//您的百度地图ak,可以去百度开发者中心去免费申请

$url ="http://api.map.baidu.com/geocoder/v2/?callback=renderOption&output=json&address=".$address."&city=".$city."&ak=".$ak;

$data = file_get_contents($url);

$data = str_replace(‘renderOption&&renderOption(‘, ‘‘, $data);

$data = str_replace(‘)‘, ‘‘, $data);

$data = json_decode($data,true);

if (!empty($data) && $data[‘status‘] == 0) {

$result[‘lat‘] = $data[‘result‘][‘location‘][‘lat‘];

$result[‘lng‘] = $data[‘result‘][‘location‘][‘lng‘];

return $result;//返回经纬度结果

}else{

return null;

}

}

扩展阅读:

官方方法总结:

/**

* 搜索地址,查询周边的位置 ()

*/

public function query_address($key_words){

$header[] = 'Referer: http://lbs.qq.com/webservice_v1/guide-suggestion.html';

$header[] = 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36';

$url ="http://apis.map.qq.com/ws/place/v1/suggestion/?&region=&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&keyword=".$key_words;

$ch = curl_init();

//设置选项,包括URL

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch,CURLOPT_HTTPHEADER,$header);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

//执行并获取HTML文档内容

$output = curl_exec($ch);

// print_r($output);die;

//释放curl句柄

curl_close($ch);

// return $output;

$result = json_decode($output,true);

// print_r($result);

// $res = $result['data'][0];

return $result;

//echo json_encode(['error_code'=>'SUCCESS','reason'=>'查询成功','result'=>$result);

}

示例:

ace214d7ab99efeb067392765b2eb915.png

返回值:有很多与参数地址相近的经纬度(一般默认取第一条数据,也就是下标是0的那条经纬度)

if(!empty($result['data'][0])){

$address = $result['data'][0];

// var_dump($result) ;

sleep(0.5);

//print_r($address);

$lat2 = $address['location']['lat'];

$lng2 = $address['location']['lng'];

}

以上就是本次介绍的全部知识点内容,感谢大家对脚本之家的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值