高德地图进阶开发实战案例(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!


相关文章
|
前端开发 小程序
前端解析支付宝返回form表单,自动跳转支付
前端解析支付宝返回form表单,自动跳转支付
1507 1
|
Kubernetes Java Docker
【K8S系列】Pod重启策略及重启可能原因
【K8S系列】Pod重启策略及重启可能原因
2551 0
|
安全 Java API
JAVA三种权限认证框架的搭建方法
SaToken、JustAuth和MaxKey是三个用于身份认证和权限管理的工具。SaToken是轻量级框架,简化登录、权限、OAuth2.0等认证,适合中小型项目;JustAuth是第三方授权登录库,支持多种社交平台,易于集成;MaxKey是企业级IAM产品,提供复杂的权限管理和统一认证,支持多种标准协议及社交账号集成。
1723 1
|
网络协议 安全 Ubuntu
7 个有用的免费 Linux 网络隧道
【7月更文挑战第4天】
2408 0
7 个有用的免费 Linux 网络隧道
|
存储 固态存储 算法
高性能分布式No SQL数据库Aerospike(一)——介绍和架构
高性能分布式No SQL数据库Aerospike(一)——介绍和架构
2872 1
高性能分布式No SQL数据库Aerospike(一)——介绍和架构
|
开发工具 git Windows
Git分支新建与合并案例实操(结合IDEA讲解)
Git分支新建与合并案例实操(结合IDEA讲解)
1535 0
|
XML SQL JSON
从入门到实战编写Python Poc利用!
从入门到实战编写Python Poc利用!
|
前端开发 JavaScript
轻松上手:基于single-spa构建qiankun微前端项目完整教程
轻松上手:基于single-spa构建qiankun微前端项目完整教程
953 0
|
网络协议 网络性能优化 定位技术
ip呼叫是什么意思?
ip呼叫是什么意思?
|
缓存 算法 小程序
游戏开发学习路线和教程合集
游戏开发学习路线和教程合集
1027 0