php根据地址获取百度地图经纬度的实例方法
程序员文章站
2023-11-21 17:34:16
首先我们来看全部实例代码:
/**
* @param string $address 地址
* @param string $city 城市名
* @...
首先我们来看全部实例代码:
/** * @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/?®ion=&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); }
示例:
返回值:有很多与参数地址相近的经纬度(一般默认取第一条数据,也就是下标是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']; }
以上就是本次介绍的全部知识点内容,感谢大家对的支持。