百度地图api-基本用法总结

2023-10-30

以下内容已录制
点击观看视频
在这里插入图片描述
还有更多好玩的百度地图效果展示
百度地图效果
在这里插入图片描述

百度地图api 一些常用的用法总结(笔记)

参考百度地图官方api:百度地图官方api
百度地图提供的拾取坐标: 百度地图提供的拾取坐标
注:百度地图api文档是真详细

加载地图前提:

  1. 申请百度地图账号
  2. 申请开发者填写开发者信息
  3. 申请AK 点击查看申请步骤

一、 加载地图

加载地图步骤

  1. 新建一个html页面
  2. 引入js
<script type="text/javascript" src="http://api.map.baidu.com/api?type=webgl&v=1.0&ak=申请的AK"></script>
  1. 写下样式
<style>
        html, body, #container {
            width: 100%;
            height: 100%;
            overflow: hidden;
            margin: 0;
            padding: 0
        }
</style>
  1. 创建地图容器元素
<div id="container"></div>
  1. 开始写js 初始化地图
//1.创建地图实例
var map = new BMapGL.Map("container");
//2.设置中心经纬度  这里我们使用BMapGL命名空间下的Point类来创建一个坐标点。Point类描述了一个地理坐标点,其中120.872845表示经度,32.021089表示纬度。(为南通濠河风景区坐标)
var point = new BMapGL.Point(120.872845, 32.021089);
//3.在创建地图实例后,我们需要对其进行初始化,BMapGL.Map.centerAndZoom()方法要求设置中心点坐标和地图级别。 地图必须经过初始化才可以执行其他操作 值一般是3-19
map.centerAndZoom(point, 15);

map.centerAndZoom(point, 15);的最终效果
值越大 地图越大
在这里插入图片描述

map.centerAndZoom(point, 10);的最终效果
值越小 地图越小
在这里插入图片描述

二、 添加控件

var map = new BMapGL.Map("container");//创建地图实例
var point = new BMapGL.Point(120.872845, 32.021089);//设置中心经纬度
map.centerAndZoom(point, 15);//初始化地图
map.enableScrollWheelZoom(true); //开启鼠标滚轮 地图可以进行放大 缩小
map.addControl(new BMapGL.ScaleControl()); // 添加比例尺控件 左下角显示
map.addControl(new BMapGL.ZoomControl());// 添加缩放控件 右下角显示
map.addControl(new BMapGL.CityListControl());  // 添加城市列表控件 左上角
map.addControl(new BMapGL.MapTypeControl());// 地图类型 右上角显示

2.1 开启鼠标滚轮

map.enableScrollWheelZoom(true); //开启鼠标滚轮 地图可以进行放大 缩小

2.2 添加比例尺控件

map.addControl(new BMapGL.ScaleControl()); // 添加比例尺控件 左下角显示

在这里插入图片描述

2.3 添加缩放控件

map.addControl(new BMapGL.ZoomControl());// 添加缩放控件 右下角显示
在这里插入图片描述

2.4 添加城市列表控件

map.addControl(new BMapGL.CityListControl()); // 添加城市列表控件 左上角
在这里插入图片描述

2.5 添加地图类型

map.addControl(new BMapGL.MapTypeControl());// 地图类型 右上角显示
可切换3D地球模式
在这里插入图片描述

三、 文本标注

3.1添加默认的文本标注

//向地图添加了一个文本标注,并使用默认的标注样式:
var content = "hello world";
var label = new BMapGL.Label(content, {       // 创建文本标注
    position: point,                          // 设置标注的地理位置
    offset: new BMapGL.Size(10, 20)           // 设置标注的偏移量
})
map.addOverlay(label);                        // 将标注添加到地图中

在这里插入图片描述

3.2添加自定义样式的文本标注

//地图添加大号 文本标注
var content = 'hello world';
var label = new BMapGL.Label(content, {       // 创建文本标注
    position: point,
    offset: new BMapGL.Size(10, 20)
})
map.addOverlay(label);                        // 将标注添加到地图中
label.setStyle({                              // 设置label的样式
    color: '#000',
    fontSize: '50px',
    border: '2px solid blue'
})

在这里插入图片描述

3.3添加文本标注监听

//监听标注事件
label.addEventListener("click", function () {
    alert("您点击了文本标注");
});

在这里插入图片描述

四、 地图添加标注点

4.1 添加默认标注

添加成功后 会有一个默认的红色的定位图标显示在地图中

//Marker是一个用来往地图上添加点标记的类。使用它将任何你希望用户看到的兴趣点标注在地图上。
//API提供了默认图标样式,您也可以通过Icon类来指定自定义图标。Marker的构造函数的参数为Point和MarkerOptions(可选)。
//注意:当您使用自定义图标时,标注的地理坐标点将位于标注所用图标的中心位置,您可通过Icon的offset属性修改标定位置。
var point = new BMapGL.Point(120.872845, 32.021089);
var marker = new BMapGL.Marker(point);        // 创建标注
map.addOverlay(marker);                     // 将标注添加到地图中

在这里插入图片描述

4.2 添加自定义图片 标注(应用较多)

//定义标注图标 通过Icon类可实现自定义标注的图标,下面示例通过参数MarkerOptions的icon属性进行设置,您也可以
//marker.setIcon()方法。
var myIcon = new BMapGL.Icon("../images/love.png", new BMapGL.Size(23, 25), {
    // 指定定位位置。
    // 当标注显示在地图上时,其所指向的地理位置距离图标左上
    // 角各偏移10像素和25像素。您可以看到在本例中该位置即是
    // 图标中央下端的尖角位置。
    anchor: new BMapGL.Size(10, 25),
    // 设置图片偏移。
    // 当您需要从一幅较大的图片中截取某部分作为标注图标时,您
    // 需要指定大图的偏移位置,此做法与css sprites技术类似。
    //imageOffset: new BMapGL.Size(0, 0 - 25)   // 设置图片偏移
});
//创建标注对象并添加到地图
var marker = new BMapGL.Marker(point, { icon: myIcon });
map.addOverlay(marker);

在这里插入图片描述

4.3 设置图标可拖拽

enableDragging: true//设置图标可拖拽

var marker = new BMapGL.Marker(point, {
	icon: myIcon,
	enableDragging: true//设置图标可拖拽
});

4.4 添加地图标注监听

点击标注 出发点击事件

marker.addEventListener("click", function () {
    alert("您点击了自定义标注");
});

五、信息窗口

5.1 添加信息窗口

var point = new BMapGL.Point(120.872845, 32.021089);
var opts = {
    width: 250,     // 信息窗口宽度
    height: 100,    // 信息窗口高度
    title: "Hello World"  // 信息窗口标题
}
let content = `<table><tr><td>1</td><td>2</td><td>3</td></tr></table>`;
var infoWindow = new BMapGL.InfoWindow(content, opts);  // 创建信息窗口对象
map.openInfoWindow(infoWindow, point);        // 打开信息窗口

//同时监听标注的点击事件
marker.addEventListener("click", function () {
    map.openInfoWindow(infoWindow, point);        // 打开信息窗口
});

在这里插入图片描述

六、 设置地图3D视觉+设置天空颜色

//设置地图3D视觉
map.setHeading(64.5);//旋转角度
map.setTilt(73);//地图倾斜
//设置天空颜色
map.setDisplayOptions({
    skyColors: ['rgba(186, 0, 255, 0)', 'rgba(186, 0, 255, 0.2)']//天空颜色
})

在这里插入图片描述

七、 交通流量图层

查看交通拥堵状况 红色为拥堵

var map = new BMapGL.Map("container");   // 创建地图实例
var point = new BMapGL.Point(121.441661, 31.173661);   // 创建点坐标
map.centerAndZoom(point, 15);                    // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true);                 // 开启鼠标滚轮缩放
map.setTrafficOn();                              // 添加交通流量图层

在这里插入图片描述

八、出行路线规划

8.1 驾车路线规划

传入起点和终点的两个ip地址,
可计算出驾车的距离和通行时间

var map = new BMapGL.Map("container");
map.centerAndZoom(new BMapGL.Point(121.187484, 31.869261), 12);
var output = '驾车需要:';
var start = new BMapGL.Point(121.187484, 31.869261);
var end = new BMapGL.Point(121.189752, 31.86958);
var driving = new BMapGL.DrivingRoute(map, {
    renderOptions: { map: map, autoViewport: true },
    onSearchComplete: function (results) {
        if (driving.getStatus() != BMAP_STATUS_SUCCESS) {
            return;
        }
        var plan = results.getPlan(0);
        output += '总时长:' + plan.getDuration(true);  //获取时间
        output += '总路程:' + plan.getDistance(true);  //获取距离
        $('#result').css('display', 'block');
        $('#result').html(output);
    },
});
driving.search(start, end);

在这里插入图片描述

8.2 公交路线规划

传入起点和终点的两个ip地址,
可计算出公交行驶的距离和通行时间

var map = new BMapGL.Map('container');
map.centerAndZoom(new BMapGL.Point(121.171548, 31.884098), 12);
var output = '坐公交车需要:';
var transit = new BMapGL.TransitRoute(map, {
    renderOptions: { map: map },
    onSearchComplete: function (results) {
        if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
            return;
        }
        var plan = results.getPlan(0);
        output += '总时长:' + plan.getDuration(true);  //获取时间
        output += '总路程:' + plan.getDistance(true);  //获取距离
        $('#result').css('display', 'block');
        $('#result').html(output);
    },
});
var start = new BMapGL.Point(121.171548, 31.884098);
var end = new BMapGL.Point(121.193466, 31.873612);
transit.search(start, end);

在这里插入图片描述

8.3 步行路线规划

传入起点和终点的两个ip地址,
可计算出步行的距离和通行时间

var map = new BMapGL.Map("container");
map.enableScrollWheelZoom();
map.centerAndZoom(new BMapGL.Point(121.187484, 31.869261), 12);
var output = '步行需要:';
var walking = new BMapGL.WalkingRoute(map, {
    renderOptions: { map: map, autoViewport: true },
    onSearchComplete: function (results) {
        if (walking.getStatus() != BMAP_STATUS_SUCCESS) {
            return;
        }
        var plan = results.getPlan(0);
        output += '总时长:' + plan.getDuration(true);  //获取时间
        output += '总路程:' + plan.getDistance(true);  //获取距离
        $('#result').css('display', 'block');
        $('#result').html(output);
    },

在这里插入图片描述

8.4 骑行路线规划

传入起点和终点的两个ip地址,
可计算出骑行的距离和通行时间

var map = new BMapGL.Map("container");
map.centerAndZoom(new BMapGL.Point(121.187484, 31.869261), 12);
var output = '骑行需要:';
var riding = new BMapGL.RidingRoute(map, {
    renderOptions: {
        map: map,
        autoViewport: true
    },
    onSearchComplete: function (results) {
        if (riding.getStatus() != BMAP_STATUS_SUCCESS) {
            return;
        }
        var plan = results.getPlan(0);
        output += '总时长:' + plan.getDuration(true);  //获取时间
        output += '总路程:' + plan.getDistance(true);  //获取距离
        $('#result').css('display', 'block');
        $('#result').html(output);
    },
});
var start = new BMapGL.Point(121.187484, 31.869261);
var end = new BMapGL.Point(121.189752, 31.86958);

在这里插入图片描述

九、 个性化地图

效果
在这里插入图片描述

登录 百度地图api官网
点击开发文档->个性化地图编辑器
在这里插入图片描述
开始使用
在这里插入图片描述
点击新建
在这里插入图片描述
选一个免费的模板 点击使用
在这里插入图片描述
点击编辑JSON 复制所有json代码
在这里插入图片描述
将复制的json对象赋值给styleJson 对象
map.setMapStyleV2({ styleJson: styleJson });即可渲染地图

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

百度地图api-基本用法总结 的相关文章

  • 2023华为OD机试真题【模拟商场优惠打折】

    题目内容 模拟商场优惠打折 有三种优惠券可以用 满减券 打折券和无门槛券 满减券 满100减10 满200减20 满300减30 满400减40 以此类推不限制使用 打折券 固定折扣92折 且打折之后向下取整 每次购物只能用1次 无门槛券
  • How Easy Is It to Switch Off Power?

    原文链接 https community cadence com cadence blogs 8 b lp posts how easy to switch off power How easy is it to switch off po
  • go进行大文件上传

    读取前端上传的文件 创建一个临时文件夹保存上传的切片数据 前端上传完成后发送请求数据到后端合并文件 合并数据时一定要确保文件的顺序 var dir os Getwd var uploadPath path Join dir uploads
  • 小知识·编码格式和转换方法

    什么是编码格式 从一个小问题引入 我们在学习C语言的时候 有一道必做的题目是将大写字母转换成小写 相信有点基础的同学都能不加思索的写出下面的代码 chartoLower char upper if upper gt A upper lt Z
  • Idea 快速生成方法返回值的操作

    快捷键 Ctrl Alt v 补充 idea 自动生成返回值以及返回值的类型 在idea中写代码时 只需要写后半部分即可 即 等号后面的那一部分 剩下的都交给idea好了 idea会自动判断返回值的类型 以及建议返回值的名称 参考文献 ht
  • I/O控制方式——通道控制方式

    一 定义 通道是一个独立于 CPU的专管输入 输出控制的处理机 它控制设备与内存直接进行数据交换 它有自己的通道指令 这些通道指令受CPU启动 并在操作结束时向CPU发中断信号 二 原理 2 1 通道控制方式的引入 通道控制方式与DMA控制
  • ChatGPT模型大战:讯飞星火认知大模型、百度文心一言能否击败GPT-4(含个人内测体验测试邀请码获取方法,2小时申请成功,亲测有效)

    目录 前言 讯飞星火内测申请 申请方式 内测体验 登录界面 百度内测申请 内测对比 基本问答 事实性问答 科普文写作 小红书文案 项目计划撰写 古文理解 模型的常识能力和反事实推理 代码理解 法律相关 广告话术 数字排序 数值计算 推理解题
  • 华为OD机试 - 优雅子数组( Python)

    题目描述 如果一个数组中出现次数最多的元素出现大于等于K次 被称为 k 优雅数组 k也可以被称为优雅阈值 例如 数组1 2 3 1 2 3 1 它是一个3 优雅数组 因为元素1出现次数大于等于3次 数组 1 2 3 1 2 就不是一个3 优
  • ChatGPT怎么用?这几个技巧让你快速完成各种工作!来吧展示!

    ChatGPT成为全球热议话题 月活用户突破1亿 如何利用ChatGPT快速完成工作 小编分享使用技巧 ChatGPT 一 ChatGPT能够做什么 想要利用ChatGPT完成工作 首先需要了解它是一款什么样的AI工具 以及它能够为您提供哪
  • vue-cli3 less全局变量

    首先一定要确定安装了vue cli3X以上 接着直接运行这哥命令就可以了 vue add style resources loader 如果上面的没反应 请再一次确实是不是升级到了vue cli3 x以上 如果安装失败或者提示错误 可以试着
  • Hocate Ajax 框架介绍

    hocate AJAX框架参照了目前很多框架的设计思路 汲取各个框架其中的优点 摒弃了一些操作和编码的不便性 旨在提供一个方便快捷易编码的ajax框架 1 java对象到JSON对象的自动映射 2 对象自动JSON化 可以在页面中直接调用
  • LCLFramework框架 1.1 Pre-Alpha 源码公布

    使用开发框架的好处 1 框架在技术上为软件系统提供了完整的模式实践2 框架为团队提供了合理可行的软件开发过程模式3 框架的应用大大提高了团队的开发效率 团队只需要关注与领域相关的业务实现 而无需关注具体的技术实现4 框架的应用大大降低了出现
  • Web页面广告设计

    本文主要介绍如何实现一个能够自行删除 同时在页面上固定位置显示广告的Web页面设计的方法 一 需求分析 我们需要在Web页面中添加一个广告 要求该广告显示在页面的侧边 占据三屏高度 同时该广告页面能够自行删除 且需要弹出一个位于页面右下角的
  • 1流明等于多少lux_1勒克斯=多少流明

    展开全部 1勒克斯 1流明的光通量均匀分布在1平方62616964757a686964616fe58685e5aeb931333366303832米面积上的照度 即 1lux 1lm 平方米 勒克斯是照度的单位 符号为lux或lx 流明是光
  • 26进制

    问题 在Excel 2003中 用A表示第1列 B表示第2列 Z表示第26列 AA表示第27列 AB表示第28列 以此类推 请写一个函数 输入用字母表示的列号编码 输出它是第几列 思路 这是一道关于进制的题目 其本质是把十进制数字用A Z表
  • Python openCV qt.qpa.plugin: could not find the qt platform plugin "cocoa" in "" 在Mac上的解决方案详解

    这是一个不断踩坑的过程 首先 我开始的诉求是希望可以利用 openCV 实时显示电脑摄像头获取的内容 开始用了 cv2 imshow 结果不行 报错 qt qpa plugin Could not find the Qt platform
  • Windows C盘清理之用户数据清理记录

    今天 突然发现C盘空间只剩余3 4G了 我的电脑总共500G 化了6个分区 如下 80G给了C盘 系统盘 100G给了D盘 软件盘 200G给了E盘 虚拟机盘 20G给F盘 workspace盘 20G给G盘 文档盘 其余给了H盘 MISC
  • 超乎想像的宇宙

    转至youtube 超乎想像的宇宙 1 無限空間 720p The Fabric of the Cosmos 1 What is Space http youtu be dOVp8FypiTo list PL6qRRMFI035qD5 zZ

随机推荐

  • 网络编程之五种I/O模型

    在网络编程中有5中I O模型 今天我们就来聊一聊这5中模型的原理和区别 1 阻塞I O模型 阻塞I O模型通信示意图如下 阻塞I O模型通信示意图 当用户调用了recvfrom这个系统调用后 内核就开始准备数据 对于网络I O来说 很多时候
  • 记录安装mysql5.6到centos6上面的经历

    下载MySql rpm安装包 国外网站下载太慢 国内镜像下载吧 http mirrors sohu com mysql MySQL 5 6 注意下载 el6 版本的包 el7 是linux 7上使用的 不要直接就奔最新版本去了 主要需要下载
  • 自定义注解记录操作日志

    自定义注解 自定义注解首先要知道元注解 也就是注解的注解 是jdk内置的 元注解有四种 Retention 注解保留策略 Retention RetentionPolicy SOURCE 仅存在于源码中 Retention Retentio
  • 本地迅速创建ftp服务器,让其他人获取(下载)你的文件

    我们现在的目的是想要别人共享我们的文件 我们在自己的电脑上创建一个文件服务器ftp 然后别人在浏览器中访问我们的ip地址 或自定义的域名 即可达到别人快速下载我们的资源的目的 1 创建ftp用户 依次点击我的电脑 管理 或者直接cmd下执行
  • 手把手教学,免费不限速内网穿透,zerotier值得拥有

    文章目录 常见的内网穿透原理 frp代理 p2p直连 zero安装说明 1 登录zerotier管理平台创建一个网络 2 windows安装zerotier 并加入到网络 3 linux设备加入到网络 4 安卓设备加入到网络 访问测试 常见
  • QString类型装换为const char*的方法

    QString NewBuildProject ProjectNameLineEdit text toStdString c str 说明 1 NewBuildProject ProjectNameLineEdit text 输出为QStr
  • java实时监控数据变化_银行监控报警系统性能提升50倍,用的全是开源组件

    作者介绍 胖亚鹏 监控技术领域专家 具备十余年监控系统建设经验 精通主流商用及开源监控软件产品的集成应用 专注于监控工具建设 全面支撑传统架构和容器云 分布式架构下的监控管理 探索研究智能化监控 推动分布式架构下以大数据 人工智能技术为基础
  • 【LeetCode-简单】39. 组合总和 (图文详解)

    建议 完全不了解递归的同学 先去学习一下递归 题目 题目地址 https leetcode cn problems combination sum 示例 方法1 回溯算法 思路 来自视频https www bilibili com vide
  • 12.14黄金白银TD行情怎么看;美原油最新交易操作指导

    黄金最新资讯 消息面 周二 12月14日 国际金价上涨 但美元同时走强限制了金价涨势 投资者等待美联储今日晚些时候召开的会议 从中寻找美联储如何加快结束经济刺激措施 除此之外 欧洲央行英国央行也将在本周举行会议 美联储将在当日稍晚开始为期两
  • MQ怎么保证消息不丢失?

    在我们做业务时候很多时候需要用到消息队列 那消息队列中是怎么保证消息的可靠性的 我们今天学习目前主流的消息队列是怎么保证消息可靠性 1 RocketMQ 2 Kafka 3 RabbitMQ RocketMQ 持久化存储 RocketMQ
  • uviewUI中u-popup组件show属性显示和不显示控制问题

    问题 在uviewUI中u popup组件show并不是用来控制弹出层的显示与否 而是用v model来进行控制 注意查看官方的API 解决 在控件上面加入v model控制即可
  • 【C++】 C & C++ 内存管理

    文章目录 C C 内存分布 C 内存管理方式 1 操作内置类型 2 操作自定义类型 operator new 与 operator delete 定位 new C C 内存分布 C 和 C 的内存分布没什么区别 C 是基于 C 语言的 如下
  • bind 用法小技巧

    正常来说 我们写一个回调 因为这个回调方法是在组件内部调用的 我们没有办法把参数传过去 如果 rightMethod 要用到 resp 或者 review 参数的话 可能就要建全局参数 this 的指向也会有问题 很尴尬 使用 bind
  • 脉.濒湖脉学七言诀

    脉学七言诀 浮 脉 体状诗 浮脉惟从肉上行 如循榆荚似毛轻 三秋得令知无恙 久病逢之却可惊 相类诗 浮如木在水中浮 浮大中空乃是芤 拍拍而浮是洪脉 来时虽盛去悠悠 浮脉轻平似捻葱 虚来迟大豁然空 浮而柔细方为濡 散似杨花无定踪 主病诗 浮脉
  • LDV7语音识别模块 LD3320A语言识别说话踩坑

    说真的气到我了 在家里说了一个小时小杰 因为这个模块默认叫说什么 小杰 我人都裂开来这个小杰 在家里说了半个小时小杰 我妈问我怎么了最后解决问题了我来说一下 1 离咪头要远一点 这样说话识别率比较高 默认程序 说明文档说要靠着咪头说话 我个
  • Ubuntu无法检测到外接显示器,无法打开nvidia-settings或者打开nvidia-settings时有报错,ubuntu-drivers devices命令后无显示

    我安装了 nvidia 440 显卡驱动之后 出现了以下问题 手动安装的nvidia 440 Ubuntu无法检测到外接显示器 无法打开nvidia settings或者打开nvidia settings时有报错 ubuntu driver
  • crontab 配置问题 没有执行php文件

    设置了一个crontab 发现不执行 查找了原因是因为PHP的路径不对 首先 确认 PHP 可执行文件的位置 对于大多数 Linux 系统 几乎肯定是 usr bin php 如果不确定其位置 请在命令行中键入 which php 并查看响
  • com.android.ddmlib.AdbCommandRejectedException: device offline Error while Installing APK解决

    com android ddmlib AdbCommandRejectedException device offline Error while Installing APK 这个问题是adb被杀死了 重新启动一下就可以 有三种方法 一
  • STM32之串口

    文章目录 一些概念 串口初始化 1 时钟使能 2 串口复位 3 GPIO模式配置 4 串口参数初始化 5 初始化NVIC并开启中断 6 开启中断 7 使能串口 完整的初始化代码 中断函数 实验接收到A LED0亮 再接收到关 一些概念 并行
  • 百度地图api-基本用法总结

    以下内容已录制 点击观看视频 还有更多好玩的百度地图效果展示 百度地图效果 百度地图api 一些常用的用法总结 笔记 参考百度地图官方api 百度地图官方api 百度地图提供的拾取坐标 百度地图提供的拾取坐标 注 百度地图api文档是真详细