From 41fc2f391a8847ac85856c78b017bfe19f902348 Mon Sep 17 00:00:00 2001 From: Asheem Mamoowala Date: Mon, 17 Jul 2017 14:56:14 -0700 Subject: [PATCH] Draw debug tiles for source with greatest max zoom and Add overscaledZ to debug tile text --- src/render/draw_debug.js | 8 +++++-- src/render/painter.js | 20 +++++++++++++++--- src/source/tile_id.js | 4 ++++ .../debug/tile-overscaled/expected.png | Bin 1691 -> 1696 bytes .../render-tests/debug/tile/style.json | 16 ++++++++++++++ 5 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/render/draw_debug.js b/src/render/draw_debug.js index 37d0f332bfa..01bc04d4558 100644 --- a/src/render/draw_debug.js +++ b/src/render/draw_debug.js @@ -24,7 +24,7 @@ function drawDebug(painter: Painter, sourceCache: SourceCache, coords: Array ${coord.overscaledZ}`; + } + const vertices = createTextVertices(`${tileIdText} ${tileSizeKb}kb`, 50, 200 * scaleRatio, 5 * scaleRatio); const debugTextArray = new PosArray(); const debugTextIndices = new LineIndexArray(); for (let v = 0; v < vertices.length; v += 2) { diff --git a/src/render/painter.js b/src/render/painter.js index 056fbccfac8..a5d3a75751b 100644 --- a/src/render/painter.js +++ b/src/render/painter.js @@ -8,6 +8,7 @@ import EXTENT from '../data/extent'; import pixelsToTileUnits from '../source/pixels_to_tile_units'; import SegmentVector from '../data/segment'; import {RasterBoundsArray, PosArray, TriangleIndexArray, LineStripIndexArray} from '../data/array_types'; +import {values} from '../util/util'; import rasterBoundsAttributes from '../data/raster_bounds_attributes'; import posAttributes from '../data/pos_attributes'; import ProgramConfiguration from '../data/program_configuration'; @@ -430,9 +431,22 @@ class Painter { } if (this.options.showTileBoundaries) { - for (const id in sourceCaches) { - draw.debug(this, sourceCaches[id], coordsAscending[id]); - break; + //Use source with highest maxzoom + let selectedSource; + let sourceCache; + const layers = values(this.style._layers); + layers.forEach((layer) => { + if (layer.source && !layer.isHidden(this.transform.zoom)) { + if (layer.source !== (sourceCache && sourceCache.id)) { + sourceCache = this.style.sourceCaches[layer.source]; + } + if (!selectedSource || (selectedSource.getSource().maxzoom < sourceCache.getSource().maxzoom)) { + selectedSource = sourceCache; + } + } + }); + if (selectedSource) { + draw.debug(this, selectedSource, selectedSource.getVisibleCoordinates()); } } diff --git a/src/source/tile_id.js b/src/source/tile_id.js index 16d06f97254..9d39d3eae7b 100644 --- a/src/source/tile_id.js +++ b/src/source/tile_id.js @@ -48,6 +48,10 @@ export class CanonicalTileID { (coord.x * tilesAtZoom - this.x) * EXTENT, (coord.y * tilesAtZoom - this.y) * EXTENT); } + + toString() { + return `${this.z}/${this.x}/${this.y}`; + } } export class UnwrappedTileID { diff --git a/test/integration/render-tests/debug/tile-overscaled/expected.png b/test/integration/render-tests/debug/tile-overscaled/expected.png index 1d123bd64a30b9c27702f572705cb5cdefca76c8..35c9ba41f5400c2bd61e8f2cb5f8cacb0c3cf7e1 100644 GIT binary patch literal 1696 zcmeHI?MqW(6hGI=&4d{iA-K>F!a}4MSWb(a6iQA+LnMj9X|+4wW|kk+9Anf66QTku zy|vq?Y<5&m-n!dp-#`^ zU%#8Sh3a=YvsZ?Dv!BhTtaXCDm+z4K1vylXvyg0%L2Dla;~s$JaM*lC0@#@<`nX|rBNWiRz zMle}l1sTuDz~MxCH4zG^F%XtmIdZ*YSugc6@X^hqO>*#8P_-gwI4+Qg$h{lLSR)s3 z#4wg>ESo}e%4_F|QqnDe)LC?EO&2Y-pG6P5w+W!6f_kcXxf=Y}s2EjLrdUMnKpn_k=ta|xWQHhWIV}c6-Y4Ypk1z;YcvoEu zAG~f`o!UgCU_&5)Lu^f1}yD_eJ^3R zk+iy`xq6eb(kmdD98628Rt}?s3~Bx*7ot7rWg((iu_fj~Q1)?8R7;xCp~uAjRTN&6`pmS}|&5DOO-+ zA=ev9C`by8npT$PjiIvG6tYonsFP&U8(x~A#>mdu>|cmJ^yS>&IrrS>Jil|EomCyq zHnK5mVgP{6JeY9=K!ryJmTK_PduPCm4^?Ky-W&__ZOxT;0Gb@~zQ0+1ev_tVk^Cig zWd7~q69rq-`Yfw9cbm+?=_!>mz~ANMQV!&u2@rU|LfL=@(#&dj;9y{27+|slY#08& z{(Ef^bvT5#Mjv!_h|R1b{aYh374bigq8x@qvE7rqppTaA`Xb5R&Ok$-yIFYciz>)) zL(KGBE2I1^FUYAQ#|V}reeJVL*F~43P`bDcznz+10jK)h6E(izYIoLXFQGWy6P4AV ztmJiqUf)^5zvII7qAN}aIT7G80*rUNvwXp}4$qVTmSPNSL{4lEkD2KXCQ#(b@>R^} z5#2Zp$~}Z}rsD?{c@#>2$^<@>Hp~Fzdn6vtO-?Y?YE|ElwEqqrdLE z77Xv{MJHaOs~nA?oP{_qr;Ko*G$V8a*%FCI?hYz1iQ!Qr*q(d2MqbzG3l13}P(_#X643E>PmAbksRl6Pi3LLyv3N-= z9MR@B$OwFD1Wm&T;^+}%w+iC8KLyMw`nmTU#lnNc^EMefQr|;uJWG{kkox=?Y~A2O z|7=UBn^(KBOt^*xB~QYEw+(}=rndErVzFPf6el4h`#|173CUy}6lz@1#(W(Sl?di0 z3)Ut)D93Qs)X~+v0t6(&>-PinQ2D8RHH_us!GOY1T8QWtB-%@dRx;U0^kktVy6hi8 zj<3f`ZDd|yxzZ+V?Nwe4d4yyyCb&X1blra@is8frm{pPNjz$b>YEFwZ#v*N|QJJw! zJkn>YKXCe5(ba>ZP)wAZD1=b;B)cRb^vzc>ImD&oR-C5+E{~3U1Lk!WM7E~w6Vklk z(m*WrA~m{I*QR3bt!QpqAri|KB5SpbB(cR0@t<8 diff --git a/test/integration/render-tests/debug/tile/style.json b/test/integration/render-tests/debug/tile/style.json index cd2240afff3..3188f1a0d63 100644 --- a/test/integration/render-tests/debug/tile/style.json +++ b/test/integration/render-tests/debug/tile/style.json @@ -12,6 +12,14 @@ ], "zoom": 14, "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 1, + "tileSize": 256 + }, "mapbox": { "type": "vector", "maxzoom": 14, @@ -30,6 +38,14 @@ "background-color": "white" } }, + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + }, { "id": "line", "type": "symbol",