适用场景:客户端无法连接互联网,服务端可以联网
思路:将百度地图的脚本下载成本地静态文件,修改其中的访问地址,修改代理配置
百度地图的加载规则是
1)先加载 api.map.baidu.com/api?v=2.0&a…
2)通过1)加载的脚本再加载 api.map.baidu.com/getscript?v…
步骤2)中的加载 的才是真正地图脚本,步骤1)只是引导。
如何修改脚本的中的访问地址
将步骤2)中的脚本下载到本地:
搜索:https
可以看到
B.s0 = {
'0': {proto: 'http://',domain: B.vY},
1: {proto: 'http://',domain: B.nM},
2: {proto: 'https://',domain: B.nM}
};
将proto改成如下
B.s0 = {
'0': {proto: location.origin + '/',domain: B.vY},
1: {proto: location.origin + '/',domain: B.nM},
2: {proto: location.origin + '/',domain: B.nM}
};
百度地图主要服务地址是下面几个:
https://api.map.baidu.com
https://maponline0.bdimg.com
https://maponline1.bdimg.com
https://maponline2.bdimg.com
https://maponline3.bdimg.com
https://gsp0.baidu.com
接下来修改nginx代理配置:
location /api.map.baidu.com/ {
proxy_pass https://api.map.baidu.com/;
}
location /maponline0.bdimg.com/ {
proxy_pass https://maponline0.bdimg.com/;
}
location /maponline1.bdimg.com/ {
proxy_pass https://maponline1.bdimg.com/;
}
location /maponline2.bdimg.com/ {
proxy_pass https://maponline2.bdimg.com/;
}
location /maponline3.bdimg.com/ {
proxy_pass https://maponline3.bdimg.com/;
}
location /gsp0.baidu.com/ {
proxy_pass https://gsp0.baidu.com/;
}
最后,将1)2)步骤中的修改后的脚本做成本地引用就行了!
风险提示:百度脚本升级后可能导致地图不可用