在vue项目中调用百度地图API及其基本用法 |
您所在的位置:网站首页 › 引入百度地图api接口难度大吗 › 在vue项目中调用百度地图API及其基本用法 |
调用步骤
申请百度地图密钥在index.html中添加百度地图JavaScript API接口在webpack.base.conf.js配置文件中配置BMap创建vue文件map.vue,然后各种引用 。。。。
一、申请百度地图密钥
JavaScript API v1.4以及以前的版本无序申请秘钥(ak),自v1.5版本开始需要先申请秘钥(ak),才可以使用,如需获取更高的配额,需要申请 认证企业用户。 链接:百度地图API 链接地址: 在这里我遇到一个坑: 选择服务器端跟选择浏览器端密钥有所区别,大家按照自己的需求选,要是没选择正确后面会说你的百度密钥未授权使用地图API,那只需要重新申请一个密钥就是了,白名单我是直接填(用来练习而已)。* 注意:,在module.exports 中与entry平级;如果还有其他的,同样在下面引入就可以了,比如自定义覆盖物BMap_Symbol_SHAPE_POINT等。(记得一定要需要重新 npm run dev才可以) 三、创建文件map.vue 在组件中创建一个容器,用来显示百度地图(宽高最好都是100%) // 注意一定要用到id选择器,后面创建地图实例用到 在地图组件中import BMap,否则会出现“BMap undefined”,还有这个BMap_Symbol_SHAPE_POINT,因为是用“_”连字符,会报错让你这个没有用驼峰命名。所以引入时,把这个连字符去掉就行了。 import BMap from 'BMap import BMapSymbolSHAPEPOINT from 'BMap_Symbol_SHAPE_POINT' 创建地图对象,在mounted生命周期中调用 mounted () { this.baiduMap() }, methods: { baiduMap () { var map = new BMap.Map('allmap') // 创建地图实例,这里用到了id选择器 var point = new BMap.Point(113.119538, 23.029158) // 创建点坐标 map.centerAndZoom(point, 12) // 初始化地图,设置中心点坐标和地图级别 var marker = new BMap.Marker(point) // 创建标注 map.addOverlay(marker) // 将标注添加到地图中 map.enableScrollWheelZoom(true) // 开启鼠标滚轮缩放 map.addControl(new BMap.NavigationControl()) // 添加平移缩放控件 map.addControl(new BMap.ScaleControl()) // 添加比例尺控件 map.addControl(new BMap.OverviewMapControl()) // 添加缩略地图控件 //map.setMapStyle({ style: 'midnight' }) //地图风格 var localSearch = new BMap.LocalSearch(map); localSearch.enableAutoViewport(); //允许自动调节窗体大小 var infoWindow = new BMap.InfoWindow('佛山市 ') // 鼠标移上标注点要发生的事 marker.addEventListener('mouseover', function() { this.openInfoWindow(infoWindow) }) // 鼠标移开标注点要发生的事 marker.addEventListener('mouseout', function() { //this.closeInfoWindow(infoWindow) }) }, }最后最后,把组件引入父组件就大功告成了。 ** 红色框框内的就是我们添加的小控件,上面代码都有详细解说,我就不多说了。接下来再罗列一下用到的api基本功能 ** map.centerAndZoom方法创建地图,第一个参数可以是根据之前创建好的一个点为中心,创建出地图,也可以根据城市地区的中文名称创建地图。(如果拼写正确,可以根据城市的英文名称来创建)map.centerAndZoom第二个参数是地图缩放级别,最大为19,最小为0。(但实际当缩小到3的时候就已经。。。)![]() ![]() ![]() 百度地图API中的大部分对象都含有addEventListener方法,我们可以通过该方法来监听对象事件。 实例: map.addEventListener("click", function(){ alert("您点击了地图。"); });当我们不再希望监听事件时,可以将事件监听进行移除。每个API对象提供了removeEventListener用来移除事件监听函数。 map.removeEventListener("click", functionA); map.addEventListener("click", functionA); 地图遮盖物: Overlay:覆盖物的抽象基类,所有的覆盖物均继承此类的方法。Marker:标注表示地图上的点,可自定义标注的图标。Label:表示地图上的文本标注,您可以自定义标注的文本内容。Polyline:表示地图上的折线。Polygon:表示地图上的多边形。多边形类似于闭合的折线,另外您也可以为其添加填充颜色。Circle: 表示地图上的圆。InfoWindow:信息窗口也是一种特殊的覆盖物,它可以展示更为丰富的文字和多媒体信息。注意:同一时刻只能有一个信息窗口在地图上打开。标注示例: var point = new BMap.Point(120.389472,36.072362);//默认 可以通过Icon类来指定自定义图标 var marker = new BMap.Marker(point); var label = new BMap.Label("青岛市政府",{offset:new BMap.Size(20,-10)});//标注标签 marker.setLabel(label)//设置标注说明 marker.enableDragging();//标注可以拖动的 marker.addEventListener("dragend", function(e){ alert(e.point.lng + ", " + e.point.lat);//打印拖动结束坐标 }); map.addOverlay(marker); var point = new BMap.Point(120.387244,36.064835); var myIcon = new BMap.Icon("http://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25)); //自定义标注 var marker2 = new BMap.Marker(point, {icon: myIcon}); map.addOverlay(marker2); var infoWindow = new BMap.InfoWindow("详细信息 "); //弹出窗口 marker2.addEventListener("click", function(){ this.openInfoWindow(infoWindow); });整理得可能有点啰嗦,完结。。。。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |