百度地图只能显示地名标签,没法显示地图瓦片,影像

634 阅读2分钟

最近遇到一个问题,百度地图只能显示地名标签,没法显示地图瓦片,影像,如图所示。先说结论,可能导致的原因

  1. 浏览器显示比例-没有百分百正常比例显示
  2. 地图的分辨率太大
第一个原因 浏览器显示比例-没有百分百正常比例显示

静图展示只能显示出地名,没有影像图

image.png

动图展示只能显示出地名,没有影像图

map.gif

刚开始以为是我的地图token权限不够,我都准备提交工单了,代码和官方示例除了token其他一模一样,突然发现是浏览器缩放导致的。看下代码

<!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: 100%;
        margin: 0;
        font-family: '微软雅黑';
      }
      .info {
        z-index: 999;
        width: auto;
        min-width: 22rem;
        padding: 0.75rem 1.25rem;
        margin-left: 1.25rem;
        position: fixed;
        top: 1rem;
        background-color: #fff;
        border-radius: 0.25rem;
        font-size: 14px;
        color: #666;
        box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);
      }
    </style>
    <script src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=7Z3N61OypXDBD1S8AC3z83EycWASzPrb"></script>
  </head>
  <body>
    <div class="info">最新版GL地图命名空间为BMapGL, 可按住鼠标右键控制地图旋转、修改倾斜角度。</div>
    <div id="container"></div>
  </body>
</html>
<script>
  var map = new BMapGL.Map('container') // 创建Map实例
  map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 12) // 初始化地图,设置中心点坐标和地图级别
  map.enableScrollWheelZoom(true) // 开启鼠标滚轮缩放
</script>

地图比例回到100%, 正常了

image.png

第2个原因 地图的分辨率太大

左侧提示框信息文字是正常比例,说明浏览器是正常比例,地图显示不出来,可以看到有滚动条,说明地图容器超过1屏,我这里的地图容器分辨率是9000*4320px,

image.png 示例代码

<!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: 9000px;
        height: 4320px;
        margin: 0;
        font-family: '微软雅黑';
        overflow-x: scroll;
      }
      .info {
        z-index: 999;
        width: auto;
        min-width: 22rem;
        padding: 0.75rem 1.25rem;
        margin-left: 1.25rem;
        position: fixed;
        top: 1rem;
        background-color: #fff;
        border-radius: 0.25rem;
        font-size: 14px;
        color: #666;
        box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);
      }
    </style>
    <script src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=7Z3N61OypXDBD1S8AC3z83EycWASzPrb"></script>
  </head>
  <body>
    <div class="info">最新版GL地图命名空间为BMapGL, 可按住鼠标右键控制地图旋转、修改倾斜角度。</div>
    <div id="container"></div>
  </body>
</html>
<script>
  var map = new BMapGL.Map('container') // 创建Map实例
  map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 12) // 初始化地图,设置中心点坐标和地图级别
  map.enableScrollWheelZoom(true) // 开启鼠标滚轮缩放
</script>