百度地图引入个性化样式,加载时出现大片白块的解决办法

加载地图时,无论怎么放大缩小都会导致大片的白块

一开始我是按照官网这个方式引入的,这个问题却一直存在,时好时坏

<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak={你的ak}"></script>

后来发现可以这样修改

<script type="text/javascript" src="https://api.map.baidu.com/getscript?v=3.0&ak={你的ak}"></script>

将 api 换成 getscript 就好了,加载地图的时候就变成的动态加载

相应的,我也对getscript了解了一下

使用getScript的优势在于:

1.减少页面第一次加载的时候直接加载的所有的js静态文件,能够有效的提高页面加载速度,释放对网络带宽的压力。

2.通过浏览器的Sources,可以看出,动态加载的页面js,并不会出现在Sources里,可以减少个人代码的可见度,避免一些隐晦代码的暴露。

3.当前版本的getScript方法能够支持跨域调用js。

根据第一条,可得知,当加载百度地图的时候,浏览器会一次性请求很多地图瓦片,由于未知的原因,加载的时候会出现很多请求不到的瓦片,动态的加载瓦片便可避免出现大量瓦片请求失败的问题

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对于 Vue 中的百度地图个性化,你可以按照以下步骤进行操作: 1. 首先,在你的 Vue 项目中安装百度地图 SDK,可以通过 npm 或者 yarn 安装,例如:`npm install vue-baidu-map --save`。 2. 在你的 Vue 项目中,找到需要使用百度地图的组件,并在这个组件中引入百度地图的 SDK,例如: ```javascript import BMap from 'vue-baidu-map'; export default { components: { 'b-map': BMap.map, 'b-marker': BMap.marker } } ``` 3. 然后,你可以在组件中使用 `<b-map>` 标签来显示百度地图,例如: ```html <template> <div> <b-map :ak="YOUR_API_KEY" :center="center" :zoom="zoom" style="width: 100%; height: 400px;"> <b-marker :position="position"></b-marker> </b-map> </div> </template> ``` 其中,`YOUR_API_KEY` 是你在百度开放平台申请到的 API Key,`center` 是地图中心的经纬度坐标,`zoom` 是地图的缩放级别,`position` 是标记点的经纬度坐标。 4. 如果你想进行百度地图个性化设置,可以在组件的 `mounted()` 生命周期钩子函数中添加相关代码,例如: ```javascript mounted() { // 获取地图实例 const map = this.$refs.bMap.mapInstance; // 设置地图样式 map.setMapStyleV2({ styleJson: YOUR_CUSTOM_STYLE_JSON }); } ``` 其中,`YOUR_CUSTOM_STYLE_JSON` 是你自定义的地图样式 JSON 数据,你可以在百度地图开放平台上进行个性化样式的配置和获取。 这样,你就可以在 Vue 中进行百度地图个性化设置了。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值