一.百度地图介绍

  1. 百度地图API是一套为开发者提供的基于百度地图的应用程序接口,包括JavaScript、iOS、Andriod、静态地图、Web服务等多种版本,提供基本地
    图、位置搜索、周边搜索、公交驾车导航、定位服务、地理编码等功能。

  2. 百度地图API的官网是百度地图

  3. 使用之前需要注册成为开发者,根据提示进行实名认证,注册成功即可。

  4. 注册成功之后,打开控制台,进入应用管理,输入应用名称,类型,白名单写英文半角的*。

  5. 创建成功,显示下图,会显示密钥AK

二.百度地图的使用

1. 百度地图的使用步骤

  1. 获取刚才创建应用的密钥AK,引入百度地图的js,把你自己的AK替换为你自己的密钥AK,如下图所示
    <script src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=你自己的AK"></script>
  2. 创建地图的容器
    <div id="container"></div>
  3. 初始化地图
    var map=new BMap.Map("container")
  4. 创建一个地图中心点
    var point new BMap.point(经度,纬度)
  5. 设置中心点和滚轮缩放
    map.centerAndzoom(point, 1 5); ​//鼠标滚轮缩放 map.enableScrollWheelZoom(true);
    经过以上步骤就创建了一个地图

2. 添加控件

创建一个地图之后,添加比例尺控件,缩放控件,城市列表控件

var scaleCtrl = new BMapGL.ScaleControl();  // 添加比例尺控件
map.addControl(scaleCtrl);
var zoomCtrl = new BMapGL.ZoomControl();  // 添加缩放控件
map.addControl(zoomCtrl);
var cityCtrl = new BMapGL.CityListControl();  // 添加城市列表控件
map.addControl(cityCtrl);

3.地图上绘制内容(覆盖物)

所有叠加或覆盖到地图的内容,我们统称为地图覆盖物。

  1. 在地图上绘制点
var  p = new BMapGL.Point(e.latlng.lng,e.latlng.lat);
// 创建标记
var  m = new BMapGL.Marker(p);
  1. 在地图上绘制折线
var polyline = new BMapGL.Polyline(line,{strokeStyle:"dashed",strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5});
  1. 在地图上绘制面,即多边形
var polygone = new BMapGL.Polygon(line,{fillColor:"red",strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5})
  1. 在地图上绘制圆
  // 绘制圆圈
var circle = new BMapGL.Circle(point,2000,{strokeColor:"green"});
// 添加圆圈
map.addOverlay(circle);
  1. 添加标注
var label = new BMapGL.Label("中国前端学习基地", {       // 创建文本标注position: point,                          // 设置标注的地理位置offset: new BMapGL.Size(0, 0)           // 设置标注的偏移量})
// 添加标签
map.addOverlay(label);                        // 将标注添加到地图中
// 设置标签的样式
label.setStyle({fontSize:"32px",color:"red"})
  1. 添加信息窗口
var opts = {width: 250,     // 信息窗口宽度height: 100,    // 信息窗口高度title: "Hello"  // 信息窗口标题
}
var infoWindow = new BMapGL.InfoWindow("World", opts);  // 创建信息窗口对象
map.openInfoWindow(infoWindow, map.getCenter());        // 打开信息窗口
  1. 移除覆盖物
    map.removeOverlay(覆盖物);

4.地图事件

  1. marker.addEventListener地图覆盖物都可以添加事件
    addEventListener方法有两个参数:监听的事件名称和事件触发时调用的函数。
  2. 通过removeEventListener方法移除对事件的监听
map.addEventListener('click', handleClick);
function handleClick (e) {alert('点击的经纬度:' + e.latlng.lng + ', ' + e.latlng.lat);var mercator = map.lnglatToMercator(e.latlng.lng, e.latlng.lat);alert('点的墨卡托坐标:' + mercator[0] + ', ' + mercator[1]);
}
map.removeEventListener('click', handleClick);

5.百度地图的搜索功能

1.通过local.search 搜索关键字

var local = new BMapGL.LocalSearch(map, {renderOptions: {map: map}})

6.如何在Vue项目中使用百度地图

方法一

  1. public/index.html script引入百度地图

  2. 在组件中定义data
    map: null, point: null, marker: null, keyword: "", local: null,

  3. mounted初始化项目

// 初始化地图this.map = new window.BMapGL.Map(this.$refs.map);// 准备一个中心点(经度,纬度)this.point = new window.BMapGL.Point(116.404, 39.915);// 设置中心点和缩放级别this.map.centerAndZoom(this.point, 15);// 鼠标滚轮缩放this.map.enableScrollWheelZoom(true);//添加一个点this.marker = new window.BMapGL.Marker(this.point);//添加覆盖物this.map.addOverlay(this.marker);// 百度地图API功能this.local = new window.BMapGL.LocalSearch(this.map, {renderOptions: {map: this.map}});},
  1. 监听数据变化,更新地图
watch: {keyword:{handler() {if (this.keyword === "") {this.local.clearResults()this.map.centerAndZoom(this.point, 15);} else {this.local.search(this.keyword)}}}}

方法二

  1. 可以通过vue地图插件,vue-baidu-map 170-基于Vue2的百度地图组件库。官网是dafork

3.百度地图的案例

  1. 基础的地图案例
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#container{width: 800px;height: 600px;}</style><!-- 01 导入js --><script src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=KHp5uI3NGByiMP20lWf2dEMCWUbYuS6c"></script></head><body><!-- 准备容器 --><div id="container"></div><script>// 初始化地图var map = new BMapGL.Map("container")// 准备一个中心点(经度,纬度)var point = new BMapGL.Point(116.404, 39.915);// 设置中心点和缩放级别map.centerAndZoom(point, 15); // 鼠标滚轮缩放map.enableScrollWheelZoom(true);// 不要去记忆,要去官网粘贴复制</script></body>
</html>

  1. 地图控件案例
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#container{width: 800px;height: 600px;}</style><!-- 01 导入js --><script src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=g2DVs4pVwq1DDviUCkXgMDK9ujPx9d5B"></script></head><body><!-- 准备容器 --><div id="container"></div><script>// 初始化地图var map = new BMapGL.Map("container")// 准备一个中心点(经度,纬度)var point = new BMapGL.Point(116.404, 39.915);// 设置中心点和缩放级别map.centerAndZoom(point, 15); // 鼠标滚轮缩放map.enableScrollWheelZoom(true);// 不要去记忆,要去官网粘贴复制var scaleCtrl = new BMapGL.ScaleControl();  // 添加比例尺控件map.addControl(scaleCtrl);var zoomCtrl = new BMapGL.ZoomControl();  // 添加缩放控件map.addControl(zoomCtrl);var cityCtrl = new BMapGL.CityListControl();  // 添加城市列表控件map.addControl(cityCtrl);</script></body>
</html>


3. 添加点案例

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#container{width: 800px;height: 600px;}</style><!-- 01 导入js --><script src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=g2DVs4pVwq1DDviUCkXgMDK9ujPx9d5B"></script></head><body><!-- 准备容器 --><div id="container"></div><script>// 初始化地图var map = new BMapGL.Map("container")// 准备一个中心点(经度,纬度)var point = new BMapGL.Point(113.665,34.784);// 设置中心点和缩放级别map.centerAndZoom(point, 15); // 鼠标滚轮缩放map.enableScrollWheelZoom(true);// 添加一个点var marker =new BMapGL.Marker(point);// 添加覆盖物map.addOverlay(marker); // 存储多个点var line = [];// 存储标记var markers = [];// 监听事件map.addEventListener("click",e=>{// 创建点var  p = new BMapGL.Point(e.latlng.lng,e.latlng.lat);// 创建标记var  m = new BMapGL.Marker(p);markers.push(m);// 添加标记map.addOverlay(m);// 存储点line.push(p);})map.addEventListener("dblclick",e=>{// 把第0个点放入到最后面line.push(line[0]);// 创建多边形先var polygone = new BMapGL.Polygon(line,{fillColor:"red",strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5})// var polyline = new BMapGL.Polyline(line,{strokeStyle:"dashed",strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5});// 添加线// map.addOverlay(polyline);map.addOverlay(polygone);// 清空点的列表line = [];// stroke线,Color颜色,Weight粗细,OPacity透明度// 清空点markers.forEach(item=>map.removeOverlay(item));// 清空点markers = [];})var circle = new BMapGL.Circle(point,2000,{strokeColor:"green"});map.addOverlay(circle);</script></body>
</html>

  1. 添加标注案例
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#container{width: 800px;height: 600px;}</style><!-- 01 导入js --><script src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=g2DVs4pVwq1DDviUCkXgMDK9ujPx9d5B"></script></head><body><!-- 准备容器 --><div id="container"></div><script>// 初始化地图var map = new BMapGL.Map("container")// 准备一个中心点(经度,纬度)var point = new BMapGL.Point(113.665,34.784);// 设置中心点和缩放级别map.centerAndZoom(point, 15); // 鼠标滚轮缩放map.enableScrollWheelZoom(true);// 添加一个点var marker =new BMapGL.Marker(point);// 添加覆盖物map.addOverlay(marker); // 创建标签var label = new BMapGL.Label("中国前端学习基地", {       // 创建文本标注position: point,                          // 设置标注的地理位置offset: new BMapGL.Size(0, 0)           // 设置标注的偏移量})  // 添加标签map.addOverlay(label);                        // 将标注添加到地图中// 设置标签的样式label.setStyle({fontSize:"32px",color:"red"})</script></body>
</html>

  1. 信息窗口案例
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#container{width: 800px;height: 600px;}</style><!-- 01 导入js --><script src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=g2DVs4pVwq1DDviUCkXgMDK9ujPx9d5B&output=jsonp"></script></head><body><!-- 准备容器 --><div id="container"></div><script>// 初始化地图var map = new BMapGL.Map("container")// 准备一个中心点(经度,纬度)var point = new BMapGL.Point(113.665,34.784);// 设置中心点和缩放级别map.centerAndZoom(point, 15); // 鼠标滚轮缩放map.enableScrollWheelZoom(true);// 添加一个点var marker =new BMapGL.Marker(point);// 添加覆盖物map.addOverlay(marker); var opts = {width: 250,     // 信息窗口宽度height: 200,    // 信息窗口高度title: "学好前端,月薪过万"  // 信息窗口标题}// 信息窗口var infoWindow = new BMapGL.InfoWindow(`<p>前端很简单只有<strong>js</strong></p><img src="https://gimg3.baidu.com/search/src=http%3A%2F%2Fpics6.baidu.com%2Ffeed%2F37d12f2eb9389b50d7a9ec85016fcad6e6116e7c.jpeg%40f_auto%3Ftoken%3Db6954495aabfec6648f5a7b29905e75e&refer=http%3A%2F%2Fwww.baidu.com&app=2021&size=f360,240&n=0&g=0n&q=75&fmt=auto?sec=1667322000&t=622767397570980eb03b5acecd03756a" width="200">`, opts);  // 创建信息窗口对象map.openInfoWindow(infoWindow,point);        // 打开信息窗口//  map.getCenter() 获取到地图的中心位置marker.addEventListener("click",e=>{// 单击显示map.openInfoWindow(infoWindow,point);    })</script></body>
</html>

  1. 添加搜索功能
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#container{width: 800px;height: 600px;}</style><!-- 01 导入js --><script src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=g2DVs4pVwq1DDviUCkXgMDK9ujPx9d5B&output=jsonp"></script></head><body><input type=""  value="" onchange="search(this)" /><!-- 准备容器 --><div id="container"></div><script>// 初始化地图var map = new BMapGL.Map("container")// 准备一个中心点(经度,纬度)var point = new BMapGL.Point(113.665,34.784);// 设置中心点和缩放级别map.centerAndZoom(point, 15); // 鼠标滚轮缩放map.enableScrollWheelZoom(true);// 添加一个点var marker =new BMapGL.Marker(point);// 添加覆盖物map.addOverlay(marker); // 创建一个本地搜索var local = new BMapGL.LocalSearch(map, {renderOptions:{map: map}});function search(e){// 表单值发生变化时候进行搜索local.search(e.value);}</script></body>
</html>


以上就是关于百度地图的知识点啦,不积跬步无以至千里,能耐心看完这篇博客,说明你是一个有潜力的人,想了解更多,建议多翻看官方文档。

百度地图使用的详细教程相关推荐

  1. web百度离线地图开发(详细教程)2019

    web百度离线地图开发(详细教程) 需求情景 主要参考 开发步骤 一.JS API文件下载 二.修改API文件 1.屏蔽ak验证 2.设置引用本地资源路径 3.下载本地资源 4.引用本地资源 三.加载 ...

  2. 百度地图API的使用教程以及案例

    百度地图API的使用教程以及案例 一.注册 百度地图:掌握当前的位置在网页显示位置,插入地图 拖拽,点击事件. 注意:定位 距离 公交 不关心 官网: 点我进入百度地图官网 应用场景:网页插入百度地图 ...

  3. 百度地图api根据详细地址反查坐标

    用百度地图api根据详细地址反查坐标 /*** 根据详细地址反查坐标* @param args*/public static void main(String[] args) {String addr ...

  4. 百度地图安卓版详细接入流程解读(获取密钥详解)

    百度地图安卓版详细接入流程解读 一.接入Android地图SDK 1.1 功能介绍: 1.2 接入百度地图前的准备 1.1.1 访问官网,并下载开发包 1.1.2 获取开发密钥 1.1.3 项目环境搭 ...

  5. Android之百度地图定位最详细使用总结

    Android之百度定位                         如果项目里面有定位功能的话,一般还是觉得蛮高大上的,我们项目用的百度定位,到网上找了很多资料,很多都不全面,很多博客都没有小伙 ...

  6. 百度地图 截图java_[Java教程]百度地图API 简单使用

    [Java教程]百度地图API 简单使用 0 2015-08-24 19:00:12 最近项目上需要用到百度地图进行导航,参考百度地图API完成一个例子.API地址:http://developer. ...

  7. 用百度地图sdk返回详细地址描述

    入职新公司之后,需要对现有的手机项目进行改版 第一个改版就是在应用中添加定位的功能,可以用百度地图和高德地图sdk实现. 要求:gps或者网络定位到当前位置,取精度高的位置并返回详细地址描述 先来看看 ...

  8. cms是什么意思啊_织梦CMS网站如何自动提交百度快速收录(详细教程)

    前不久,站长们发现百度搜索资源平台把链接提交"的功能改为"普通收录",同时新增了"快速收录"的功能.普通收录,我相信很多站长们都知道怎么去提交,但是快 ...

  9. 点击百度地图获取位置详细信息(点击获取当前点击位置信息)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

最新文章

  1. 《计算机图形学》2.1.7 立体感和虚拟现实系统
  2. oce专项认证 oracle_获得Oracle认证对拓展职业前景的影响
  3. VB自定义函数加 和 ;
  4. 潍职e校帮APP功能简介
  5. Sobel算子及cvSobe
  6. 在职场想要涨薪升职,需要打造个人品牌
  7. 1199: [HNOI2005]汤姆的游戏 - BZOJ
  8. 【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件
  9. 2019 送给每位读者的几点拙见
  10. 量子计算机美国华裔科学家,量子计算机很神?18岁华裔少年用经典计算机算得一样快...
  11. 页面加载完后直接弹窗或者跳转页面
  12. 联想服务器r525维修,扩展性强易管理 联想R525 G2服务器拆解
  13. android addr2line使用
  14. 毕业论文/分页符/段前2行没用
  15. Myscript 转换
  16. 建行u盾弹不出来_如果建行网银盾无法识别怎么办,不要怕,只需几招就搞定...
  17. 苦难是屈辱,还是财富?
  18. uniApp_canvas电子签字
  19. 《统计学习方法》 第九章 EM算法(原理+代码)
  20. 谷歌开源!一个格式化 Python 代码的好帮手!

热门文章

  1. cdsn cbi_CBI的完整形式是什么?
  2. Microsoftware Project 的安装和使用不需要连接project server
  3. think php5.1案例教程,Thinkphp5.1进阶与实战
  4. C# wpf 使用WriteableBitmap渲染视频
  5. vue3自定义全局指令(过滤前后空格,输入框自动聚焦,点击复制内容到粘贴板)
  6. 短视频直播平台第三方特效SDK完整接入教程
  7. [转]鸡头,风尾,如何抉择,年终前跳槽的思考
  8. WMI使用小工具——WMI代码生成器(转)
  9. C#.NET使用TTS引擎实现文语转换
  10. 【资源共享】好用的视觉软件Adaptive Vision Studio