百度地图2

news2024/11/25 2:50:25

覆盖物

叠加层

添加叠加层

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);

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Redis]Hash类型

基本命令 hset命令 设置 hash 中指定的字段&#xff08;field&#xff09;的值&#xff08;value&#xff09; 返回值&#xff1a;添加的字段的个数&#xff08;注意是添加的个数&#xff0c;而不包括修改的&#xff09; hset key field value [field value ...] hget命令 …

ChatGPT-4o 有何特别之处?

文章目录 多模态输入&#xff0c;多模态输出之前的模型和现在模型对比 大家已经知道&#xff0c;OpenAI 在 GPT-4 发布一年多后终于推出了一个新模型。它仍然是 GPT-4 的一个变体&#xff0c;但具有前所未见的多模态功能。 有趣的是&#xff0c;它包括实时视频处理等强大功能&…

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…

QT 欧姆龙 fins协议 上位机程序

一个根据欧姆龙的FINS协议制作的上位机读取程序&#xff0c;功能如下&#xff1a; 能够增加、编辑、删除PLC的名称、IP地址与端口号。取编辑时间最新的六台显示在主界面中。数据存入 MYSQL 数据库&#xff0c;可以修改数据库名称、IP地址、端口号、登陆用户与密码。设置数据存…

eNSP学习——OSPF的DR与BDR

目录 相关命令 原理概述 实验内容 实验目的 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建基本的OSPF网络 3、查看默认情况下的DR/BDR状态 4、根据现网需求影响DR/BDR选举 相关命令 [R4]int g0/0/0 [R4-GigabitEthernet0/0/0]ospf network-type p2mp //在接…

如何识别并选择正规、优质的外汇交易平台?

外汇市场的日益繁荣吸引了越来越多的投资者&#xff0c;但同时也带来了众多外汇平台的涌现。如何在这些平台中筛选出正规、可信的平台&#xff0c;成为了每位外汇交易者必须面对的首要问题。以下&#xff0c;我们将为您揭示如何鉴别外汇平台真伪的几个关键方法&#xff1a; 首先…

移动端性能测试(android/ios)

solox官网 https://github.com/smart-test-ti/SoloX solox简介 实时收集android/ios性能的工具&#xff0c;Android设备无需Root&#xff0c;iOS设备无需越狱。有效解决Android和iOS性能的测试和分析挑战。 solox安装 环境准备 python安装3.10以上的 python官网下载地址…

Oracle Hint /*+APPEND*/插入性能总结

oracle append用法 Oracle中的APPEND用法主要用于提高数据插入的效率。 基本用法&#xff1a;在使用了APPEND选项后&#xff0c;插入数据会直接加到表的最后面&#xff0c;而不会在表的空闲块中插入数据。这种做法不需要寻找freelist中的free block&#xff0c;从而避免了在…

Facebook代运营 | Facebook广告投放步骤及要点

Facebook体量大&#xff0c;素材的更新频率快&#xff0c;通过Facebook进行广告投放的用户也越来越多&#xff0c;Facebook坐拥大量用户&#xff0c;同时有着非常科学的用户画像构建系统和推送机制&#xff0c;对于很多广告涉足的伙伴来说&#xff0c;更加的友好。 1. 创建广告…

2024.5.29晚训参考代码

因为本套题没有BFS例题&#xff0c;所以我先把BFS模板放着 #include<bits/stdc.h> using namespace std; int n,m;//n*m的棋盘 int dis[402][402]; bool vis[402][402]; int X[]{-2,-2,-1,-1,1,1,2,2};//偏移量的表 int Y[]{-1,1,-2,2,-2,2,-1,1};//定义一个数组&…

【工具】 MyBatis Plus的SQL拦截器自动翻译替换“?“符号为真实数值

【工具】 MyBatis Plus的SQL拦截器自动翻译替换"?"符号为真实数值 使用MyBatis的配置如下所示&#xff1a; mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl调用接口&#xff0c;sql日志打印如下&#xff1a; 参数和sql语句不…

Docker的数据管理(数据卷+数据卷容器)

文章目录 一、Docker的数据管理1、概述2、主要的技术&#xff08;三种数据挂载方式&#xff09;2.1、数据卷&#xff08;Volumes&#xff09;2.2、绑定挂载&#xff08;Bind mounts&#xff09;2.3、tmpfs挂载&#xff08;Tmpfs mounts&#xff09;2.4、之间的关系&#xff08;…

DBeaver连接Oracle报错:ORA-12514

Listener refused the connection with the following error:ORA-12514, TNS:listener does not currently know of service requested inconnect descriptor ———————————————— 1.报错信息2.配置正确结语 ———————————————— 如果是第一次连接Or…

「51媒体」媒体邀约全攻略

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体邀约全攻略可以概括如下&#xff0c;以确保流程的清晰性和完整性&#xff1a; 一、前期准备 明确目标&#xff1a;清晰定义活动的目标&#xff0c;例如增加曝光度、提高知名度、塑造…

FinalShell 配置SSH密钥登陆

转载请标明出处&#xff1a;http://blog.csdn.net/donkor_/article/details/139355489 文章目录 前言生成密钥服务器配置公钥本地配置私钥存储私钥FinalShell配置 总结 前言 本机FinalShell 配置SSH密钥登陆服务器&#xff0c;这样就不再需要使用密码进行登陆了。由于FinalSh…

【2024新版】银系统源码/超市收银系统/智慧新零售/ERP进销存管理/线上商城/商户助手

>>>系统简述&#xff1a;本系统适用于超吃便利店&#xff0c;美妆母婴行业&#xff0c;服装鞋帽行业&#xff0c;食品零售行业&#xff0c;3C数码电子行业&#xff0c;食品生鲜等一切零售行业&#xff0c;产品功能角色介绍如下 合伙人&#xff1a;无限发展代理商和商…

说明白计算机网络之TCP的流量控制与拥塞控制之慢开始算法与拥塞避免算法

TCP的流量控制 利用滑动窗口实现流量控制 设A向B发送数据&#xff0c;连接建立时候&#xff0c;B告诉A自身的接收窗口大小&#xff0c;A的发送窗口大小不能超过接收方B的窗口大小 流量控制&#xff1a;发送方发送速率不要太快&#xff0c;要让接收方来得及接收。窗口大小的单…

相对论真的很难理解吗?其实一点也不难,原理就在你我身边!

相对论&#xff0c;一个听起来就充满神秘色彩的名词&#xff0c;它在科学界的地位举足轻重&#xff0c;被誉为现代物理的基石。或许你并不了解相对论&#xff0c;但大概率应该听说过。 不过对于大多数人来说&#xff0c;相对论似乎总是笼罩在一层难以穿透的迷雾之中&#xff0c…

未来工厂新篇章:大型工厂3D可视化技术引领工业新潮流

在科技日新月异的今天&#xff0c;大型工厂不再是我们印象中机器轰鸣、尘土飞扬的钢铁丛林&#xff0c;而是变成了智慧与效率并存的现代化生产中心。这一切的改变&#xff0c;都离不开一项革命性的技术——3D可视化。 一、何为大型工厂3D可视化&#xff1f; 大型工厂3D可视化&…

VRTK4.0学习——(一)

此开发基于Unity 6000.0.0f1 1.导入VRTK v4 Tilia Package Importer.unitypackage包 2.在PackManager中查看配置是否正确 3.点击 Window→Tilia→Package Importer 打开面板后点击 Add Scoped Registry 4.首先我们先将CameraRigs导入,CameraRigs中主要是启动VR头盔的功能&…