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

百度 API 教程 006:使用BMapGL.Marker3D绘制带高度的点纹理贴图

07、带高度的点纹理贴图

在百度地图的 BMapGL API 中,除了可以使用 Marker3D 绘制带有高度的点标记外,你还可以为这些标记添加 纹理贴纸(例如图像或自定义图标)。这样可以使标记更加生动,适用于如建筑物、标志性位置等有具体图形表示的场景。

示例代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <title>带高度的点纹理贴图</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
  <meta http-equiv="X-UA-Compatible" content="IE=Edge">
  <style>
    body,
    html,
    #container {
      overflow: hidden;
      width: 100%;
      height: 90%;
      margin: 0;
      font-family: "微软雅黑",serif;
    }
  </style>
  <script type="text/javascript" src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=4LNKXPO0VCgfpZstdvYkRozvWh6JFEgQ"></script>
</head>
<body>
<div id="container"></div>
</body>
</html>
<script>
  const map = new BMapGL.Map('container');
  const point = new BMapGL.Point(116.443, 39.935);
  map.centerAndZoom(point, 13);
  map.enableScrollWheelZoom();
  map.setTilt(70);

  const citys = [{
    name: '北京大学',
    img: '/jsdemo/img/beida.png'
  }, {
    name: '北京交通大学',
    img: '/jsdemo/img/beijiao.png'
  }, {
    name: '北京工业大学',
    img: '/jsdemo/img/beigong.png'
  }, {
    name: '北京邮电大学',
    img: '/jsdemo/img/beiyou.png'
  }];

  const cityGeo = new BMapGL.Geocoder();
  for (let i = 0; i < citys.length; i++) {
    cityGeo.getPoint(citys[i].name, function (point) { // 地址解析获取对应经纬度
      const pt = new BMapGL.Point(point.lng, point.lat);
      const icon = new BMapGL.Icon(citys[i].img, new BMapGL.Size(40, 40));
      const marker = new BMapGL.Marker3D(pt, Math.round(Math.random()) * 6000, {
        size: 80,
        icon: icon
      });
      map.addOverlay(marker);
    });
  }
</script>

代码解释

  • 通过 BMapGL.Icon 对象来设置标记的自定义纹理贴纸(图标)。

实现效果

在这里插入图片描述

相关文章:

  • 市场加速下跌,但监管「坚冰」正在消融
  • 【练习】【贪心】力扣1005. K 次取反后最大化的数组和
  • 可以用于promise面试的例子--其1
  • 基于单片机的机床切屑运输系统设计
  • cv2.solvePnP 报错 求相机位姿
  • 车载电源管理新标杆NCV8460ADR2G 在汽车电子负载开关中的应用
  • 删除idea recent projects 记录
  • springboot项目部署脚本
  • c++11新特性 chrono库
  • yolov8 目标追踪 (源码 +效果图)
  • JS中let和var变量区别
  • LeetCode刷题 -- 29. 两数相除
  • 8、HTTP/1.0和HTTP/1.1的区别【高频】
  • 测试金蝶云的OpenAPI
  • Python面试(八股)
  • 如何管理路由器
  • 做表格用什么软件?VeryReport让数据管理更高效!
  • 如果使用MODBUS通用类进行通信
  • 【无标题】Ubuntu22.04编译视觉十四讲slambook2 ch4时fmt库的报错
  • 【Nodejs】用pm2管理nodejs服务
  • 没有网站可以做cpa/网站手机版排名seo
  • 南京网站建设优化/上海牛巨仁seo
  • 快递公司网站制作/软考培训机构哪家好一点
  • 太原网站建设 网站制作/凡科建站和华为云哪个好
  • 做网站页面设计报价/百度链接
  • 贾汪网站建设/网上宣传方法有哪些