JavaScript API v1.4以及以前的版本无序申请秘钥(ak),自v1.5版本开始需要先申请秘钥(ak),才可以使用,如需获取更高的配额,需要申请 认证企业用户。
链接:百度地图API 链接地址:
在这里我遇到一个坑: 选择服务器端跟选择浏览器端密钥有所区别,大家按照自己的需求选,要是没选择正确后面会说你的百度密钥未授权使用地图API,那只需要重新申请一个密钥就是了,白名单我是直接填(用来练习而已)。*
module.exports = {
entry: {
app: './src/main.js'
},
// 下面才是我们所要配置的
externals: {
'BMap': 'BMap',
'BMap_Symbol_SHAPE_POINT': 'BMap_Symbol_SHAPE_POINT'
},
注意:,在module.exports 中与entry平级;如果还有其他的,同样在下面引入就可以了,比如自定义覆盖物BMap_Symbol_SHAPE_POINT等。(记得一定要需要重新 npm run dev才可以)
// 注意一定要用到id选择器,后面创建地图实例用到
import BMap from 'BMap
import BMapSymbolSHAPEPOINT from 'BMap_Symbol_SHAPE_POINT'
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基本功能 **
注意:当设置城市信息时,MapTypeControl的切换功能才能可用
百度地图API中的大部分对象都含有addEventListener方法,我们可以通过该方法来监听对象事件。
实例:
map.addEventListener("click", function(){
alert("您点击了地图。");
});
当我们不再希望监听事件时,可以将事件监听进行移除。每个API对象提供了removeEventListener用来移除事件监听函数。
map.removeEventListener("click", functionA);
map.addEventListener("click", functionA);
标注示例:
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);
});
整理得可能有点啰嗦,完结。。。。