高德地图进阶开发实战案例(4):计算骑行的距离和时间

简介: 高德地图进阶开发实战案例(4):计算骑行的距离和时间

高德地图路线规划批量处理接口已下线,每日分配限额300000次。

jsAPI

var map = new AMap.Map("container", {
        center: [116.397559, 39.89621],
        zoom: 14
    });
    var ridingOption = {
        map: map,
        panel: "panel",
        policy: 1,
        hideMarkers: false,
        isOutline: true,
        outlineColor: '#ffeeee',
        autoFitView: true
    }
    var riding = new AMap.Riding(ridingOption)
    //根据起终点坐标规划骑行路线
    riding.search([121.548053,29.806799],[121.55715,29.805168], function(status, result) {
        // result即是对应的公交路线数据信息,相关数据结构文档请参考  https://lbs.amap.com/api/javascript-api/reference/route-search#m_RidingResult
        if (status === 'complete') {
            log.success('骑行路线数据查询成功')
          var json =JSON.stringify(result);
          console.log(json);
        } else {
            log.error('骑行路线数据查询失败' + result)
        }
    });


webAPI起始点处理

function getDriving($origin, $destination)
{
    $url = "https://restapi.amap.com/v3/direction/driving?origin=" . $origin . "&destination=" . $destination . "&extensions=base&output=json&key=4d9a765939**8a3341c2828d87c";
    $info = json_decode(file_get_contents($url), true);
    if ($info["info"] == "OK") {
        //var_dump($info["route"]["paths"][0]["distance"]);
        $res = [];
        $distance = round($info["route"]["paths"][0]["distance"] / 1000, 2);
        $duration = round($info["route"]["paths"][0]["duration"] / 60, 2);
        $res["data"]["distance"] = $distance;
        $res["data"]["duration"] = $duration;
        die(json_encode($res));
    } else {
        $res["msg"] = $info["info"];
        die(json_encode($res));
    }
}
$origin = "121.547919,29.806776";
$destination = "121.612332,29.915239";
getDriving($origin, $destination);


webAPI批量处理

function getDriving($origin, $destination)
{
    $url = "https://restapi.amap.com/v3/direction/driving?origin=" . $origin . "&destination=" . $destination . "&extensions=base&output=json&key=4d9a765939a2**2828d87c";
    $info = json_decode(file_get_contents($url), true);
    if ($info["info"] == "OK") {
        //var_dump($info["route"]["paths"][0]["distance"]);
        $res = [];
        $distance = round($info["route"]["paths"][0]["distance"] / 1000, 2);
        $duration = round($info["route"]["paths"][0]["duration"] / 60, 2);
        $res["data"]["distance"] = $distance;
        $res["data"]["duration"] = $duration;
        echo "<pre>";
        echo "距离:" . $res["data"]["distance"] . "千米 时间:" . $res["data"]["duration"] . "分钟<br>";
    } else {
        $res["msg"] = $info["info"];
        die(json_encode($res));
    }
}
$origin = "121.547919,29.806776;121.549689,29.803545";//起点集
$destination = "121.612332,29.915239;121.557821,29.8055";//终点集
$arr1 = explode(";", $origin);
$arr2 = explode(";", $destination);
//批处理;
for ($i = 0; $i < count($arr1); $i++) {
    getDriving($arr1[$i], $arr2[$i]);
}

lockdatav Done!


相关文章
|
6月前
|
机器学习/深度学习 编解码 算法
非科班转码:高精度地图开发工程师一面、二面记录
【2月更文挑战第10天】本文介绍2024届秋招中,北京易控智驾科技有限公司的高精度地图开发工程师岗位的2场面试基本情况、提问问题等~
|
前端开发 定位技术
高德地图进阶开发实战案例(9):涟漪动画标注的实现方案
高德地图进阶开发实战案例(9):涟漪动画标注的实现方案
155 0
|
定位技术
高德地图进阶开发实战案例(11):可拖拽驾车路线规划
高德地图进阶开发实战案例(11):可拖拽驾车路线规划
151 0
|
定位技术 容器
高德地图进阶开发实战案例(10):地图选取起终点OD位置经纬度的驾车规划路线
高德地图进阶开发实战案例(10):地图选取起终点OD位置经纬度的驾车规划路线
130 0
|
小程序 JavaScript
微信小程序仿微信运动步数排行-交互
微信小程序仿微信运动步数排行-交互
54 0
|
小程序 JavaScript
微信小程序实现运动步数排行(可删除)
微信小程序实现运动步数排行(可删除)
59 0
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-旅游地图重构2
前端学习笔记202305学习笔记第二十三天-旅游地图重构2
52 0
前端学习笔记202305学习笔记第二十三天-旅游地图重构2
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图单线路线设置
前端学习笔记202305学习笔记第二十三天-地图单线路线设置
64 0
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-旅游地图重构
前端学习笔记202305学习笔记第二十三天-旅游地图重构
46 0
|
存储 数据采集 JavaScript
手把手教你做出数据可视化项目(四)动态模拟航班飞行路线
手把手教你做出数据可视化项目(四)动态模拟航班飞行路线
318 0