百度地图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,
  };
  // 初始化GroundOverlay
  var 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绘制完后,获取路线的point
    driving.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);

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/664530.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文简述「低代码」到底是什么?

低代码是什么&#xff1f;低代码原理是什么&#xff1f;低代码的组成要素有哪些&#xff1f;低代码应用场景有哪些&#xff1f;低代码的优势是什么&#xff1f;低代码开发平台与传统开发方法的区别&#xff1f;本文是本人和团队从业十年来的经验结晶&#xff0c;全文3000&#…

ChatTTS,语气韵律媲美真人的开源TTS模型,文字转语音界的新魁首,对标微软Azure-tts

前两天 2noise 团队开源了ChatTTS项目&#xff0c;并且释出了相关的音色模型权重&#xff0c;效果确实非常惊艳&#xff0c;让人一听难忘&#xff0c;即使摆在微软的商业级项目Azure-tts面前&#xff0c;也是毫不逊色的。 ChatTTS是专门为对话场景设计的文本转语音模型&#x…

Python中的 Lambda 函数

大家好&#xff0c;在 Python 编程的世界里&#xff0c;有一种功能强大却不常被提及的工具&#xff0c;它就是 Lambda 函数。这种匿名函数在 Python 中拥有着令人惊叹的灵活性和简洁性&#xff0c;却常常被许多开发者忽视或者只是将其当作一种附加功能。Lambda 函数的引入&…

FPGA DMA IP核使用指南

摘要 本文旨在介绍FPGA中DMA(Direct Memory Access)IP核的使用,包括其基本框架、测试代码编写以及仿真波形的分析。DMA是一种允许外围设备直接与内存进行数据交换的技术,无需CPU的介入,从而提高了数据传输的效率。 1. 引言 在现代FPGA设计中,DMA IP核因其…

(1+X)Java程序设计高级(一)

Throwable&#xff1a;异常的基类&#xff0c;所有异常都继承自 java.lang.Throwable 类&#xff0c;Throwable 类有两个直接子类&#xff1a;Error 类和 Exception 类。Error&#xff1a;是 Java 应用程序本身无法恢复的严重错误&#xff0c;应用程序不需要捕获、处理这些严重…

Java基础语法规范

语法规范 public class HelloWorld{ //类名&#xff1a; 1. 首字母要大写 2. 源文件名与类名相同// 单行注释/* 多行注释除这两个之外还有文档注释。不重要* /public static void main (String[] args){ /* 1. main()⽅法是类体中的主⽅法&#xff0c;该⽅法从{开始到}结束…

OpenEuler 的安装过程记录

一、下载openEuler镜像 1.2 打开官网&#xff0c;选择openEuler23.09 1.3 选择架构、场景以及软件包类型 初次使用的话基本上都是先安装虚拟机&#xff0c;我们大部分主机都是x86_64架构&#xff0c;场景的话就选服务器&#xff0c;软件版类型选择标准版&#xff0c;可以安装图…

两数之和-第13届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第76讲。 两数之和&#xf…

基恩士激光 速度 曝光等关系

一、基恩士 CtrlN 二、速度设置 计算扫描速度 曝光时间&#xff1a; 1:1 相机点间隔是0.025 &#xff0c;我们要扫描的图像也是1&#xff1a;1的话&#xff0c;速度可以为 采样周期我们设定为3K&#xff0c;假如我们的7000行就够了 速度V0.025&#xff08;线间隔&#xff0…

【python】OpenCV—Color Detection

学习来自 如何使用 OpenCV Python 检测颜色 import cv2 import numpy as npdef red_hsv(img, saveFalse):lower_hsv1 np.array([0, 175, 20])higher_hsv1 np.array([10, 255, 255])lower_hsv2 np.array([170, 175, 20])higer_hsv2 np.array([10, 255, 255])mask1 cv2.inR…

小家电增速超预期!赛盈分销谈市场发展机会,助力企业开拓新商机!

在家庭和商业场景的高需求下&#xff0c;小家电又成为了海外消费新宠。 Statista的数据显示&#xff0c;2023年全球小家电的市场规模达到了2430亿美元&#xff0c;预计未来的4年里市场年复合增长率为4.65%&#xff0c;到2028年市场规模将增长至3050亿美元。 特别是欧美和东南亚…

小短片创作-理论知识(四)

1、PBR材质基础参数 1.PBR材质的特征&#xff1a;BaseColor&#xff0c;Roughness&#xff0c;Metallic&#xff0c;Normal&#xff0c;Specular 2.BaseColor&#xff08;Albedo&#xff09;&#xff1a;不包含光照信息 3.Roughness&#xff08;粗糙度&#xff09;&#xff…

Ubuntu (18.04) _Mysql (8.0.X)设置密码强度

首先 查看是否有密码强度插件&#xff1a; SHOW PLUGINS; 如果没有&#xff0c;则安装 install plugin validate_password soname validate_password.so; 再次查看,会看到密码强度插件已开 其次 查看密码强度具体配置 show variables like validate_password%; validate…

JVM思维导图

帮助我们快速整理和总结JVM相关知识&#xff0c;有结构化认识和整体的思维模型 JVM相关详细知识和面试题

农业大模型:关键技术、应用分析与发展方向

&#xff3b;目的/意义&#xff3d; 近年来&#xff0c;人工智能在农业领域的应用取得了显著进展&#xff0c;但仍面临诸如模型数据收集标记困难、模型泛化能力弱等挑战。大模型技术作为近期人工智能领域新的热点技术&#xff0c;已在多个行业的垂直领域中展现出了良好性能&…

【EFK日志系统】在kibana操作索引模板、生命周期、管道等

kibana界面设置 管道生命周期索引模板索引模式注意事项 之前已经搭建好了es集群、es-head信息面板、kibana、filebeat和metricbeat&#xff0c;但是其中的索引模板等信息你在kibana界面暂时看不到 接下来我们设置索引模式、索引模板、生命周期、管道限制等&#xff0c;简单写一…

商用未来何时来?软银揭示量子计算商业应用现状

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨沛贤/浪味仙 排版丨沛贤 深度好文&#xff1a;3000字丨10分钟阅读 摘要&#xff1a;软银&#xff08;SoftBank&#xff09;先进技术研究所正在积极推进量子计算商业应用&#xff0c;借助与…

使用python优雅的将PDF转为Word

使用python优雅的将PDF转为Word 先装这个优雅的库 pip install pdf2docx然后运行下面优雅的代码&#xff0c;将pdf路径和docx路径修改 from pdf2docx import Converter # path pdf_file C:\\Users\\phl\\Desktop\\软件工程期末\\软件工程模拟试题5.pdf docx_file C:\\User…

HTTP/超文本传输协议(Hypertext Transfer Protocol)及HTTP协议通信步骤介绍和请求、响应阶段详解;

目录 一、HTTP/超文本传输协议 特点和功能 请求-响应模型 版本和扩展 安全性和加密 二、HTTP协议通信步骤介绍 三、请求、响应阶段详解 HTTP请求 HTTP响应 示例 一、HTTP/超文本传输协议 HTTP/超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff09;是…

对未知程序所创建的 PDF 文档的折叠书签层级全展开导致丢签的一种解决方法

对需要经常查阅、或连续长时间阅读的带有折叠书签的 PDF 文档展开书签层级&#xff0c;提高阅览导航快捷是非常有必要的。 下面是两种常用书签层级全展开的方法 1、 FreePic2Pdf 1 - 2 - 3 - 4 - 5 - 6&#xff0c;先提取后回挂 2、PdgCntEditor 载入后&#xff0c;直接保存…