百度地图 驾车/公交查询Demo(支持多起点多终点)

效果图:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>百度地图-驾车/公交查询</title>
    <link href="style/style.css" rel="stylesheet" type="text/css" />
    <script src="script/jquery.min.js" type="text/javascript"></script>
    <!-- http://api.map.baidu.com/api?v=2.0&ak=您的密钥" -->
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=0B3c1575c78bfb0d1c52a0660cae3491"></script>
</head>
<body>
    <div class="maincontain" id="test">
        <div class="eMapsInfo">
            <!--搜索控制-->
            <div class="eMapsTop">
                <span>线路查询</span> 从
                <input class="txt" type="text" value="东方明珠" id="fromPlace" />
                到<select id="endInput">
                    <option value="虹桥T1" selected="selected">虹桥T1</option>
                    <option value="虹桥T2">虹桥T2</option>
                    <option value="浦东机场">浦东机场</option>
                </select>
                驾车<input type="radio" name="rdo" checked="checked" value="0"> 公交<input name="rdo"
                    value="1" type="radio">
                <input type="button" value="查询" id="btnSearch" />
            </div>
            <!--地图-->
            <div class="eMaps">
                <div class="boxmap" id="container">
                </div>
            </div>
            <!--右侧选项-->
            <div class="boxpanel" id="box">
                <h5>
                    起点选择 <a href="javascript:void(0)" id="btnExpand">(展开)</a></h5>
                <div id="startPanel">
                </div>
                <div id="drivingPanel">
                </div>
            </div>
            <div class="clear">
            </div>
        </div>
    </div>
    <script type="text/javascript">

        var setindex = 0;
        var map = new BMap.Map("container");            // 创建Map实例
        var point = new BMap.Point(121.357522, 31.193063);    // 创建点坐标
        var marker = new BMap.Marker(point);  // 创建标注
        map.addOverlay(marker);              // 将标注添加到地图中
        map.centerAndZoom(point, 12);         // 初始化地图,设置中心点坐标和地图级别。
        map.addControl(new BMap.MapTypeControl({ anchor: BMAP_ANCHOR_TOP_RIGHT, offset: new BMap.Size(10, 10) }));
        map.addControl(new BMap.NavigationControl());               // 添加平移缩放控件
        map.addControl(new BMap.ScaleControl());                    // 添加比例尺控件
        map.addControl(new BMap.OverviewMapControl());              //添加缩略地图控件
        map.addControl(new BMap.OverviewMapControl({ anchor: BMAP_ANCHOR_BOTTOM_RIGHT, isOpen: 1 }));
        var sContent =
"<h4 style='margin:0 0 5px 0;padding:0.2em 0'>上海机场(集团)有限公司  </h4>" +
"<p style='margin:0;line-height:1.5;font-size:13px;'>地址:中国上海虹桥国际机场迎宾二路200号<br/>电话:86 21 6269 2200</p>" +
"</div>";
        var infoWindow = new BMap.InfoWindow(sContent);  // 创建信息窗口对象
        map.openInfoWindow(infoWindow, map.getCenter());      // 打开信息窗口
        function getInfoW(obj) {
            var startInfowin = new BMap.InfoWindow("</br>" + obj.title + "</br>" + obj.address + "<p class='t-c'><input value='选为起点' type='button'    onclick='startDeter();' /></p>");
            return startInfowin;
        }
        function getInfoW_M(obj) {
            startPoint = obj.point;
            map.openInfoWindow(getInfoW(obj), obj.point);
        }

        var startResults = null;
        var startPoint;
        var driving = new BMap.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true, panel: 'drivingPanel'} });
        var driving_trans = new BMap.TransitRoute(map, { renderOptions: { map: map, autoViewport: true, panel: 'drivingPanel'} });
        var startOption = {
            onSearchComplete: function (results) {
                // 判断状态是否正确
                if (startSearch.getStatus() == BMAP_STATUS_SUCCESS) {
                    startResults = results;
                    var s = [];
                    map.clearOverlays();
                    for (var i = 0; i < results.getCurrentNumPois(); i++) {
                        s.push("<div><p><a onmouseover='getInfoW_M(startResults.getPoi(" + i + "))' href='#'>");
                        s.push(results.getPoi(i).title);
                        s.push("</a></p><p>");
                        s.push(results.getPoi(i).address);
                        s.push("</p></div>");
                        var marker_c = new BMap.Marker(results.getPoi(i).point);
                        (function () {
                            var cur = i;
                            var mak = marker_c;
                            mak.addEventListener("click", function () {
                                startPoint = results.getPoi(cur).point;
                                this.openInfoWindow(getInfoW(results.getPoi(cur)));      // 打开信息窗口
                            });
                        })();

                        map.addOverlay(marker_c);              // 将标注添加到地图中
                    }
                    document.getElementById("startPanel").innerHTML = s.join("");
                } else { startResults = null; alert("没有搜索到路线,请确定起点是否有效!"); }
            }
        };

        //取得交通方式
        function getType() {
            var value = "";
            var radio = document.getElementsByName("rdo");
            for (var i = 0; i < radio.length; i++) {
                if (radio[i].checked == true) {
                    value = radio[i].value;
                    break;
                }
            }
            return value;
        }
        function startDeter() {
            map.clearOverlays();
            var marker = new BMap.Marker(startPoint);
            map.addOverlay(marker);
            map.addOverlay(new BMap.Marker(point));
            if (setindex == 0) {
                driving.search(startPoint, point);
            } else {
                driving_trans.search(startPoint, point);
            }
            document.getElementById("startPanel").style.display = "none";
        }

        //创建2个搜索实例
        var startSearch = new BMap.LocalSearch(map, startOption);

        //搜索按钮
        $("#btnSearch").click(function () {
            setindex = getType();
            var fromPlace = document.getElementById("fromPlace").value;
            startSearch.search(fromPlace);
            var toPlace = $("#endInput").val();
            switch (setindex) {
                case "0":
                    driving.search(fromPlace, toPlace);
                    break;
                case "1":
                    driving_trans.search(fromPlace, toPlace);
                    break;
            }

            document.getElementById("box").style.display = "block";
            document.getElementById("startPanel").style.display = "block";
        });

        //控制收起/展开
        $("#btnExpand").click(function () {
            $(this).text($(this).text() == "(收起)" ? "(展开)" : "(收起)");
            if ($(this).text() == "(收起)") {
                $("#startPanel").show();
            } else {
                $("#startPanel").hide();
            }

        });
    </script>
</body>
</html>

css:

body
{
    font-size: 12px;
}
#startPanel p, #endPanel p
{
    margin: 0;
    padding: 0;
    line-height: 1.2em;
}
#startPanel div, #endPanel div
{
    padding: 5px;
}
#startPanel, #endPanel
{
    border: 1px solid #FA8722;
    font-size: 12px;
}
 h5 {
line-height: 3em;
padding: 0;
margin: 0;
}
.boxpanel
{
    width: 167px;
    float: right;
    border: 1px solid gray;
    padding: 0 2px 10px;
    height: 502px;
    overflow-y: auto;
}
#container
{
    width: 100%;
    height: 100%;
    overflow: hidden;
    margin: 0;
}
.eMapsInfo
{
    width: 737px;
    margin: 0 auto;
    padding: 20px 0;
    position: relative;
}
.eMaps
{
    border: 6px solid #d2e0ee;
    background: #fff;
    height: 502px;
    width: 552px;
    float: left;
}
.eMapsTop
{
    height: 30px;
    padding-top: 20px;
    color: #333333;
    font-size: 14px;
}
.boxpanel
{
    width: 167px;
    float: right;
    border: 1px solid gray;
    padding: 0 2px 10px;
    height: 502px;
    overflow-y: auto;
}

jquery用的1.4.2

打包下载:http://download.csdn.net/detail/a497785609/6878687

时间: 2024-12-28 11:58:48

百度地图 驾车/公交查询Demo(支持多起点多终点)的相关文章

百度地图驾车方案查询怎么用

  百度地图驾车方案查询使用方法:在搜索框中直接输入"从哪到哪",或者选择驾车,并在输入框中输入起点和终点;您还可通过气泡或鼠标右键发起查询. 右侧文字区域会显示为您精确计算出的驾车方案,下方有 "最少时间"."最短路程"和"少走高速"三种策略供您选择.左侧地图则标明该方案具体的行车路线. 百度地图搜索是百度提供的一项网络地图搜索服务,覆盖了国内近400个城市.数千个区县.在百度地图里,您可以查询街道.商场.楼盘的地理位置,也

android百度地图之公交线路详情搜索_Android

本篇文章可以实现百度公交线路搜索,可以选择多条线路,具体实现代码如下: 一.公交线路详情检索 获取公交线路的详情主要分来两步,1.获取公交线路的Uid,2.通过Uid获取公交线路详情. 1.获取公交线路的Uid: /* * 获得公交线路图的Uid,并且根据系Uid发起公交线路详情的检索 * * @see * com.baidu.mapapi.MKSearchListener#onGetPoiResult(com.baidu.mapapi * .MKPoiResult, int, int) */

百度地图驾车方案如何添加途经点

  百度地图驾车方案添加途经点方法:将鼠标移至地图上的驾车线路,会出现一个可供您拖动的途经点,将鼠标拖动至您想要经过的道路并松开,更新的驾车方案将经过您选择的道路. 百度地图搜索是百度提供的一项网络地图搜索服务,覆盖了国内近400个城市.数千个区县.在百度地图里,您可以查询街道.商场.楼盘的地理位置,也可以找到离您最近的所有餐馆.学校.银行.公园等等.

Android百度地图自定义公交路线导航_Android

一.问题描述 基于百度地图实现检索指定城市指定公交的交通路线图,效果如图所示 二.通用组件Application类,主要创建并初始化BMapManager public class App extends Application { static App mDemoApp; //百度MapAPI的管理类 public BMapManager mBMapMan = null; // 授权Key // 申请地址:http://dev.baidu.com/wiki/static/imap/key/ p

Android百度地图自定义公交路线导航

一.问题描述 基于百度地图实现检索指定城市指定公交的交通路线图,效果如图所示 二.通用组件Application类,主要创建并初始化BMapManager public class App extends Application { static App mDemoApp; //百度MapAPI的管理类 public BMapManager mBMapMan = null; // 授权Key // 申请地址:http://dev.baidu.com/wiki/static/imap/key/ p

通过百度地图获取公交线路的站点坐标的js代码_javascript技巧

最近做百度地图的模拟数据,需要获取某条公交线路沿途站点的坐标信息,貌似百度没有现成的API,因此做了一个模拟页面,工具而已,IE6/7/8不支持 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>获取公交站点坐标</title> <style type="text/css"> html,b

手机百度地图实时路况怎么看 百度地图APP路况查询操作教程

百度地图APP实时路况查询教程: 1.打开百度地图,点击主界面右上角的[红绿灯]按钮. 2.如此实时路况功能就已经打开啦,绿色表示正常,黄色表示缓慢,红色表示严重堵车. 以上就是手机百度地图实时路况查看教程了,百度地图的实时路况信息是结合当地交管所电子监控信息,相当及时准确,下班时开启实时路况,就可以更容易找到不堵车的路线啦.

百度地图app公交大富翁活动的奖励现金怎么提现?百度地图公交大富翁提现教程

公交大富翁的任务审核完成以后,小编之前说的24小时内完成审核,其实实际审核更快,早上提交的任务,现在就已经收到结果了,显示审核通过,那么现在就可以去提现啦,跟着小编来体验下. 1.公交大富翁的任务如何完成,大家可以参考小编之前的经验,下图就是小编提交的任务,审核通过就会实时收到相应的积分. 2.然后进入我的界面,就可以看到相应的提现选项,当然还有别的方面的信息,大家可以参考下. 3.在互联网领域,涉及到提现的操作,都会需要相应账户的身份证号和手机号码,小编已经很熟悉这个套路啦. 4.填写完这些信

【百度地图API】圣诞节里不会迷路的麋鹿——驾车导航

原文:[百度地图API]圣诞节里不会迷路的麋鹿--驾车导航 任务描述: 可能大家还不知道,圣诞老人是爱迷路的老爷爷! 今年圣诞节又要到了,圣诞老人又要出来送礼物了.可是,他灰常的迷路呢! 还好,他有一只不会迷路的麋鹿--   如何实现: 建立两个input文本框,分别获得圣诞老人输入的起点和终点. 当圣诞老人点击OK按钮后,先判断起点和终点文本框内是否为空,为空则需要提示圣诞老人重新输入. 不为空的情况下,进行查询驾车路线的工作. 如果没有查询到相应的起点和终点,则需要提示圣诞老人重新输入哦!