解决 MapBox addMapStyle 失败,主动刷新地图

news2024/12/23 5:45:23

应用场景:

底图加载后,边界的图层有时能加载,有时加载不上,在点击或者拖拽移动后可加载成功

最后解决方案:

在子组件中写一个延迟函数,模拟手动点击效果

  created(){
    setTimeout(() => {
      if ( !this.isLoadStyle ) {
        this.handleChange('reset');
      }
    }, 1000);
  },

Debug 过程

失败的报错

成功的报错

由于这边无论是成功还是失败,打印台中都会有很多报错,对比之下也没什么发现。

但是大概判断是加载的问题

第一次尝试 :

生命周期 模拟点击效果

失败原因:地图只能在 父组件  mounted 生命周期中挂载,子组件 点击时 地图还没有挂载上去

第二次尝试 

this.mapboxmap.triggerRepaint() //刷新,未生效

第三次尝试

发现网络请求可以看到这个差异在,判断肯定是后面的东西没有加载好,后面逐步锁定位置在

addMapStyle方法上,原因是 addMapStyle 实行失败了

开始我是想在判断 addMapStyle 执行 成功与否,但这个函数没有回调函数,就在调用他外面的函数套了一层

loadMapStyle() {
  this.mapboxmap.loadMapStyle(process.env.VUE_APP_BASE_MAP_BASEMAP5)
      .then((styleObj) => {
        //加载地图服务
        this.mapboxmap.addMapStyle(styleObj, {
          styleid: "regions",//如果加多层,需要保持唯一性
          isFlyTo: false,
          isBaseMap: false,
        });
      }).catch((err) => {
        console.log('loadMapStyle err:',err);
        if (this.retryCount < this.maxRetryCount) {
          this.retryCount++;
          this.loadMapStyle();
        }
      });
},

但是这个解决部分问题,addMapStyle 方法执行失败是捕捉不到的

第四次尝试,即本次最终解决方法

在父组件中 定义 isLoadStyle 变量,在 addMapStyle方法后赋值为 true

loadMapStyle() {
  this.mapboxmap.loadMapStyle(process.env.VUE_APP_BASE_MAP_BASEMAP5)
      .then((styleObj) => {
        //加载地图服务
        this.mapboxmap.addMapStyle(styleObj, {
          styleid: "regions",//如果加多层,需要保持唯一性//regions
          isFlyTo: false,
          isBaseMap: false,
        });
        this.isLoadStyle = true;
      }).catch((err) => {
        console.log('loadMapStyle err:',err);
        if (this.retryCount < this.maxRetryCount) {
          this.retryCount++;
          this.loadMapStyle();
        }
      });
},

再在子组件中 设置一个延迟函数,判断  isLoadStyle ,如果是 false,则模拟点击效果即可

  created(){
    setTimeout(() => {
      if ( !this.isLoadStyle ) {
        this.handleChange('reset');
      }
    }, 1000);
  },

THE  END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275869.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

conda 安装指定Version的指定Build

入下图&#xff0c;我想装cudnn的7.6.5的指定Build版本cuda10.0_0 应该使用如下命令&#xff1a; mamba install cudnn7.6.5cuda10.0_0 没有mamba用conda install也可以

DAPP开发【04】测试驱动开发

测试驱动开发(Test Driven Development)&#xff0c;是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码&#xff0c;然后只编写使测试通过的功能代码通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码&#xff0c…

每日一练2023.12.1——输出GPLT【PTA】

题目链接&#xff1a;L1-023 输出GPLT 题目要求&#xff1a; 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序&#xff0c;按GPLTGPLT....这样的顺序输出&#xff0c;并忽略其它字符。当然&#xff0c;四种字符&#xff08;不区分大小写&#x…

程序员职业发展之旅:从代码入门到身体管理的完美进化

导言&#xff1a; 在编程的世界中&#xff0c;程序员们经常面对着繁忙的工作、长时间的电脑操作和高度集中的注意力。这种职业特性使得许多程序员在追求代码的完美的同时&#xff0c;往往忽略了自身的健康。让我们通过一段幽默的编程时光&#xff0c;探讨程序员的职业发展与身体…

Apache HTTPD 2.448 mod_proxy SSRF漏洞(CVE-2021-40438)

任务一&#xff1a; 复现漏洞 任务二&#xff1a; 尝试利用SSRF漏洞&#xff0c;访问重庆邮电大学官网&#xff08;http://www.cqupt.edu.cn) 1.搭建环境 2.了解这个地方是httpd作为了一个反向代理服务器&#xff0c;也就是先是客户端发送请求给代理服务器&#xff0c;然后…

SSM项目实战-mapper实现

1、SysUserMapper.java package com.atguigu.schedule.mapper; import com.atguigu.schedule.pojo.SysUser; import org.springframework.stereotype.Repository; Repository public interface SysUserMapper {SysUser getSysUser(SysUser sysUser); }2、ScheduleMapper.java p…

Qt for Python 札记

文章目录 一、简介 一、简介 Qt for Python 官网

JAVA全栈开发 集合详解(day14+day15汇总)

一、数组 数组是一个容器&#xff0c;可以存入相同类型的多个数据元素。 数组局限性&#xff1a; ​ 长度固定&#xff1a;&#xff08;添加–扩容&#xff0c; 删除-缩容&#xff09; ​ 类型是一致的 对象数组 &#xff1a; int[] arr new int[5]; … Student[] arr …

中职组网络安全-PYsystem003.img(环境+解析)

​ web安全渗透 1.通过URL访问http://靶机IP/1&#xff0c;对该页面进行渗透测试&#xff0c;将完成后返回的结果内容作为flag值提交&#xff1b; 访问该网页后发现F12被禁用&#xff0c;使用ctrlshifti查看 ctrlshifti 等效于 F12 flag{fc35fdc70d5fc69d269883a822c7a53e} …

Java——》JSONObjet 数据顺序

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

springsecurity的NullPointerException产生

springsecurity的NullPointerException产生 01 异常发生场景 当我使用springsecurity请求后端数据时 以下是报错代码 02 问题的产生原因 发生空指针异常&#xff0c;无非就几种 类对象没有初始化&#xff0c;地址默认为null指向的数据为空查找到的数据为空与数据类型冲突 …

【趣味JavaScript】一文让你读懂JavaScript原型对象与原型链的继承,探秘属性的查找机制! 《重置版》

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起学习和进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&a…

【话题】程序员养生指南(AI生成)

目录 程序猿可能出现的职业病有哪些&#xff1f; 如何预防和对付这些职业病&#xff1f; 一、颈椎病的预防 二、神经衰弱的调适 三、肩周炎的防护 四、视力下降的保护 五、饮食与运动的重要性 六、消化系统职业病的预防 程序员养生心得&#xff1a;呵护健康&#xff0c…

Explainable Multimodal Emotion Reasoning 多模态可解释性的情感推理

1.摘要 多模态情感识别是人工智能领域的一个活跃的研究课题。它的主要目标是整合多种模态(如听觉、视觉和词汇线索)来识别人类的情绪状态。目前的工作通常假设基准数据集的准确情感标签&#xff0c;并专注于开发更有效的架构。但由于情感固有的主观性&#xff0c;现有数据集往往…

对外汉语教师简历(精选12篇)

以对外汉语老师招聘需求为背景&#xff0c;我们制作了1份全面、专业且具有参考价值的简历案例&#xff0c;大家可以灵活借鉴&#xff0c;希望能帮助大家在众多候选人中脱颖而出。 对外汉语教师简历下载&#xff08;在线制作&#xff09;&#xff1a;百度幻主简历或huanzhucv.c…

六要素小型气象站-气象百科

随着科技的发展&#xff0c;人们对气象信息的掌握越来越及时、准确。而六要素小型气象站作为一款功能强大的气象监测设备&#xff0c;更是受到了广泛的关注。本文将介绍这款气象站的特点&#xff0c;以及如何通过它来监测天气&#xff0c;让你随时掌握气象变化。 一、六要素小型…

matlab 汽车单车模型固定点跟踪算法

1、内容简介 略 29-可以交流、咨询、答疑 2、内容说明 单车模型固定点跟踪算法 单车模型&#xff0c;固定点跟踪算法&#xff0c;动画演示&#xff0c; 汽车单车模型、转弯动画、固定点跟踪算法、pid控制 3、仿真分析 略 A[0,5;0,0];B[0;1]; Q10*eye(2);R1; Klqr(A…

20、LED点阵屏

LED点阵屏介绍 LED点阵屏由若干个独立的LED组成&#xff0c;LED以矩阵的形式排列&#xff0c;以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种公共场合&#xff0c;如汽车报站器、广告屏以及公告牌等 LED点阵屏分类 按颜色&#xff1a;单色、双色、全彩 按像素…

年终好价节入手什么数码合适?盘点23年度值得入手的数码好物

各位科技控和数码迷&#xff01;时间过得飞快&#xff0c;一眨眼2023年就要过去了&#xff0c;说到年底&#xff0c;当然少不了年终好价节啦&#xff01;这时候正是更新你的数码装备、升级生活品质的绝佳时机。别管你是不是科技控&#xff0c;工作狂还是生活追求者&#xff0c;…

软文营销助力品牌打开市场,提升内在竞争力

当今环境下&#xff0c;企业想要通过传统营销方式打开市场可以说是难度较大&#xff0c;用户如今更偏向于好的内容&#xff0c;而软文营销正是通过好内容吸引用户&#xff0c;助力品牌打开市场&#xff0c;提升内在竞争力&#xff0c;接下来媒介盒子就从以下几个方面和大家聊聊…