百度api实现公交驾车查询

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>指定起点导航</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
<style>
body{font-size:14px;}
h5{line-height:3em;padding:0;margin:0;}
a{color:#EE3399;}
a:hover{color:#99AA66;}
.txt{border:1px solid #ccc;background:none;padding:1px;}
.f-l{float:left;}
.t-c{text-align:center;}
.clear{clear:both;}
.hidden{display:none;}
.searchbox{border:4px solid #e5ecf9;height:40px;float:left;line-height:40px;padding:0 20px;margin:0 0 0 50px;}
.mainbox{margin:20px 0 0;}
.boxmap{width:700px;height:500px;border:1px solid gray;float:left;}
.boxpanel{width:250px;float:left;margin:0 0 0 10px;border:1px solid gray;padding:0 10px 10px;}
#startPanel,#endPanel{border:1px solid #FA8722;font-size:12px;}
#startPanel div,#endPanel div{padding:5px;}
#startPanel p,#endPanel p{margin:0;paddin:0;line-height:1.2em;}
#drivingPanel{border:1px solid #6688EE;}
</style>
</head>
<body>
<div>
    <img class="f-l" src="http://map.baidu.com/img/logo-map.gif"/>
    <div class="searchbox">
        从<input class="txt" type="text" value="" id="startInput"/>到<input class="txt" type="text" disabled="disabled" value="天府广场" id="endInput"/>
        驾车<input type="radio" name="rdo"   checked="checked" value="0">&nbsp;公交<input name="rdo" value="1" type="radio" >
        &nbsp;<input type="button" value="查询" onClick="mDriving()"/>
    </div>
</div>
<div class="clear"></div>
<div class="mainbox">
    <div class="boxmap" id="container"></div>
    <div class="boxpanel hidden" id="box">
        <h5>起点选择&nbsp;<a href="#" onClick="document.getElementById('startPanel').style.display='block';"& gt;(展开)</a></h5>
        <div id="startPanel"></div>       
        <div id="drivingPanel"></div>
    </div>
</div>
</body>
</html>
<script type="text/javascript">
var setindex=0;
var map =new BMap.Map("container");            // 创建Map实例
var point =new BMap.Point(104.072244,30.663279);    // 创建点坐标
//var myIcon = new BMap.Icon("http://dev.baidu.com/wiki/static/map/API/img/fox.gif", new BMap.Size(300,157)); ,{icon:myIcon}
var marker = new BMap.Marker(point);  // 创建标注
map.addOverlay(marker);              // 将标注添加到地图中
map.centerAndZoom(point,15);         // 初始化地图,设置中心点坐标和地图级别。
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}));
map.enableScrollWheelZoom(); //启用地图滚轮放大缩小

var sContent =
"<h4 style='margin:0 0 5px 0;padding:0.2em 0'>天府广场</h4>" +
"<img style='float:right;margin:4px' id='imgDemo' src='http://imgsrc.baidu.com/baike/abpic/item/d7c9ca3f7aa71af87d1e71cb.jpg' width='139' height='104' title='天府广场'/>" +
"<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>天府广场,是位于成都市中心城区的一座广场,也是成都市最重要的休闲广场。...</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 getInd(){
  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;
}
//创建2个搜索实例
var startSearch =new BMap.LocalSearch(map,startOption);
function mDriving(){
    setindex= getInd();   
    var startPlace = document.getElementById("startInput").value;
    startSearch.search(startPlace);   
    document.getElementById("box").style.display="block";
    document.getElementById("startPanel").style.display="block";   
}

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";
}
</script>

posted @ 2012-07-03 17:40  gongde  阅读(454)  评论(0编辑  收藏  举报