高德地图自定义样式不生效_高德最新配置密钥_vue使用高德地图问题
2024-11-24 10:01:11
高德地图更新了配置规则,web端引入需要额外配置安全密钥,并引发了一系列的问题,比如自定义样式不生效等
2515

vue使用步骤:

1.引入高德地图

npm i @amap/amap-jsapi-loader --save

2.引入并配制安全密钥

import AMapLoader from '@amap/amap-jsapi-loader';
<script type="text/javascript">
        window._AMapSecurityConfig = {
            serviceHost:'您的代理服务器域名或地址/_AMapService',  
            // 例如 :serviceHost:'http://1.1.1.1:80/_AMapService',
        }
</script>


AMapLoader.load({
    "key": "",              // 申请好的Web端开发者Key,首次调用 load 时必填
    "version": "2.0",   // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
    "plugins": [],           // 需要使用的的插件列表,如比例尺'AMap.Scale'等
}).then((AMap)=>{
    map = new AMap.Map('container');
}).catch(e => {
    console.log(e);
})

3.如果需要安全考虑,可以用服务器nginx转发

server {
        listen       80;             #nginx端口设置,可按实际端口修改
        server_name  127.0.0.1;      #nginx server_name 对应进行配置,可按实际添加或修改
        
        # 自定义地图服务代理
        location /_AMapService/v4/map/styles {
            set $args "$args&jscode=您的安全密钥";
            proxy_pass https://webapi.amap.com/v4/map/styles;
        }
        # 海外地图服务代理
        location /_AMapService/v3/vectormap {
            set $args "$args&jscode=您的安全密钥";
            proxy_pass https://fmap01.amap.com/v3/vectormap;
        }
        # Web服务API 代理
        location /_AMapService/ {
            set $args "$args&jscode=您的安全密钥";
            proxy_pass https://restapi.amap.com/;
        }
}

4.使用自定义地图

//在第二步的时候 更改load的引入
var map = new AMap.Map('container',{
    mapStyle: 'amap://styles/whitesmoke', //设置地图的显示样式
});

PS:自定义地图需要引入自己的,如果想用别人的样式,需要在https://geohub.amap.com/mapstyle/index 自定义平台登陆自己账号,并打开别人分享的链接,点击左下角引入自己样式就可以了