效果图:

<!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

最新文章

  1. 未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序。解决办法
  2. less杂记
  3. 利用jquery.validate以及bootstrap的tooltip开发气泡式的表单校验组件
  4. noi 666 放苹果
  5. CodeForces 625A 思维
  6. [工作积累] GCC 4.6 new[] operator内存对齐的BUG
  7. MySQL数据库远程访问的权限
  8. VLV INDEX
  9. java NumberForMate的使用
  10. CSS3的radial-gradient(径向渐变)
  11. 除了使用URLSearchParams处理axios发送的数据,但是兼容性不好,其他的兼容方法
  12. Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程
  13. Npoi简单读写Excel
  14. 结合之前看的一些东西,阅读RockMQ实战与原理解析笔记
  15. EtherType :以太网类型字段及值
  16. POI 导入excel 代码记录 方便以后粘贴
  17. 使用Wisdom RESTClient进行自动化测试,如何取消对返回的body内容的校验?对排除的JSON属性字段不做校验?
  18. 初识Linux------虚拟机VM三种配置网络的解说
  19. Lazarus的DBGrid中回车键的处理
  20. 复刻smartbits的国产网络测试工具minismb-网络连接数测试方法

热门文章

  1. Delegates and Events
  2. EatCam Webcam Recorder Pro
  3. 适配高分辨率的图片High DPI Images for Variable Pixel Densities
  4. Apache Mahout 简介 通过可伸缩、商业友好的机器学习来构建智能应用程序
  5. Struts2典型应用
  6. 融合libevent和protobuf
  7. 自定义控件 淘宝头条【ViewFlipper】
  8. CarbonData编译与安装
  9. Framework元数据向导错误之BMT-MD-6001与BMT-IMP-0002
  10. 解决Oracle监听错误的一种办法