如何用高德地图查询两地之间的实际距离?

2026-04-03 05:441阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计570个文字,预计阅读时间需要3分钟。

如何用高德地图查询两地之间的实际距离?

请自行到高德官网上申请key,并请求您的key geocodes[0] - location);然后,定义起始经纬度$ startLatLng=array(lat=> $latLng[1], lng=> $latLng[0]);接着,遍历经纬度数组:for ($i=0; $i < $length; $i++) { $url=urldecode(http://restapi.amap.com/v3/geocode/geo?key=您的key&address=..$par); }

请自行到高德官网申请您的key

geocodes[0]->location); $startLatLng = array( "lat" => $latLng[1], "lng" => $latLng[0] ); for ($i=0; $i<$length; $i++){ $url = urldecode("restapi.amap.com/v3/geocode/geo?key=您的key&address=".$param[$i]['address']); $result = json_decode(get($url)); $latLng = explode(",",$result->geocodes[0]->location); $endLatLng = array( "lat" => $latLng[1], "lng" => $latLng[0] ); $distance = array( "distance"=>getDistance($startLatLng,$endLatLng),"unit"=>"m"); array_push($param[$i],$distance); } return $param; } $add = array( array("address"=>"福建省厦门市集美区"), array("address"=>"北京市海淀区上地十街10号") ); print_r(calculateDistance("福建省厦门市集美区",$add)); /** * 发送GET请求 * @param url * @param param * @return result */ function get($url, $param=array()){ if(!is_array($param)){ throw new Exception("参数必须为array"); } $p=''; foreach($param as $key => $value){ $p=$p.$key.'='.$value.'&'; } if(preg_match('/\?[\d\D]+/',$url)){//matched ?c $p='&'.$p; }else if(preg_match('/\?$/',$url)){//matched ?$ $p=$p; }else{ $p='?'.$p; } $p=preg_replace('/&$/','',$p); $url=$url.$p; //echo $url; $api.map.baidu.com/location/ip?ak=您的ak&coor=bd09ll&ip=".$ip; $url = "restapi.amap.com/v3/ip?key=您的key&ip=".$ip; $result = json_decode(get($url)); if ($result->status != 1){ throw new Exception("获取坐标失败"); } $latLng_result = explode(";",$result->rectangle); $latLng_array1 = explode(",",$latLng_result[0]); $latLng_array2 = explode(",",$latLng_result[1]); $lat = ($latLng_array1[1]+$latLng_array2[1])/2; $lng = ($latLng_array1[0]+$latLng_array2[0])/2; $url = "restapi.amap.com/v3/geocode/regeo?key=您的key&location=" .$lng.",".$lat. "&roadlevel=0"; $result = json_decode(get($url)); return $result->regeocode->formatted_address; } // echo getAddressByIp("120.41.85.225"); /** * 通过GPS定位拿到具体位置,电脑只有IE、edge才有定位权限 * @param $latLng=array('lat'=>?,'lng'=>?) * @return $result->result->formatted_address */ function getAddressByGPS($latLng) { // $url = "api.map.baidu.com/geocoder/v2/?location=" .$latLng['lat'].",".$latLng['lng']. "&ak=您的ak&output=json"; $url = "restapi.amap.com/v3/geocode/regeo?key=您的key&location=" .$latLng['lng'].",".$latLng['lat']. "&roadlevel=0"; $result = json_decode(get($url)); return $result->regeocode->formatted_address; } $latLng = array( 'lat'=>24.617404, 'lng'=>118.075912 ); // echo getAddressByGPS($latLng);

如何用高德地图查询两地之间的实际距离?

本文共计570个文字,预计阅读时间需要3分钟。

如何用高德地图查询两地之间的实际距离?

请自行到高德官网上申请key,并请求您的key geocodes[0] - location);然后,定义起始经纬度$ startLatLng=array(lat=> $latLng[1], lng=> $latLng[0]);接着,遍历经纬度数组:for ($i=0; $i < $length; $i++) { $url=urldecode(http://restapi.amap.com/v3/geocode/geo?key=您的key&address=..$par); }

请自行到高德官网申请您的key

geocodes[0]->location); $startLatLng = array( "lat" => $latLng[1], "lng" => $latLng[0] ); for ($i=0; $i<$length; $i++){ $url = urldecode("restapi.amap.com/v3/geocode/geo?key=您的key&address=".$param[$i]['address']); $result = json_decode(get($url)); $latLng = explode(",",$result->geocodes[0]->location); $endLatLng = array( "lat" => $latLng[1], "lng" => $latLng[0] ); $distance = array( "distance"=>getDistance($startLatLng,$endLatLng),"unit"=>"m"); array_push($param[$i],$distance); } return $param; } $add = array( array("address"=>"福建省厦门市集美区"), array("address"=>"北京市海淀区上地十街10号") ); print_r(calculateDistance("福建省厦门市集美区",$add)); /** * 发送GET请求 * @param url * @param param * @return result */ function get($url, $param=array()){ if(!is_array($param)){ throw new Exception("参数必须为array"); } $p=''; foreach($param as $key => $value){ $p=$p.$key.'='.$value.'&'; } if(preg_match('/\?[\d\D]+/',$url)){//matched ?c $p='&'.$p; }else if(preg_match('/\?$/',$url)){//matched ?$ $p=$p; }else{ $p='?'.$p; } $p=preg_replace('/&$/','',$p); $url=$url.$p; //echo $url; $api.map.baidu.com/location/ip?ak=您的ak&coor=bd09ll&ip=".$ip; $url = "restapi.amap.com/v3/ip?key=您的key&ip=".$ip; $result = json_decode(get($url)); if ($result->status != 1){ throw new Exception("获取坐标失败"); } $latLng_result = explode(";",$result->rectangle); $latLng_array1 = explode(",",$latLng_result[0]); $latLng_array2 = explode(",",$latLng_result[1]); $lat = ($latLng_array1[1]+$latLng_array2[1])/2; $lng = ($latLng_array1[0]+$latLng_array2[0])/2; $url = "restapi.amap.com/v3/geocode/regeo?key=您的key&location=" .$lng.",".$lat. "&roadlevel=0"; $result = json_decode(get($url)); return $result->regeocode->formatted_address; } // echo getAddressByIp("120.41.85.225"); /** * 通过GPS定位拿到具体位置,电脑只有IE、edge才有定位权限 * @param $latLng=array('lat'=>?,'lng'=>?) * @return $result->result->formatted_address */ function getAddressByGPS($latLng) { // $url = "api.map.baidu.com/geocoder/v2/?location=" .$latLng['lat'].",".$latLng['lng']. "&ak=您的ak&output=json"; $url = "restapi.amap.com/v3/geocode/regeo?key=您的key&location=" .$latLng['lng'].",".$latLng['lat']. "&roadlevel=0"; $result = json_decode(get($url)); return $result->regeocode->formatted_address; } $latLng = array( 'lat'=>24.617404, 'lng'=>118.075912 ); // echo getAddressByGPS($latLng);

如何用高德地图查询两地之间的实际距离?