百度地图JS开发API应用实现LBS

百度地图开发平台地址:http://lbsyun.baidu.com/index.php?title=jspopular

在开发移动端网页时,会遇到LBS的功能开发,利用第三方API是比较方便的。下面对百度地图的JS开发API应用做一些说明。

1.引入相关CSS文件和库文件

JavaScript API v1.4及以前版本无须申请密钥(ak),自v1.5版本开始需要先申请密钥(ak),才可使用,如需获取更高配额,请点击申请认证企业用户。
地址:http://api.map.baidu.com/api?v=1.4
//参数v表示您加载API的版本,使用JavaScript APIv1.4及以前版本可使用此方式引用。
http://api.map.baidu.com/api?v=2.0&ak=您的密钥
//使用JavaScript APIv2.0请先申请密钥ak,按此方式引用。
<link rel="stylesheet" href="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.css" />
<script src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥" type="text/javascript"></script>
<script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js"></script>

2.在html中创建地图部分的容器

<div id="allmap" style="height: 400px;opacity: 0;"></div>

3.开始实例化创建

//实例化一个地图对象,绑定id为allmap
var map = new BMap.Map("allmap"); 
//开放插件功能
map.enableScrollWheelZoom();//滚动缩放
map.addControl(new BMap.NavigationControl());//地图的平移缩放控件
map.addControl(new BMap.ScaleControl());  
map.addControl(new BMap.OverviewMapControl()); 
map.addControl(new BMap.MapTypeControl());  
map.addControl(new BMap.GeolocationControl());
  //    定位功能 
var geolocation = new BMap.Geolocation(); 
geolocation.getCurrentPosition(function(r){ 
     if(this.getStatus() == BMAP_STATUS_SUCCESS){ 
      var myIcon = new BMap.Icon("http://api0.map.bdimg.com/images/markers.png", new BMap.Size(23, 25), { offset: new BMap.Size(23, 25), imageOffset: new BMap.Size(0, - 10 * 25) });
//添加位置图标,标注当前位置 
var mk = new BMap.Marker(r.point,{icon: myIcon});
map.centerAndZoom(new BMap.Point(r.point.lng,r.point.lat), 14); 
map.addOverlay(mk); 
map.panTo(r.point);
//向地图中添加自定义地点图标方法 
function addMarker(point,index,data){ 
var storeIcon = new BMap.Icon("http://api0.map.bdimg.com/images/markers.png", new BMap.Size(23, 25), {
 offset: new BMap.Size(23, 25),
 imageOffset: new BMap.Size(0, - index * 25) 
}); 
//创建信息窗口 
var messContent = '<div style="margin:0;line-height:20px;padding:2px;">' + '地址:'+data.address+'<br/>电话:'+data.tel+ '</div>'; 
var searchInfoWindow = null; 
searchInfoWindow = new BMapLib.SearchInfoWindow(map, messContent, { 
title : data.name, //标题 
width : 290, //宽度
 height : 105, //高度 
panel : "panel", //检索结果面板
 enableAutoPan : true, //自动平移 
searchTypes :[ BMAPLIB_TAB_SEARCH, //周边检索 
BMAPLIB_TAB_TO_HERE, //到这里去 
BMAPLIB_TAB_FROM_HERE //从这里出发
 ] }); 
var marker = new BMap.Marker(point,{icon: storeIcon}); 
 marker.addEventListener("click", function(e){ searchInfoWindow.open(marker); })
  map.addOverlay(marker);} 
}else { alert('failed'+this.getStatus()); }  },{enableHighAccuracy: true})```

![图片.png](http://upload-images.jianshu.io/upload_images/1097385-9d8de70f111a33ec.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

网页实现效果如下![这里写图片描述](http://upload-images.jianshu.io/upload_images/1097385-8c41b0ab16da5656?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,272评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,225评论 19 139
  • 1.申请密钥(ak) 首先要注册开发者: 激活后即可申请密钥: 2.加载API JS文件 使用V1.4及以前版本的...
    co可丁阅读 2,736评论 0 2
  • 流量超了200块的。。。
    月下门童阅读 172评论 0 0
  • 正直青春年少的我,家境还算可以,有父母的、朋友、的疼爱,规规矩矩的过了24年!一直坚信第一次一定是在结婚的时候才可...
    美丽的太阳花阅读 448评论 0 0