public function geo(Request $request){
//$city地点1
//$goodsCity地点2
$city=$request->input('city');
$goodsCity=$request->input('goodsCity');
//地址转为为经纬度
//腾讯位置服务
$url='http://apis.map.qq.com/ws/geocoder/v1/?address='.$city.'&key=ZSYBZ-RF6RK-RONJP-AZYJM-BQBKQ-4OB3J';
$result=file_get_contents($url);
$data = json_decode($result,TRUE);
// var_dump($data['result']['location']['lng']);
// var_dump($data['result']['location']['lat']);
$url='http://apis.map.qq.com/ws/geocoder/v1/?address='.$goodsCity.'&key=你的key值';
$result=file_get_contents($url);
$res = json_decode($result,TRUE);
// var_dump($res['result']['location']['lng']);
// var_dump($res['result']['location']['lat']);
$form=[$data['result']['location']['lat'],$data['result']['location']['lng']];
$to=[$res['result']['location']['lat'],$res['result']['location']['lng']];
//调用算法
$data= $this->get_distance($form,$to);
// echo $data.'km';
return ['code'=>200,'data'=>'两地之间的距离为'.$data.'km','msg'=>'查询成功'];
}
//计算的算法
function get_distance($from,$to,$km=true,$decimal=2){
sort($from);
sort($to);
$EARTH_RADIUS = 6370.996; // 地球半径系数
$distance = $EARTH_RADIUS*2*asin(sqrt(pow(sin( ($from[0]*pi()/180-$to[0]*pi()/180)/2),2)+cos($from[0]*pi()/180)*cos($to[0]*pi()/180)* pow(sin( ($from[1]*pi()/180-$to[1]*pi()/180)/2),2)))*1000;
if($km){
$distance = $distance / 1000;
}
return round($distance, $decimal);
}