高德地图如何精确计算任意两地间的实际距离?

更新于
2026-09-24 20:38:40
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

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

高德地图如何精确计算任意两地间的实际距离?

请自行到高德官网上申请key,并在请求中使用您的key替换以下代码中的您的key。代码内容如下:

php请自行到高德官网上申请key,并在请求中使用您的key替换以下代码中的您的key;$par=urlencode(address= . $geocodes[0]);$startLatLng=array(lat=> $latLng[1], lng=> $latLng[0]);for ($i=0; $i

高德地图如何精确计算任意两地间的实际距离?

请自行到高德官网申请您的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);

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

高德地图如何精确计算任意两地间的实际距离?

请自行到高德官网上申请key,并在请求中使用您的key替换以下代码中的您的key。代码内容如下:

php请自行到高德官网上申请key,并在请求中使用您的key替换以下代码中的您的key;$par=urlencode(address= . $geocodes[0]);$startLatLng=array(lat=> $latLng[1], lng=> $latLng[0]);for ($i=0; $i

高德地图如何精确计算任意两地间的实际距离?

请自行到高德官网申请您的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);