| | |
| | | lg('load 触发,window.BMap = ' + typeof window.BMap, window.BMap ? 'ok' : 'bad'); |
| | | if (!window.BMap) { return; } |
| | | try { |
| | | var map = new window.BMap.Map('map5'); |
| | | var map = new window.BMap.Map('map5', { enableHighResolution: false }); |
| | | map.centerAndZoom(new window.BMap.Point(87.616848, 43.825592), 14); |
| | | map.enableScrollWheelZoom(true); |
| | | lg('2D 地图创建成功', 'ok'); |
| | |
| | | s.src = '/bmap-sdk2d.js'; |
| | | s.addEventListener('load', function () { |
| | | if (!window.BMap) { lg('BMap 未就绪', 'bad'); return; } |
| | | var map = new window.BMap.Map('map6'); |
| | | var map = new window.BMap.Map('map6', { enableHighResolution: false }); |
| | | map.centerAndZoom(new window.BMap.Point(116.404, 39.915), 13); // 北京,确保有瓦片 |
| | | map.enableScrollWheelZoom(true); |
| | | lg('地图已创建(北京 z=13)', 'ok'); |
| | | lg('地图已创建(北京 z=13)'); |
| | | lg('高清模式(devicePixelRatio=' + window.devicePixelRatio + '):已显式关闭 enableHighResolution=false'); |
| | | lg(' → 关闭后应走 qt=tile 普通瓦片(高清模式会走 qt=vtile 矢量瓦片,当前 ak 无权限)'); |
| | | |
| | | setTimeout(function () { |
| | | var d = document.getElementById('map6'); |
| | | // 每秒实时报告,不用干等固定时长 |
| | | var tick = 0; |
| | | var timer = setInterval(function () { |
| | | tick++; |
| | | var d = document.getElementById('map6'); |
| | | if (!d) { return; } |
| | | var imgs = d.querySelectorAll('img').length; |
| | | var cv = d.querySelectorAll('canvas').length; |
| | | lg(`[${tick}s] innerHTML=${d.innerHTML.length} img=${imgs} canvas=${cv}`, imgs > 0 ? 'ok' : (tick >= 8 ? 'bad' : '')); |
| | | if (imgs > 0 || cv > 0) { |
| | | clearInterval(timer); |
| | | lg(''); |
| | | lg('=== 容器 DOM 结构 ==='); |
| | | lg('innerHTML 长度: ' + d.innerHTML.length); |
| | | lg('子元素数: ' + d.children.length); |
| | | lg('img 数: ' + d.querySelectorAll('img').length); |
| | | lg('canvas 数: ' + d.querySelectorAll('canvas').length); |
| | | lg('innerHTML 前 600 字符:'); |
| | | lg(d.innerHTML.slice(0, 600)); |
| | | lg(''); |
| | | lg('=== 真实网络请求(含瓦片)==='); |
| | | var rs = performance.getEntriesByType('resource'); |
| | | var tile = rs.filter(function (r) { return /bmap-tile|bdimg|maponline|bmap-api/.test(r.name); }); |
| | | lg('相关请求总数: ' + tile.length + '(页面总请求 ' + rs.length + ')'); |
| | | tile.slice(0, 25).forEach(function (r) { |
| | | lg('✅ 瓦片已渲染出来了!地图应该可见', 'ok'); |
| | | lg('=== 瓦片请求明细 ==='); |
| | | performance.getEntriesByType('resource').filter(function (r) { return /bmap-tile/.test(r.name); }).slice(0, 6).forEach(function (r) { |
| | | var sz = r.transferSize || r.encodedBodySize || 0; |
| | | var st = r.responseStatus || (sz > 0 ? 200 : '?'); |
| | | lg(' [' + st + '] ' + (Math.round(r.duration)) + 'ms ' + sz + 'B ' + r.name.slice(0, 120), sz > 0 ? '' : 'bad'); |
| | | lg(' [' + (r.responseStatus || '?') + '] ' + sz + 'B ' + r.name.slice(0, 140), sz > 0 ? 'ok' : 'bad'); |
| | | }); |
| | | if (tile.length === 0) { |
| | | } |
| | | if (tick >= 15) { |
| | | clearInterval(timer); |
| | | lg(''); |
| | | lg('=== 15 秒仍未渲染,瓦片请求明细 ===', 'bad'); |
| | | var rs = performance.getEntriesByType('resource').filter(function (r) { return /bmap-tile|bmap-api/.test(r.name); }); |
| | | lg(' 相关请求 ' + rs.length + ' 条'); |
| | | rs.slice(0, 12).forEach(function (r) { |
| | | var sz = r.transferSize || r.encodedBodySize || 0; |
| | | lg(' [' + (r.responseStatus || '?') + '] ' + sz + 'B ' + r.name.slice(0, 140), sz > 0 ? '' : 'bad'); |
| | | }); |
| | | } |
| | | }, 1000); if (tile.length === 0) { |
| | | lg(' ⚠ 没有任何瓦片请求发出 → SDK 内部瓦片 URL 可能仍指向被 IPv6 拦截的原始域名', 'bad'); |
| | | } |
| | | }, 15000); |