前端框架Vue(9)——百度地图使用

Vue项目使用百度地图api 百度地图API的使用步骤 阅读详情

  百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。

  该套API免费对外开放。自v1.5版本起,您需先申请密钥(ak)才可使用,接口无使用次数限制。

  地址传送门:http://lbsyun.baidu.com/index.php?title=jspopular

  文章说是栏目是前端框架Vue结合百度地图,这边还是主讲一下如何引入地图,以及部分 API 的使用。

1、申请密钥

百度地图的使用需要一个专属的密钥(ak)作为路径:

<script src='http://api.map.baidu.com/api?v=2.0&ak=你的密钥&callback=init'></script>

这里写图片描述

按步骤完成,并且激活就能获得一个密钥了,这样我们就可以开始引入地图了。

先来看效果图:

这里写图片描述

整体项目是用Vue做的,百度地图是其中的一个功能模块,这边了解一下如何将地图引入到Vue项目中:

1、首先我用的是vue-cli脚手架,这是目录结构:
这里写图片描述

现在在 index.html 中引入script:

script src='http://api.map.baidu.com/api?v=2.0&ak=你的密钥&callback=init'></script>

解释一下:v = 2.0是版本,ak 则是申请到的密钥,callback 回调初始化地图。

2、给定容器,调用 API 绘图

<template>
    <!--地图容器-->
    <div id="XSDFXPage" class="XSDFXPage"></div>
</template>
<script>
    export default {
        name:'',
        data () {
            return {

            }
        },
        mounted() {
            // 百度地图API功能
            // 创建Map实例
            var map = new BMap.Map("XSDFXPage",{enableMapClick:true});
            // 初始化地图,设置中心点坐标和地图级别
            map.centerAndZoom(new BMap.Point(116.4035,39.915), 11);
            // 添加地图类型控件
            map.addControl(new BMap.MapTypeControl());  
            // 设置地图显示的城市 此项是必须设置的
            map.setCurrentCity("杭州");    
            // 开启鼠标滚轮缩放      
            map.enableScrollWheelZoom(true);
            // 设置定时器,对地图进行自动移动
            setTimeout(function(){
                map.panTo(new BMap.Point(113.262232,23.154345));
            }, 2000);
            setTimeout(function(){
                map.setZoom(14);
            },4000);
            /************************************************
            添加折线
            *************************************************/
            var pointGZ = new BMap.Point(113.262232,23.154345);
            var pointHK = new BMap.Point(110.35,20.02);
            setTimeout(function(){
                var polyline = new BMap.Polyline([pointGZ,pointHK],{strokeColor:"blue",strokeWeight:5,strokeOpacity:0.5});
                map.addOverlay(polyline);
            },6000);
            /************************************************
            添加工具条、比例尺控件
            *************************************************/
            map.addControl(new BMap.ScaleControl({anchor:BMAP_ANCHOR_TOP_LEFT}));
            map.addControl(new BMap.NavigationControl());
            map.addControl(new BMap.NavigationControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,type:BMAP_NAVIGATION_CONTROL_SMALL}));
            /************************************************
            添加自定义控件类,放大ZoomControl
            *************************************************/
            function ZoomControl() {
                //默认停靠位置和偏移量
                this.defaultAnchor = BMAP_ANCHOR_BOTTOM_RIGHT;
                this.defaultOffset = new BMap.Size(50,23);
            }
            //通过JavaScript的prototype属性继承于BMap.Control
            ZoomControl.prototype = new BMap.Control();
            //自定义控件必须实现自己的initialize方法,并且将控件的DOM元素返回
            //在本方法中创建div容器,并将其添加到地图容器中
            ZoomControl.prototype.initialize = function(map) {
                //创建一个DOM元素
                var div = document.createElement('div');
                //添加文字说明
                div.appendChild(document.createTextNode('放大两级'));
                //添加样式
                div.style.color = '#40C5CC'; 
                div.style.cursor = 'pointer';
                div.style.border = '3px solid gray';
                div.style.backgroundColor = '#eee';
                //绑定事件,点击触发
                div.onclick = function(e) {
                    map.setZoom(map.getZoom() + 2);
                }
                //添加DOM元素到地图上
                map.getContainer().appendChild(div);
                //将DOM元素返回
                return div;
            }
            //创建控件
            var myZoomCtrl = new ZoomControl();
            map.addControl(myZoomCtrl)

            /************************************************
            添加添加城市列表控件
            *************************************************/
            map.addControl(new BMap.CityListControl({
                anchor:BMAP_ANCHOR_BOTTOM_RIGHT,
                offset:new BMap.Size(130,23)
                // 切换城市之间事件
                // onChangeBefore: function(){
                //    alert('before');
                // },
                // 切换城市之后事件
                // onChangeAfter:function(){
                //   alert('after');
                // }
            }));
            /************************************************
            添加新图标
            *************************************************/
            //定义新图标
            var myIcon = new BMap.Icon("http://developer.baidu.com/map/jsdemo/img/fox.gif",new BMap.Size(300,157));
            //创建标注
            var marker = new BMap.Marker(pointHK,{icon:myIcon});
            var marker1 = new BMap.Marker(pointGZ,{icon:myIcon});
            //将标注放大地图上
            map.addOverlay(marker);
            map.addOverlay(marker1);
            //文字提示
            var label = new BMap.Label('广州西站',{offset:new BMap.Size(140,10)});
            marker1.setLabel(label); 
            //添加新图标的监听事件
            marker1.addEventListener('click',function(){
                var p = marker1.getPosition();//获取位置
                alert("点击的位置是:" + p.lng + ',' + p.lat);
            })

            /************************************************
            添加曲线
            *************************************************/
            var beijingPosition=new BMap.Point(116.432045,39.910683),
                hangzhouPosition=new BMap.Point(120.129721,30.314429),
                taiwanPosition=new BMap.Point(121.491121,25.127053);
            var point = [beijingPosition,hangzhouPosition,taiwanPosition];

            var curve = new BMapLib.CurveLine(point, {strokeColor:"blue", strokeWeight:3, strokeOpacity:0.5});//创建弧线
            map.addOverlay(curve);//添加到地图上
            curve.enableEditing();//开启编辑功能

            /************************************************
            给地图添加右键菜单
            *************************************************/
            var menu = new BMap.ContextMenu();

            var txtMenuItem = [
                {
                    text:'放大',
                    callback:function(){map.zoomIn()}
                },
                {
                    text:'缩小',
                    callback:function(){map.zoomOut()}
                }
            ];
            for(var i=0; i < txtMenuItem.length; i++){
                menu.addItem(new BMap.MenuItem(txtMenuItem[i].text,txtMenuItem[i].callback,100));
            }
            map.addContextMenu(menu);
        }
    }
</script>
<style scoped>
    html,body,.XSDFXPage{
            width: 100%;
            height: 100%;
            overflow: hidden;
            margin: 0;
            font-family: "微软雅黑";
        }
</style>

上面的代码是可以直接用的,也完全可以对照着百度地图给出的文档进行实践。

将所有的操作放到 mounted 中,保证挂载完成后再去初始化地图。



这篇文章主要是为了日后自己用到地图可以直接来查,实在想不出其他写的目的了。
总结一下:
1、vue 结合百度地图如何引入。
2、操作暂时写在 mounted 中。
3、需要申请一个密钥,并在使用时引入 script 中。

Vue使用百度地图API详细教程 Vue-baidu-map的详细基础使用教程。 阅读详情

相关推荐

实战使用Vue 2接入百度地图API

通过本文的介绍,你已经掌握了如何在Vue 2项目中接入百度地图API,实现基本的地图显示、标记点添加以及动态更新等功能。百度地图API提供了更多的功能和服务,如路径规划、交通状况查询等,可以根据实际需求进一步探索和使用。希望这篇文章能够帮助你在项目中更好地利用地图服务,提升应用的功能性和用户体验。

James的博客 2911

百度地图使用之-----vue项目中百度地图的应用以及遇到的一些问题

我们在项目开发时对于地图应用也是比较常见的,因为百度地图的开发文档都是基于HTML文件的,并没有介绍在Vue项目中的应用,而且网上关于在vue中的应用也比较少,官网的文档还是很容易看的懂,但是应用到vue中还是会遇到很多问题的,下面我就分享一些我在vue项目使用百度地图的体会及问题。 一、vue项目中正确加载百度地图 使用地图第一步当然是得把百度地图加载出来,然后才能进行后续的对地图功能升级的...

花落微凉梦清幽的博客 2561

Vue框架实现百度地图热力图(简单易懂,学了就会)

实现百度地图热力图(Vue框架) 最近比赛项目有一个需求是实现前端的展示,展示热力图,费了一些功夫才弄好,记录一下实现的过程。如果想调用百度地图API,首先你需要得在官网注册一个帐号然后申请一个密钥,注册网:http://lbsyun.baidu.com/index.php?title=lbscloud 直接上代码,需要在项目中的index.html中添加如下代码 <script src="http://api.map.baidu.com/api?v=2.0&ak=密匙"></sc

woyaojinyixian的博客 6910

【vue-baidu-map】引用+各种功能的实现

目录 引用 使用 1、Vue Baidu Map关闭左下角的百度logo 2、Vue Baidu Map关闭底图点击功能 3、Vue Baidu Map鼠标滚动控制缩放 4、注意:不要试图在 vue 自身的生命周期中调用BMap类,更不要在这些时机修改 model 层 5、带箭头的折线组件 6、固定显示 - 框中内容 7.offset使用...

BMG-Princess 1513

uniapp 打开高德地图或者百度地图 进行导航

//打开第三方地图 export function openMap(latitude,longitude,name){ let url = ""; if (plus.os.name == "Android") { let hasBaiduMap = plus.runtime.isApplicationExist({ pname: 'com.baidu.BaiduMap', action: 'baidumap://' .

qq_32519421的博客 1万+

web项目中使用百度地图经验

应用前准备工作 1、http://lbsyun.baidu.com/index.phptitle=%E9%A6%96%E9%A1%B5 打开百度地图官网链接在最底部点击申请秘钥进行申请和激活。 2、申请成功后到我的应用里面查看我的应用,将会看到刚才创建的应用以及秘钥。 3、点击设置按钮来对应用简单进行配置。 引入地图到项目中 首先在index.html中用script标签引用百度...

飛-200 4843

Vue使用百度地图获取当前城市

Vue使用百度地图获取当前城市一:申请百度地图密匙注册登录后需要进行开发者认证创建应用获取密匙AK二:Vue项目使用下载相应插件html文件引入创建一个新的js文件(下一步需要引入)组件引入js并使用效果 一:申请百度地图密匙 我们需要提前在百度地图开放平台申请密匙才能使用对应的接口去获取城市信息。 百度地图开放平台:http://lbsyun.baidu.com/apiconsole/center#/home 注册登录后需要进行开发者认证 主要是需要登记认证身份证,这环节需要身份证照片,认证很快,基本提

m0_46627730的博客 2288

当vCenter的证书过期、Root密码过期、Root密码遗忘同时发生时的解决方法与步骤

vCenter,强制修改root密码,修改SSO User密码,修复证书过期问题

OCTSJimmy的专栏 5547

SpringBoot-Vue整合百度地图

SpringBoot-vue整合百度地图

m0_62909831的博客 1971

AMEsim不连续处理机制:仿真精度与效率的平衡艺术

本文深入解析AMEsim不连续处理机制在系统仿真中的应用,探讨如何平衡仿真精度与效率。通过液压系统仿真案例,详细介绍了事件检测算法、变步长求解器自适应策略及典型场景优化方法,帮助工程师有效应对仿真中的不连续性问题,提升仿真效率和准确性。

v4w5x6的博客 440

Comsol实战:铌酸锂x切与z切参数设置全攻略(附电场强度归一化技巧)

本文详细介绍了在Comsol Multiphysics中设置铌酸锂x切与z切晶体参数的全流程,包括晶体取向定义、电光系数配置及关键光学参数计算。重点讲解了电场强度归一化这一实用技巧,帮助用户提升仿真分析效率,为设计电光调制器等集成光子器件提供精准的仿真基础。

year5的博客 583

VUE使用百度地图api获取当前定位城市

export default { init: function (){ const AK = "o491iK2pZE9WAdzi6BBujHwkkhF3qyxY"; const BMap_URL = "https://api.map.baidu.com/api?v=2.0&ak="+ AK +"&s=1&callback=onBMapCallback"; return new Promise((resolve, reject) => { // 如果

qq_24906761的博客 5653

基于Python爬虫的新闻热点分析与挖掘

本文介绍了基于Python爬虫的新闻热点分析与挖掘方法,主要包括数据收集、预处理、热点分析和可视化四个部分。首先通过爬虫抓取新浪新闻数据,利用文本清洗和存储技术进行数据预处理;接着采用TF-IDF和LDA算法进行关键词提取与主题建模;最后通过词云图和主题分布图实现数据可视化。该方法能有效识别新闻热点,为信息筛选和决策提供支持。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1544

vue借助百度地图实现炫酷的热力图效果

vue借助百度地图实现炫酷的热力图效果

希望看完文章的你能够带着答案离开。 5899

【180609】剑侠情缘_整套源码+地图编辑器(单机学习例子)

剑侠情缘_整套源码+地图编辑编(单机学习例子)完整源码下载地址:点击下载备用下载地址:点击下载

资源小站 6277

XGBoost原生接口和Sklearn接口参数详解

XGBoost原生接口和Sklearn接口参数详解

算法工程师 2654

百度地图的使用

按照公司业务需求,短暂的学习了一下百度地图。他有两种使用方式,一种是通过下载安装依赖包,另外一种是通过引入外部js。

小蜗蜗有头发 926

1、网站可靠性工程(SRE):原理、实践与转型指南

本文深入探讨了网站可靠性工程(SRE)的核心原理、实践方法以及组织转型策略。从SRE的基本概念如服务水平指标(SLI)、服务水平目标(SLO)和错误预算入手,详细解析了如何通过SRE实现产品开发、运营和管理团队的高效协作。此外,还涵盖了SRE的实施步骤,包括现状评估、组织认同、基础设施建设、事件响应、错误预算政策制定以及组织结构设计等内容。最后,文章展望了SRE的未来发展,强调了服务目录、合规监管及SRE文化建设的重要性,为企业的现代化运营体系转型提供了全面指南。

xk7n92h3p5m的博客 145

Vue中使用百度地图组件修改InfoBox样式

百度地图infobox样式调整

weixin_46159066的博客 1360

Python全栈入门到实战【进阶篇 2】面向对象之封装:私有属性、私有方法与@property优雅访问

_属性名真正私有方法:双下划线开头(__方法名()),Python自动名字改写,外部无法访问;约定私有方法:单下划线开头(_方法名()),仅为编程约定,外部可访问但不推荐。实战中优先使用“真正私有方法”,隐藏核心辅助逻辑。封装的本质:隐藏对象的核心数据(私有属性)和内部逻辑(私有方法),仅对外提供规范、安全的访问接口,实现数据安全与可维护性;私有属性真正私有:双下划线开头(__属性名),Python名字改写,外部无法直接访问,仅类内部可用;约定私有:单下划线开头(_属性名。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 2914

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Vue + 百度地图API实现社区地图可视化

智慧社区管理系统集成了百度地图API,实现了社区地理位置的可视化展示。通过地图功能,管理员可以直观地查看各个社区的位置分布,并进行地理位置相关的管理操作。

m0_62910542的博客 1613

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

前端对 “百度地图“ 的应用入门

前端入门,必须了解的百度地图知识

Lin_25937的博客 1590

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

vue脚手架3.0集成百度地图

集成百度地图,找遍所有教程都是需要在webpack.dev.config.js添加什么配置,但是vue3.0的脚手架已经没有这个文件了,所有对于新手前端来说,看的这教程真是心累,后来自己摸索出来,不需要进行配置也可以使用,所有记录一下笔记 第一步 1.cnpm i vue-baidu-map或者npm 2.main.js 引入 ak百度地图密钥 import BaiduMap from 'vue...

qq_42962779的博客 1276

vue + echart 百度地图添加本地图片渲染_vue+echarts添加本地图片

对象篇模块化编程-自研模块加载器开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】首先先说,echarts百度地图的渲染:安装echart: npm install echarts@4.8 --save安装百度地图:npm install vue-baidu-map --saveimport echarts from ‘echarts’;import BaiduMap from ‘vue-baidu-map’Vue.use(BaiduMap, {ak: ‘你的百度地图的key’}

2401_84617477的博客 453

Vue + Echarts + 百度地图 实践

第一次在项目中使用echarts画地图,在此做个小小的记录。 项目地址: github.com/licong-site… 1. 安装echarts(使用3.x, 4.x版本) npm install echarts@3.0.0 --save 如果需要在线定制适合自己项目的echarts包,可以使用<script>引入。建议开发环境使用echarts.js <script s...

weixin_33937499的博客 5435

vue百度地图使用默认信息框,默认标注。

项目需求: 点击marker会默认弹出一个窗口,我想不点击直接弹出,怎么搞?企业联系我们地址,百度地图页面一打开默认显示标注提示框如图 首先去出vue项目本身引入的vue Baidu Map 的插件 在vue-cli 根目录项目中 public>index.html引入百度地图插件 <!-- 百度地图 --> <script type="text/javascript...

sxiaobi 2181
上一篇: Python(2)——基础知识爬坑
下一篇: JavaScript:利用JavaScript实现的功能、算法和奇淫技巧(持续更新)
JesusAllen30
博客等级 码龄11年 225粉丝 53原创
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值