百度地图开发系列之个性化地图使用的2种方法

2,586 阅读2分钟

这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战

百度地图开发系列之个性化地图使用的2种方法

写在前面:


1 效果图

image-20211109221652152.png

2 官方文档

lbsyun.baidu.com/index.php?t…

3 个人消化后理解

3.1 简介

个性化地图,简而言之就是让你的地图底图变成任意你想变成的底图。

3.2 如何使用

3.2.1 前序准备

  1. 进入地图开放平台控制台页面,在我的地图中,创建一个地图样式

image-20211109154940215

  1. 看着选择一个样式模板或者编辑一下自定义样式(我觉得这个得需要一定美感),然后点击发布,得到样式ID,同时我们也可以下载JSON,便于后面演示第二种方法。

image-20211109155433330

  1. 这样我们就得到了样式文件和样式ID,其中有其中一个就可以实现,这里只是为了方便给大家展示2中方法的使用。

3.3 使用方法1 (样式ID)

直接在代码里这样,后面那一串id就是你的样式id了

  map.setMapStyleV2({
    styleId: '3058e0dabfad159d876a8a7034f7c95b'
  });

3.4 使用方法2 (样式文件)

这里第一步需要先把样式的Json文件拷贝到程序的文件夹下,然后再这样

window.onload = function () {
    var url = "../config/custom_map_config.json";// 这个是我放json文件的位置
    var request = new XMLHttpRequest();
    request.open("get", url);
    request.send(null);
    request.onload = function () {
      if (request.status == 200) {
        var styleJson = JSON.parse(request.responseText);
        // console.log(styleJson);
        map.setMapStyleV2({
          styleJson: styleJson
        });
      }
    }
  }

4 源码

<!DOCTYPE html>
<html><head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  <style type="text/css">
    body,
    html,
    #allmap {
      width: 100%;
      height: 100%;
      overflow: hidden;
      margin: 0;
      font-family: "微软雅黑";
    }
​
    #allmap .anchorBL img {
      display: none;
    }
​
    #allmap .BMap_cpyCtrl span {
      display: none !important;
    }
  </style>
  <script type="text/javascript" src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=GXn1gkhgbbWet55NCyKzjB7Hqfdh3gos">
  </script>
  <title>百度地图展示</title>
</head><body>
  <div id="allmap"></div>
</body></html>
<script type="text/javascript">
  // GL版命名空间为BMapGL
  // 按住鼠标右键,修改倾斜角和角度
  var map = new BMapGL.Map("allmap"); // 创建Map实例
  map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别
​
  // 个性地图样式  - 方法1 
  // map.setMapStyleV2({
  //   styleId: '3058e0dabfad159d876a8a7034f7c95b'
  // });
​
  // 个性地图样式 - 方法2 使用json
  window.onload = function () {
    var url = "../config/custom_map_config.json"
    var request = new XMLHttpRequest();
    request.open("get", url);
    request.send(null);
    request.onload = function () {
      if (request.status == 200) {
        var styleJson = JSON.parse(request.responseText);
        // console.log(styleJson);
        map.setMapStyleV2({
          styleJson: styleJson
        });
      }
    }
  }
  map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
</script>

5 源码仓库地址

下面这个仓库为本篇知识点的源码地址,同时也是本系列的仓库地址,后面的源码更新都会在这个仓库里进行。

webGIS-basic-BMapGL/06个性化地图.html at main · front-end-study-GoGoGo/webGIS-basic-BMapGL (github.com)