百度地图开发 Javascript API
2019-07-22 00:34
369 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39950233/article/details/96782419
因为google map 在大陆被墙( 有个大陆版的,但是在大陆地区还是百度好用),很多在大陆开展业务的客户都要求用百度地图。
客户的要求大概这样,点击地图的标志物找到面板上相对应的信息,或者点击面板上的信息,对应的标志物移动到地图中间。改变图片。(我的谷歌地图开发也一样的)
首先要去百度地图开发平台申请api key 百度地图开发平台
[code]<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=“你的的百度api key”"></script>
[code] //初始化 function initialize() { var map = new BMap.Map("allmap"); point = new BMap.Point(114.11728, 22.545459); map.centerAndZoom(point, 12); //开启鼠标滚轮缩放 map.enableScrollWheelZoom(true); //平移缩放控件 var opts = {anchor: BMAP_ANCHOR_TOP_RIGHT}; map.addControl(new BMap.NavigationControl(opts)); //所有覆盖标签 //抛出闭包的用处,方便后面通过面板操作覆盖物 var allTags = renderOverlay(map); // 公共定位器 var geolocation = new BMap.Geolocation(); //是否启用附近功能 window.nearby = true; //left navigation 显示隐藏标题 移动位置 window.activeIdentify = ""; $("#-list").on("click","li",function (e) { window.activeIdentify = idenify; allTags[idenify].showTite(); allTags[idenify].moveToCenter(); }); // 附近搜索 related with moveend zoomend $("#map-panel-nearby-content button").on("click",function () { searchNearby(allTags,map,geolocation); }); map.addEventListener("zoomend",function () { mapZoomend(allTags,map); }); map.addEventListener("touchmove",function (){ $(".evisu-map-wrapper").removeClass(" active"); }); map.addEventListener("moveend",function () { mapMove(allTags,map); }); // 初始化定位 getCurrents(map,geolocation); // 移动 active tag 到中心 $(".panel-ctrl").on("click",function () { $(".evisu-map-wrapper").toggleClass(" active"); if(window.activeIdentify!=""){ setTimeout(function(){ allTags[window.activeIdentify].moveToCenter(); }, 700); } }); } //init 结束 // 自定义覆盖物 function renderOverlay(map) { //公司业务逻辑不公开啦!! //抛出闭包的用处,方便后面通过面板操作覆盖物 return tagContainer; } // 浏览器定位 function getCurrents(map,geolocation) { geolocation.getCurrentPosition(function(r){ if(this.getStatus() == BMAP_STATUS_SUCCESS){ point = new BMap.Point(r.point.lng,r.point.lat); map.centerAndZoom(point,12); map.panTo(r.point); } else { alert('您的位置获取失败'+this.getStatus()); } }); } // 地图移动 function mapMove(allTags,map){ for(items in allTags){ allTags[items].hideTite(); } if(window.activeIdentify!=""){ allTags[window.activeIdentify].showTite(); } if(!window.nearby){ return; } var bs = map.getBounds(); //获取可视区域 var bssw = bs.getSouthWest(); //可视区域左下角 var bsne = bs.getNorthEast(); //可视区域右上角 var swLng = bssw.lng , swLat = bssw.lat , neLng = bsne.lng , neLat = bsne.lat; var storeList=''; for(tag in allTags){ //公司业务逻辑不公开啦!! } } //地图放大 function mapZoomend(allTags,map){ if(!window.nearby){ return; } var bs = map.getBounds(); //获取可视区域 var bssw = bs.getSouthWest(); //可视区域左下角 var bsne = bs.getNorthEast(); //可视区域右上角 var swLng = bssw.lng , swLat = bssw.lat , neLng = bsne.lng , neLat = bsne.lat; var storeList=''; for(tag in allTags){ //公司业务逻辑不公开啦!! } $("#evisu-store-list").html(storeList); } //附近搜索 function searchNearby(allTags,map,geolocation){ window.nearby = true; geolocation.getCurrentPosition(function(r){ if(this.getStatus() == BMAP_STATUS_SUCCESS){ point = new BMap.Point(r.point.lng,r.point.lat); map.centerAndZoom(point,12); map.panTo(r.point); var bs = map.getBounds(); //获取可视区域 var bssw = bs.getSouthWest(); //可视区域左下角 var bsne = bs.getNorthEast(); //可视区域右上角 var swLng = bssw.lng , swLat = bssw.lat , neLng = bsne.lng , neLat = bsne.lat; for(tag in allTags){ var lng = allTags[tag]._point.lng, lat = allTags[tag]._point.lat; if(lng>swLng && lng<neLng && lat>swLat && lat<neLat){ }else{ } } } else { alert("无法获取您的位置,请开启浏览器定位权限,iphone用户打开手机【设置】-【隐私】-【定位服务】进行设置;安卓用户打开手机【设置】-【应用权限管理】-【权限管理】查看。或者打开地图APP或网页输入您的位置"); } }); }
相关文章推荐
- 百度地图 JavaScript API 极速版 开发体会
- 百度地图 JavaScript API 极速版 开发体会
- 高德地图 JavaScript API v1.3 开发(多点标记、自定义坐标点、信息窗口、导航)(demo)
- ArcGIS API For Javascript开发利器(智能提示)和学习地址
- ArcGIS API for JavaScript开发笔记(二)GP服务REST调用
- ArcGIS API for JavaScript开发环境搭建及第一个实例demo
- SOSO街景地图 API (Javascript)开发教程(1)- 街景
- html5获取地理位置 利用百度地图JavaScript API标注
- (一)ArcGIS API For Javascript开发利器
- ArcGIS API for JavaScript开发环境搭建与发布以及基本功能实现
- ArcGIS API For Javascript开发利器(智能提示)和学习地址
- ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务
- ArcGIS API for Javascript 应用开发入门
- 使用百度地图离线JavaScript API加载本地瓦片地图
- ArcGIS JavaScript API开发的地图—重新布局
- 百度 Javascript开发 API
- ArcGIS API for Javascript 应用开发入门
- Arcgis Javascript API 开发笔记
- ArcGIS API for Javascript 开发:不适用esri.toolbar.draw接口,由用户控制定位中心点和半径,实现查询落在圆内的要素
- 利用Yahoo! Search API开发自已的搜索引擎-javascript版