php做网站的源码东坑做网站
news/
2025/9/22 19:44:37/
文章来源:
php做网站的源码,东坑做网站,金华手机模板建站,微信营销成贴个群号
WebGIS学习交流群461555818#xff0c;欢迎大家
心路历程
当vue2由mapbox2升级为mapbox3的时候#xff0c;您可能会遇到以下的问题 所有的代码都没有改变#xff0c;升级为mapbox3就会出现部分矢量底图样式丢失#xff0c;表现为图层已经成功加上#xff0c;但…贴个群号
WebGIS学习交流群461555818欢迎大家
心路历程
当vue2由mapbox2升级为mapbox3的时候您可能会遇到以下的问题 所有的代码都没有改变升级为mapbox3就会出现部分矢量底图样式丢失表现为图层已经成功加上但是打印图层信息的话会发现属性layout和paint属性没有虽然我们加图层的前一秒打印layer信息layout和paint信息都在但是addlayer之后却不存在了。
开始我以为是style出现的问题因为我们使用的style是自己搞的后来使用官方的矢量底图进行测试也是同样的问题而且不是写法的问题mapbox2和mapbox3的写法是相同的。后来以为是setstyle一下加了太多的图层mapbox没有反应过来于是搞了一下一个一个的加问题还是没有解决。但是好奇的是我们在使用官方的那些示例html其实不会出现这种问题只有将其引入vue2才会出现问题。
于是我们就观察两种方法的区别写法完全一样区别貌似只有在声明map的时候一个是var let一个是this.map …存在了data里面这个会不会是问题出现的原因呢抱着试试看的想法使用let 来声明map不将map实例存在data里面结果还真的好使了。
至于为什么存在data里面就不好使了研究了很久还是不清楚原因。但是我们为了组件通信还是很有必要解决这个问题的于是就想到了别的办法比如vuex来存map实例但是试了一下也是不行的。经过多方面的测试终极解决办法只有两个一是升级为vue3,二是将map挂载到window下。其实在cesium使用中挂载到window中是很常见的写法但是在mapbox中却是没有这样考虑过这下我们就使用window来挂载map。
实操
接下来是更新mapbox3由window来挂载map的一些细节 1、声明map let map new ....window.map mapwindow.map.on(...)2、样式调整诸如popup、ctrl等的class名字可能会有变更需要重新找一下更改一下对应的class名字
3、将map通过组件传值的方法
由于map不存在于data中了所以这种传值要改掉但是也不能改为window.map因为这种写法会认为你在data里面有一个window对象建议不传值了反正都是window.map别的页面也就直接用就完事儿了
aaaa :mapmap/aaaa4、跟map有关的其他控件 比如popup、marker等相关的也不能在data里面存了也挂在window下 5、跟map有关的插件 比如draw绘画插件、compare卷帘插件等等声明的时候也不可以在data里面改为挂在window下 6、在vuex里存的map内容 不能在data里面存也不能在vuex里面存了 7、class类里传进来的map 达咩
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910165.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!