百度地图web版导航

news/2024/10/18 16:31:22/
百度地图web版导航 - jiangzunshao - 江尊少网易博客
一.首先引入所申请的ak密钥
<script type="text/javascript" src="http://wx.58haha.cn/baidu/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?ak=PlhFWpA02aoURjAOpnWcRGqw7AI8EEyO&v=2.0&services=false"></script> 
二.简单样式处理一下
body, html {width: 100%;height: 100%; margin:0; padding:0; font-family:"微软雅黑";}
#l-map{height: 220px;width:100%;}
#r-result,#r-result table{width:100%;}
.nav { width: 100%; height: 2em; line-height: 2em; background: #EDEDED; border: 1px solid #ADADAD;}
.nav .nav-inner{ width: 30%; margin-left: 35%;}
.nav .nav-sub { float: left; width: 33%;}
.nav .nav-sub a { text-decoration: none; }
.nav .nav-sub a i { display: inline-block; background: url("http://webmap1.map.bdstatic.com/wolfman/static/common/images/ui3/mo_banner_ba37b5d.png")}
.nav .nav-sub a.bus i { background-position: -1px -192px; position: relative; top: 2px; width: 13px; height: 16px;}
.nav .nav-sub a.driver i { background-position: -29px -194px; width: 15px; height: 14px;}
.nav .nav-sub a.walk i { background-position: -102px -189px; width: 16px; height: 18px;}
.nav .nav-sub a.bus.cur i { background-position: -15px -192px; }
.nav .nav-sub a.driver.cur i { background-position: -45px -194px; }
.nav .nav-sub a.walk.cur i { background-position: -120px -189px;}
.hide { display: none;}
input { font-family: "micrsoft yahei"; width: 100%; height: 2em; font-size: 1em; line-height: 2em; border: 0px; outline: 0px; padding: .2em 1em; }
.btn-group { width: 100%; border-top: 1px solid #DDD; border-bottom: 2px solid #DDD;}
button {width: 32%; text-align: center; border: 0; border-radius: 0; background-color: inherit; height: 44px; line-height: 44px; font-size: 15px;}
三.html代码布局
<div id="search">
<input type="text" id="start" placeholder="正在定位您的位置..." style="border-bottom: 1px solid #DDD; " />
<input type="text" id="end" value="金海商富中心" readonly="true" />
<input type="hidden" id="start_point" value=""/>
<input type="hidden" id="end_point" value="116.501573,39.900877"/>
<input type="hidden" id="start_location" value=""/>
<div class="btn-group">
<button id="bus-search">公交</button>
<button id="driver-search">驾车</button>
<button id="walk-search">步行</button>
</div>
</div>
<div id="showMap" class="hide">
<div class="nav">
<div class="nav-inner">
<div class="nav-sub"><a href="#" class="bus"><i></i></a></div>
<div class="nav-sub"><a href="#" class="driver cur"><i></i></a></div>
<div class="nav-sub"><a href="#" class="walk"><i></i></a></div>
</div>
<!-- <a href="javascript:;" id="reLocation">重新导航</a> -->
</div>
<div id="l-map"></div>
<div id="r-result"></div>
</div>
四.js代码如下
$(function(){
//获取目的地的经纬度--转为一维数组
var ep = $("#end_point").val().split(",");
//实例化地图
var map = new BMap.Map("l-map");
//设置中心点坐标
var point = new BMap.Point(ep[0], ep[1]);
//初始化地图
map.centerAndZoom(point, 16);
// 定位对象
var geoc = new BMap.Geocoder();
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
$("#start_point").val(r.point.lng+','+r.point.lat);
setLocation(r.point);
showMap();
}else {
$("#start").attr("placeholder","请输入您的当前位置")
alert('无法定位到您的当前位置,导航失败,请手动输入您的当前位置!'+this.getStatus());
}
},{enableHighAccuracy: true});
//交通方式切换
$(".nav .nav-sub a").click(function(){
$(".nav .nav-sub a").removeClass('cur');
$(this).addClass('cur');
searchRoute();
})
//重新定位
$("#reLocation").click(function(){
reLocation();
});
//点击不同的交通方式时,当前的高亮显示
$("#bus-search,#driver-search,#walk-search").click(function(){
var id = $(this).attr("id");
$(".nav .nav-sub a").removeClass('cur');
if(id == "bus-search"){
$(".nav .nav-sub a.bus").addClass('cur');
}else if(id == "driver-search"){
$(".nav .nav-sub a.driver").addClass('cur');
}else if(id == "walk-search"){
$(".nav .nav-sub a.walk").addClass('cur');
}
showMap();
})
//重新定位--重新载入地图
function reLocation(){
$("#search").show();
$("#showMap").hide();
map = new BMap.Map("l-map");
}
//显示地图
function showMap(){
$("#srarch").hide();
$("#showMap").show();
searchRoute();
}
//设置位置
function setLocation(point){
geoc.getLocation(point, function(rs){
console.log(rs);
var addComp = rs.addressComponents;
var result = addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber;
$("#start").val(result);
$("#start_location").val(result);
searchRoute();
});
}
//交通方式检索---交通的结果
function searchRoute(s_, e_){
map = new BMap.Map("l-map");
var cur = $(".nav .nav-sub a.cur");
var type = "";
if(cur.hasClass('bus')){
type = "bus";
}else if(cur.hasClass('driver')){
type = "driver";
}else if(cur.hasClass('walk')){
type = "walk";
}else{
type = "driver";
}
var s_;
var e_;
var sl = $("#start_location").val();
var s = $("#start").val();
var sp = $("#start_point").val();
var e = $("#end").val();
var ep = $("#end_point").val();
if(s != sl){// 如果用户修改了地址(与定位的位置不一致)则使用地址搜索
s_ = s;
e_ = e;
}else if(sp){// 否则使用坐标搜索
var ps = sp.split(",");
var pe = ep.split(",");
s_ = new BMap.Point(ps[0], ps[1]);
e_ = new BMap.Point(pe[0], pe[1]);
}
if(type == "bus"){
var transit = new BMap.TransitRoute(map, {renderOptions: {map: map, panel: "r-result", autoViewport: true}});
transit.search(s_, e_);
}else if(type == "driver"){
var driving = new BMap.DrivingRoute(map, {renderOptions: {map: map, panel: "r-result", autoViewport: true}});
driving.search(s_, e_);
}else if(type == "walk"){
var walking = new BMap.WalkingRoute(map, {renderOptions: {map: map, panel: "r-result", autoViewport: true}});
walking.search(s_, e_);
}
}
});


http://www.ppmy.cn/news/355349.html

相关文章

导航栏颜色

//设置BarTintColor &#xff0d;&#xff0d; bar 背景色 // [self.navigationController.navigationBar setBarTintColor:barColor]; //修改tintcolor &#xff0d;&#xff0d; 字体&#xff0c;图片 的颜色 [self.navigationController.navigationBar setTintColor:barCol…

html5 导航栏颜色怎么修改

HTML5导航栏颜色的修改可以通过CSS来实现。可以在HTML文件中的head部分添加一个style标签&#xff0c;然后使用CSS选择器选中导航栏的元素&#xff0c;修改其背景颜色。 例如&#xff0c;下面的代码将导航栏的背景颜色改为红色: <style>nav {background-color: red;} <…

网站导航

实用大全首 页管理中心上网导航音乐搜索 添加网址 | 设为首页 | 收藏本站 百度 Google 一搜 爱问 [ 我的最爱 ] 我要地图网 中国地图出版社 图行天下 神州龙地图网 中国知网 爱书吧 [ 常去站点 ] 我的主页 淇滨在线 商都宽频 网易网盘 中国同学录 中国…

五彩导航栏

做一个简单的五彩导航栏&#xff1a; 效果图&#xff1a; 功能&#xff1a; 鼠标放上面可以变换另外一种颜色&#xff0c;可以点击跳转到链接&#xff1b; 思路&#xff1a; 1.五个a 标签实现&#xff0c;把a标签转换为行内块模式 2.使用a:hover 伪类选择器 3.对盒子进行…

广西省百色市谷歌卫星地图下载

一、概述 百色&#xff08;壮文&#xff1a;Bwzswz&#xff09;是广西壮族自治区下辖地级市&#xff0c;位于广西壮族自治区西部&#xff0c;右江上游&#xff0c;介于东经10428-10754&#xff0c;北纬2251&#xff0d;2507之间&#xff0c;西与云南相接&#xff0c;北与贵州毗…

tinymce富文本编辑框使用

引用 <link rel"stylesheet" href"./tinymce/skins/ui/oxide/skin.min.css" /><link rel"stylesheet" href"./tinymce/tinymce.min.js" /><script src"/tinymce/jquery.tinymce.min.js"></script>&…

LaTeX基础教程之字体篇(样式及大小)

\documentclass{article}% 也可book,report,letter以及支持中文排版的ctexart / ctexrep / ctexbook&#xff08;使用这三个类时&#xff0c;可不用调用ctex宏包&#xff09;。该命令用于引入一个文档类 % 导言区&#xff0c;主要用于全局设置&#xff0c;及调用宏包\usepackag…

【css】各个字号大小对照表

中文字号英文字号&#xff08;pt&#xff09;毫米&#xff08;mm&#xff09;像素&#xff08;px&#xff09;1英寸72pt25.30mm95.6px大特号63pt22.14mm83.7px特号54pt18.97mm71.7px初号42pt14.82mm56px小初36pt12.70mm48px一号26pt9.17mm34.7px小一24pt8.47mm32px二号22pt7.76…