最近遇到一个问题,百度地图只能显示地名标签,没法显示地图瓦片,影像,如图所示。先说结论,可能导致的原因
- 浏览器显示比例-没有百分百正常比例显示
- 地图的分辨率太大
第一个原因 浏览器显示比例-没有百分百正常比例显示
静图展示只能显示出地名,没有影像图
动图展示只能显示出地名,没有影像图
刚开始以为是我的地图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%, 正常了
第2个原因 地图的分辨率太大
左侧提示框信息文字是正常比例,说明浏览器是正常比例,地图显示不出来,可以看到有滚动条,说明地图容器超过1屏,我这里的地图容器分辨率是9000*4320px,
示例代码
<!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>