vue3项目最终使用高德地图多个地图样式会被覆盖问题

最近使用AMapLoader开发高德地图相关页面遇到的问题,项目中存在两个地图页面,第一次打开的地图页面的地图样式是高德默认地图样式,然后跳转到第二个地图样式为自定义样式,发现第二个地图的自定义样式并没有生效,而第二个地图使用官方的其他地图样式时是可以正常生效的

网上有不生效的方法,添加jscode,即你自己的安全密钥

//在使用AmapLoader加载地图前加入如下代码
window._AMapSecurityConfig = { securityJsCode: '你的安全密钥' }

高德地图自定义样式即可生效

但以上只是解决高德地图自定义样式在一开始加载就不生效的办法,并不能解决我遇到的问题,使用各种方法无法解决,最后无奈请教高德官方大佬,创建了一个工单

这是我解决问题之前的代码,为了排除各个原因,分别在加载前、加载时、加载后设置样式以及添加jscode,当然都无效且多余。

官方大佬看过后,发现style请求中没有携带jscode,也就是你的密钥,导致样式接口请求失败,并且这个请求报错不会在控制台打印,也不会有弹窗之类的

以下是高德官方给的修改建议

改过之后发现页面跳转时自定义样式还是没有生效,style接口依然是没有携带jscode,于是再去咨询官方大佬,发现给的解决建议下面还有个链接,是解决这次问题的另一个及其重要的部分

即请求代理,请求高德地图必然是要做代理的,我们用的是nginx代理,但只做了最下面的web服务API代理,自定义地图服务代理是不同的地址,而我们自定义样式没有生效的最重要的原因就是少了这个代理

不添加代理时首次进入的第二个自定义地图页面,只要在window._AMapSecurityConfig中添加了jscode,自定义样式也是可以生效的,或者不生效时刷新一下自定义地图页面也可以,但终究使用体验非常差

愿我们永不止步!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值