fix(map): 改用百度地图 v1.4(普通 PNG 瓦片),瓦片实测 12KB 真实地图
诊断页第 9 块定位到两个新事实:
1) 即使 v2.0 的 SDK,瓦片请求仍是 qt=vtile(矢量)且 v=2.1,
而矢量瓦片当前 ak 未授权,实测直连百度全部 403。
2) 瓦片协议仍是 https://<host>:9023,而该端口没有 SSL,必然 0 字节。
逐版本实测瓦片接口(同一坐标、同一 ak):
qt=vtile (v2.0/2.1/3.0) -> 403 / 152B ❌ 矢量瓦片未授权
qt=tile (v2.0/2.1/3.0) -> 200 / 12013B ✅ 普通 PNG 瓦片正常
v1.4 的关键差异(源码可见):
var streetLayer = new TileLayer({"transparentPng": true});
streetLayer["getTilesUrl"] = ... + "?qt=tile&x=...&styles=sl"
var TILE_ONLINE_URLS = [
"http://maponline0.bdimg.com/tile/", ... "http://maponline3.bdimg.com/tile/"
];
var BMap = window["BMap"] || {}; BMap.version = "1.4";
即:v1.4 主图层用的就是 qt=tile,且域名是完整 http:// URL,
改写后协议自动跟随页面(用 window.location.origin),彻底避开 https 问题。
新增 scripts/fix-bmap-sdk-v14.mjs,重写 public/bmap-sdk2d.js 为 v1.4 改写产物:
4 个瓦片域名 -> window.location.origin + /bmap-tileN/tile/
api/images/getmodules 等 -> window.location.origin + /bmap-api/...
共 14 处替换,语法 OK,BMap.version=1.4,144KB(比 875KB 的 GL 版小得多)
残留 8 处为卫星图(shangetu*)/路况(its.map)/统计(dlswbr)/帮助链接(lbsyun),不影响街道地图。
实测:
/bmap-sdk2d.js HTTP 200 / 147379B / 0.79s
/bmap-tile0/tile/?qt=tile&x=2381&y=1320&z=14&styles=sl
HTTP 200 / 12785B(真实地图瓦片)