当前位置: 首页 > news >正文

百度地图2

覆盖物

叠加层

添加叠加层

GroundOverlay(bounds: Bounds, opts: GroundOverlayOptions):地图上的地面叠加层。

Bounds(sw: Point, ne: Point):表示地理坐标的矩形区域。sw表示矩形区域的西南角,参数ne表示矩形区域的东北角。

GroundOverlayOptions:
在这里插入图片描述

 var map = new BMap.Map("map"); // 创建Map实例map.centerAndZoom(new BMap.Point(116.3964, 39.9093), 15);map.enableScrollWheelZoom();// 西南角和东北角var SW = new BMap.Point(116.29579, 39.837146);var NE = new BMap.Point(116.475451, 39.9764);var groundOverlayOptions = {opacity: 0.2,displayOnMinLevel: 10,displayOnMaxLevel: 14,};// 初始化GroundOverlayvar groundOverlay = new BMap.GroundOverlay(new BMap.Bounds(SW, NE),groundOverlayOptions);// 设置GroundOverlay的图片地址groundOverlay.setImageURL("1.png");map.addOverlay(groundOverlay);

在这里插入图片描述

热力图

推荐使用echarts配合百度地图使用,可以对热力图做更详细的配置。

 var map = new BMap.Map("map"); // 创建Map实例map.centerAndZoom(new BMap.Point(116.3964, 39.9093), 15);map.enableScrollWheelZoom();var points = [{ lng: 116.418261, lat: 39.921984, count: 50 },{ lng: 116.423332, lat: 39.916532, count: 51 },{ lng: 116.419787, lat: 39.930658, count: 15 },{ lng: 116.418455, lat: 39.920921, count: 40 },{ lng: 116.418843, lat: 39.915516, count: 100 },{ lng: 116.42546, lat: 39.918503, count: 6 },{ lng: 116.423289, lat: 39.919989, count: 18 },{ lng: 116.418162, lat: 39.915051, count: 80 },{ lng: 116.422039, lat: 39.91782, count: 11 },{ lng: 116.41387, lat: 39.917253, count: 7 },{ lng: 116.41773, lat: 39.919426, count: 42 },{ lng: 116.421107, lat: 39.916445, count: 4 },{ lng: 116.417521, lat: 39.917943, count: 27 },{ lng: 116.419812, lat: 39.920836, count: 23 },{ lng: 116.420682, lat: 39.91463, count: 60 },{ lng: 116.415424, lat: 39.924675, count: 8 },{ lng: 116.419242, lat: 39.914509, count: 15 },{ lng: 116.422766, lat: 39.921408, count: 25 },{ lng: 116.421674, lat: 39.924396, count: 21 },{ lng: 116.427268, lat: 39.92267, count: 1 },{ lng: 116.417721, lat: 39.920034, count: 51 },{ lng: 116.412456, lat: 39.92667, count: 7 },{ lng: 116.420432, lat: 39.919114, count: 11 },{ lng: 116.425013, lat: 39.921611, count: 35 },{ lng: 116.418733, lat: 39.931037, count: 22 },{ lng: 116.419336, lat: 39.931134, count: 4 },{ lng: 116.413557, lat: 39.923254, count: 5 },{ lng: 116.418367, lat: 39.92943, count: 3 },{ lng: 116.424312, lat: 39.919621, count: 100 },{ lng: 116.423874, lat: 39.919447, count: 87 },{ lng: 116.424225, lat: 39.923091, count: 32 },{ lng: 116.417801, lat: 39.921854, count: 44 },{ lng: 116.417129, lat: 39.928227, count: 21 },{ lng: 116.426426, lat: 39.922286, count: 80 },{ lng: 116.421597, lat: 39.91948, count: 32 },{ lng: 116.423895, lat: 39.920787, count: 26 },{ lng: 116.423563, lat: 39.921197, count: 17 },{ lng: 116.417982, lat: 39.922547, count: 17 },{ lng: 116.426126, lat: 39.921938, count: 25 },{ lng: 116.42326, lat: 39.915782, count: 100 },{ lng: 116.419239, lat: 39.916759, count: 39 },{ lng: 116.417185, lat: 39.929123, count: 11 },];var heatmapOverlay = new BMapLib.HeatmapOverlay({ radius: 20 });map.addOverlay(heatmapOverlay);heatmapOverlay.setDataSet({ data: points, max: 100 });//    heatmapOverlay.setOptions({"gradient":gradient})

在这里插入图片描述

添加微观图或自定义网格

TileLayer(opts: TileLayerOptions):向地图中添加自定义图层。

getTilesUrl(tileCoord: Pixel, zoom: Number) 向地图返回地图图块的网址

CopyrightControl():版权控件
addCopyright({id,content,bounds}) 添加版权信息。

 var map = new BMap.Map("map"); // 创建Map实例map.centerAndZoom(new BMap.Point(116.3964, 39.9093), 15);map.enableScrollWheelZoom();var tileLayer = new BMap.TileLayer({ isTransparentPng: true });tileLayer.getTilesUrl = function (tileCoord, zoom) {var x = tileCoord.x;var y = tileCoord.y;return "daifukuan.png"; //根据当前坐标,选取合适的瓦片图};map.addTileLayer(tileLayer);var copyCtrl = new BMap.CopyrightControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT,});copyCtrl.addCopyright({ id: 1, content: "版权说明:清华校园图片取自互联网" });map.addControl(copyCtrl);

在这里插入图片描述

自定义绘层

使用canvas自定义图层

 var map = new BMap.Map("map"); // 创建Map实例map.centerAndZoom(new BMap.Point(116.3964, 39.9093), 15);map.enableScrollWheelZoom();var canvasLayer = new BMap.CanvasLayer({update: update,});function update() {//this.canvas 获取的是地图,地图就是canvas绘制的var ctx = this.canvas.getContext("2d");if (!ctx) {return;}ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);var temp = {};ctx.fillStyle = "rgba(50, 50, 255, 0.7)";ctx.beginPath();//开始路径var data = [new BMap.Point(116.297047, 39.979542),new BMap.Point(116.321768, 39.88748),new BMap.Point(116.494243, 39.956539),];for (var i = 0, len = data.length; i < len; i++) {var pixel = map.pointToPixel(data[i]);//获取point在图中的位置,经纬度坐标转换为像素坐标ctx.fillRect(pixel.x, pixel.y, 30, 30); //绘制图形}}map.addOverlay(canvasLayer);

在这里插入图片描述

添加信息窗口

InfoWindow(content: String | HTMLElement, opts: InfoWindowOptions):创建一个信息窗实例。

InfoWindowOptions:
在这里插入图片描述

var map = new BMap.Map("map"); // 创建Map实例map.centerAndZoom(new BMap.Point(116.3964, 39.9093), 15);map.enableScrollWheelZoom();var marker = new BMap.Marker(new BMap.Point(116.3964, 39.9093)); // 创建标注map.addOverlay(marker); // 将标注添加到地图中var opts = {width: 200, // 信息窗口宽度height: 100, // 信息窗口高度title: "海底捞王府井店", // 信息窗口标题enableMessage: true, //设置允许信息窗发送短息message: "亲耐滴,晚上一起吃个饭吧?戳下面的链接看下地址喔~",};var infoWindow = new BMap.InfoWindow("地址:北京市东城区王府井大街88号乐天银泰百货八层",opts); // 创建信息窗口对象marker.addEventListener("click", function () {map.openInfoWindow(infoWindow, new BMap.Point(116.3964, 39.9093)); //开启信息窗口});

在这里插入图片描述

轨迹运动

单个点沿线运动

Icon(url: String, size: Size, opts: IconOptions)标注覆盖物所使用的图标。

DrivingRoute(location: :Map | Point | String, opts: DrivingRouteOptions) :创建一个驾车导航实例,location表示检索区域。
DrivingRouteOptions:
在这里插入图片描述
search(start: Point | LocalResultPoi, end: Point | LocalResultPoi):发起检索,显示一条公交线路。

setSearchCompleteCallback(callback: Function):设置检索结束后的回调函数。

getResults()返回最近一次检索的结果

getResults().getPlan(i: Number)返回索引指定的方案

.getResults().getPlan(i: Number)getRoute(i: Number) :返回方案中索引指定的线路。
.getResults().getPlan(i: Number)getRoute(i: Number).getPath():返回路线的地理坐标点数组。

marker.setPosition(position: Point):设置标注的地理坐标

 var map = new BMap.Map("map"); // 创建Map实例map.centerAndZoom(new BMap.Point(116.3964, 39.9093), 15);map.enableScrollWheelZoom();//1.设置起点和终点,小车var myP1 = new BMap.Point(116.380967, 39.913285); //起点var myP2 = new BMap.Point(116.424374, 39.914668); //终点var myIcon = new BMap.Icon("favicon.ico", new BMap.Size(32, 70), {//小车图片//offset: new BMap.Size(0, -5),    //相当于CSS精灵imageOffset: new BMap.Size(0, 0), //图片的偏移量。为了是图片底部中心对准坐标点。});//2.创建驾车实例,绘制路线var driving2 = new BMap.DrivingRoute(map, {renderOptions: { map: map, autoViewport: true },}); //驾车实例driving2.search(myP1, myP2); //显示一条公交线路//3.让小车运动var run = function () {// 3.1创建驾车实例,绘制路线var driving = new BMap.DrivingRoute(map); //驾车实例driving.search(myP1, myP2);//3.2绘制完后,获取路线的pointdriving.setSearchCompleteCallback(function () {var pts = driving.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得一系列点的数组[Point]var paths = pts.length; //获得有几个点//3.3 添加图形var carMk = new BMap.Marker(pts[0], { icon: myIcon });map.addOverlay(carMk);//3.4 设置标点的位置let i = 0;function resetMkPoint(i) {carMk.setPosition(pts[i]);if (i < paths) {setTimeout(function () {i++;resetMkPoint(i);}, 100);}}setTimeout(function () {resetMkPoint(5);}, 100);});};setTimeout(function () {run();}, 1500);

在这里插入图片描述

相关文章:

  • # SpringBoot 如何让指定的Bean先加载
  • 【贪心算法题记录】53. 最大子数组和
  • 天洑国产工业软件2024R1版本产品发布会顺利举办
  • Dynamics 365:安全的客户参与应用程序
  • HR人才测评,如何做中层管理人员的素质测评?
  • 数据库设计:实体关系图
  • 速盾:怎么查询cdn真实ip?
  • Check Point 安全网关任意文件读取漏洞复现(CVE-2024-24919)
  • spring自动配置
  • 智能台灯系统之PWM调光的优缺点
  • 销量逆袭!敦煌店铺如何靠自养号测评轻松引爆市场?
  • ROS for LabVIEW:实现LabVIEW与ROS的无缝集成
  • 探索 Ollama: 你的本地 AI 助手
  • Unreal Engine游戏引擎小白入门指南
  • 构建坚不可摧的Web安全防线:深入剖析二阶注入与全面防御策略
  • JavaScript-如何实现克隆(clone)函数
  • CentOS 7 修改主机名
  • CSS居中完全指南——构建CSS居中决策树
  • JavaScript新鲜事·第5期
  • JS字符串转数字方法总结
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • nodejs:开发并发布一个nodejs包
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Vue2 SSR 的优化之旅
  • Vue--数据传输
  • 观察者模式实现非直接耦合
  • 前端面试之CSS3新特性
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 学习使用ExpressJS 4.0中的新Router
  • AI算硅基生命吗,为什么?
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 湖北分布式智能数据采集方法有哪些?
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (12)Hive调优——count distinct去重优化
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (3)llvm ir转换过程
  • (6)设计一个TimeMap
  • (C语言)二分查找 超详细
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • .NET 5种线程安全集合
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net core控制台应用程序初识
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net2005怎么读string形的xml,不是xml文件。
  • .net和jar包windows服务部署