百度地图开发实战案例:根据起点和终点计算路程和时间

在这里插入图片描述

终点数据格式

    //终点医院数据;
    var endData = [
        {id: 0, name: '南京市第一医院', lng: 118.79073, lat: 32.023645},
        {id: 1, name: '南京市红十字医院', lng: 118.798598, lat: 32.033747},
        {id: 2, name: '南京京科医院', lng: 118.789758, lat: 32.092045},
        {id: 3, name: '南京市中医院', lng: 118.81419, lat: 32.001842},
        {id: 4, name: '南京大学医院', lng: 118.788766, lat: 32.059918},
        {id: 5, name: '南京军区南京总医院-急诊', lng: 118.814825, lat: 32.046949},
        {id: 6, name: '南京京都医院', lng: 118.801374, lat: 32.040321},
        {id: 7, name: '南京医药', lng: 118.811702, lat: 32.001405},
        {id: 8, name: '南京市中心医院', lng: 118.802974, lat: 32.06216},
        {id: 9, name: '南京东南眼科医院', lng: 118.838429, lat: 32.042146},
    ];

单击地图获取起点位置

    map.addEventListener("click", function (e) {
        geocoder.getLocation(e.point, function (rs) {
            $("#start").val(rs.address + "," + rs.point.lng + "," + rs.point.lat);
        });
    });

封装获取距离和时间的函数

    //获取距离和时间;
    function getDis(sname, lng1, lat1, ename, lng2, lat2) {
        map.clearOverlays();
        var output = "起点:" + sname + "至 终点:" + ename + " 时间:";
        var searchComplete = function (results) {
            if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
                return;
            }
            var plan = results.getPlan(0);
            output += plan.getDuration(true) + "\n";
            output += "总路程为:";
            output += plan.getDistance(true) + "\n";
        }

        var transit = new BMap.DrivingRoute(map, {
            renderOptions: {map: map},
            onSearchComplete: searchComplete,
            onPolylinesSet: function () {
                $("#info").html(output);
            }
        });

        var start = new BMap.Point(lng1, lat1);
        var end = new BMap.Point(lng2, lat2);
        transit.search(start, end);
    }

lockdatav Done!

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页