TransferServiceOptions 对象规范

公交换乘方案类参数。

属性

名称 类型 说明
policy TransferPolicy 公交换乘的策略。
location String 公交换乘的区域范围。比如“北京”。
complete Function

检索成功的回调函数。参数对象:{type:ServiceResultType.TRANSFER_INFO,detail:Object.<TransferInfo>}。

error Function 检索失败的回调函数。参数:ServiceErrorType。
map Map 展现结果的地图实例。
panel String | HTMLDivElement 展现结果的HTML容器id或元素。

实例

本示例中,设置公交换乘方案服务属性

JavaScript
var center = new qq.maps.LatLng(39.916527, 116.397128);
var map = new qq.maps.Map(document.getElementById("container"), {
    center: center
});
//设置获取公交换乘线路方案的服务
var transferService = new qq.maps.TransferService({
    //设置回调函数
    complete: function(result) {
        if (result.type == qq.maps.ServiceResultType.MULTI_DESTINATION) {
            alert("起终点不唯一");
        }
    },
    //设置检索失败回调函数
    error: function(data) {
        alert(data);
    },
    //设置公交换乘的区域范围
    location: "北京",
    //展现结果的地图实例
    map: map,
    //展现结果
    panel: document.getElementById('infoDiv')

});
//设置搜索地点信息、乘坐方案等属性
function search() {
    var start = document.getElementById('start').value;
    var end = document.getElementById('end').value;
    var policy = document.getElementById("policy").value;
    //设置乘坐方案
    transferService.setPolicy(qq.maps.TransferPolicy[policy]);
    //设置公交换乘的起点和终点
    transferService.search(start, end);
}
window.onload = search;
JavaScript+HTML
<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>公交线路搜索</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>
    <style type="text/css">
        html,
        body {
            height: 100%;
            margin: 0px;
            padding: 0px
        }
        #container {
            width: 100%;
            height: 100%
        }
        #panel {
            position: absolute;
            top: 5px;
            left: 50%;
            margin-left: -180px;
            z-index: 5;
            background-color: #fff;
            padding: 5px;
            border: 1px solid #999;
        }
    </style>
</head>

<body>
    <div id="panel">
        <b>起点: </b>
        <select id="start" onchange="search();">
            <option value="北京南站">北京南站</option>
            <option value="银科大厦">银科大厦</option>
            <option value="清华大学">清华大学</option>
        </select>
        <b>终点: </b>
        <select id="end" onchange="search();">
            <option value="王府井步行街">王府井步行街</option>
            <option value="天坛公园">天坛公园</option>
            <option value="地铁西单站">地铁西单站</option>
        </select>
        </select>
        <b>换乘策略:</b>
        <select id="policy" onchange="search();">
            <option value="LEAST_TIME">较快捷</option>
            <option value="LEAST_TRANSFER">少换乘</option>
            <option value="LEAST_WALKING">少步行</option>
            <option value="NO_SUBWAY">不坐地铁</option>
        </select>
    </div>
    <div id="container" style="width:603px;height:300px"></div>
    <div style='width: 500px; height: 180px' id="infoDiv"></div>
    </div>
    <script>
        var center = new qq.maps.LatLng(39.916527, 116.397128);
        var map = new qq.maps.Map(document.getElementById("container"), {
            center: center
        });
         //设置获取公交换乘线路方案的服务
        var transferService = new qq.maps.TransferService({
            //设置回调函数
            complete: function(result) {
                if (result.type == qq.maps.ServiceResultType.MULTI_DESTINATION) {
                    alert("起终点不唯一");
                }
            },
            //设置检索失败回调函数
            error: function(data) {
                alert(data);
            },
            //设置公交换乘的区域范围
            location: "北京",
            //展现结果的地图实例
            map: map,
            //展现结果
            panel: document.getElementById('infoDiv')

        });
         //设置搜索地点信息、乘坐方案等属性
        function search() {
            var start = document.getElementById('start').value;
            var end = document.getElementById('end').value;
            var policy = document.getElementById("policy").value;
            //设置乘坐方案
            transferService.setPolicy(qq.maps.TransferPolicy[policy]);
            //设置公交换乘的起点和终点
            transferService.search(start, end);
        }
        window.onload = search;
    </script>

</body>

</html>