这次使用的是1.0版本的webgl 因为要使用自定义样式然后直_bmapgl.infowindow">
赞
踩
vue使用的是vue2,脚手架是vue-cli3
首先 在public文件夹的index.html中引入百度地图api(需要去官网(jspopularGL | 百度地图API SDK)申请密钥)
<script type="text/javascript" src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=(密钥)"></script>
这次使用的是1.0版本的webgl 因为要使用自定义样式
然后直接在vue文件中使用
- <template>
- <div>
- <div id="container"></div>
- </div>
- </template>
- <script>
- export default {
- name: "baidu-map",
- data() {
- return {
- map:null
- };
- },
- mounted(){
- this.map = new BMapGL.Map('container') //创建一个地图实例
- this.map.centerAndZoom(new BMapGL.Point(166.6666,36.6666), 12); //设置坐标点和展示级别
- this.map.setMapStyleV2({
- styleId:'b3a455df90100869d7f9ed26e438fffe' //样式ID
- });
-
- this.map.enableScrollWheelZoom(true) // 允许地图可被鼠标滚轮缩放
-
- var scaleCtrl = new BMapGL.ScaleControl(); // 添加比例尺控件
- this.map.addControl(scaleCtrl);
-
- //创建图标
- let myIcon = new BMapGL.Icon('图片地址', new BMapGL.Size(51, 60));
- // 创建Marker标注,使用图标
- let point = new BMapGL.Point('lng的值','lat的值');
- let marker = new BMapGL.Marker(point, {
- icon: myIcon
- });
- // 将标注添加到地图
- this.map.addOverlay(marker);
-
- // 信息窗口内容----点击图标打开信息窗口
- let opts = {
- width : 255, // 信息窗口宽度
- height: 190, // 信息窗口高度
- }
- let content=` <div class="alarmDiv">
- <div class="imgbj">
- <div class="imgtitle">内容</div>
- </div>
- <p>标题</p>
- </div>`;
- let infoWindow = new BMapGL.InfoWindow(content, opts); // 创建信息窗口对象
- marker.addEventListener("click", () => {
- this.map.openInfoWindow(infoWindow, point); //开启信息窗口
- });
- }
-
- }
- </script>
修改信息窗的样式
- /*修改地图信息窗口对象样式*/
- .BMap_bubble_pop{
- background:#001D4F !important;
- color:#FFFFFF !important;
- border:0 !important;
- margin-top:30px;
- margin-left: -33px;
- }
- /*替换剪头*/
- img[src="http://webmap0.bdimg.com/image/api/iw_tail.png"]{
- opacity:.7;
- width: 20px !important;
- height: 15px !important;
- top:188px !important;
- left: 126px !important;
- filter:alpha(opacity=70);
- content: url('~@/assets/icon/jt.png');
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。