Faltou um pouco do código de openlayers que queria mostrar para o cálculo das referências em X e Y. Aqui vai a parte que falta:<div><br></div><div><div>function zeroPad(number, length) {</div><div> number = String(number);</div>
<div> var zeros = [];</div><div> for(var i=0; i<length; ++i) {</div><div> zeros.push('0');</div><div> }</div><div> return zeros.join('').substring(0, length - number.length) + number;</div>
<div> }</div><div> var components = [</div><div> this.layername,</div><div> zeroPad(tileZ, 2),</div><div> zeroPad(parseInt(tileX / 1000000), 3),</div><div> zeroPad((parseInt(tileX / 1000) % 1000), 3),</div>
<div> zeroPad((parseInt(tileX) % 1000), 3),</div><div> zeroPad(parseInt(tileY / 1000000), 3),</div><div> zeroPad((parseInt(tileY / 1000) % 1000), 3),</div><div> zeroPad((parseInt(tileY) % 1000), 3) + '.' + this.extension</div>
<div> ];</div><br><div class="gmail_quote">2012/2/20 Hugo <span dir="ltr"><<a href="mailto:hfpmartins@gmail.com">hfpmartins@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Olá Joaquim,<div><br></div><div>Para construir um request para tilecache usam-se os seguintes parâmetros:</div><div>1- O zoom com 2 casas decimais (00; 01; etc)</div><div>2- A referência em X com 3 casas (ex: /000/000/000/)</div>
<div>3- A referência em Y com 3 casas decimais (ex: /000/000/001)</div><div>4- A extensão da imagem (.png) </div><div><br></div><div>As fórmulas de cáluco para a referência em X e Y consegui através do OpenLayers que mostra o seguinte:</div>
<div><div>var tileX = Math.round((bounds.left - bbox.left) / (res * size.w));</div><div>var tileY = Math.round((bounds.bottom - bbox.bottom) / (res * size.h));</div><div>var tileZ = this.serverResolutions != null ? OpenLayers.Util.indexOf(this.serverResolutions, res) : </div>
<div>this.map.getZoom();</div></div><div><br></div><div>Assim, um request final seria qq coisa como:</div><div><a href="http://localhost/tilecache/Cartas_militares/00/000/000/000/000/000/001.png" target="_blank">http://localhost/tilecache/Cartas_militares/00/000/000/000/000/000/001.png</a></div>
<div><br></div><div>Já consegui encontrar as fórmulas que permitem, através de uma bounding box, calcular os tiles que a contêm. O que quero fazer agora é precisamente o oposto, isto é, tendo por base cada tile, calcular o seu bounding box. Aliás, uma vez que tenho as resoluções e o tamanho em pixeis do tile, apenas me bastaria calcular uma coordenada de um canto qualquer e a partir daí conseguiria derivar o bbox. É aqui que estou com problemas!</div>
<div><br></div><div>Abc,</div><div>Hugo<div><div class="h5"><br><br><div class="gmail_quote">2012/2/20 Joaquim Luis <span dir="ltr"><<a href="mailto:jluis@ualg.pt" target="_blank">jluis@ualg.pt</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>On 20-02-2012 17:09, Hugo wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Olá a todos,<br>
<br>
Por acaso ninguém sabe de alguma referência que indique as fórmulas de cálculo do bounding box para cada tile gerado pelo tilecache?? Estou farto de andar à procura disto mas até agora nao consegui encontrar nada.<br>
<br>
Abc,<br>
Hugo<br>
<br>
</blockquote>
<br></div>
Hugo,<br>
<br>
Eu ainda não experimetei o tilecache mas possivelmenet ele usa uma numenclatura tipo "árvore de quadrados" (liberal para Quadtree).<br>
Os nomes dos ficheiros (tiles) são compostos por repetições de 4 caractéres? Tipo 'qrst' (numenclatura da Google) ou '0123' (Bing)?<span><font color="#888888"><br>
<br>
Joaquim<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div></div></div><div class="im">-- <br>Hugo Martins<br>LabNT - ISEGI UNL<br>Campus de Campolide<br>1070-312 Lisboa<br>N 38°43'56.84", W 9°9'35.74"<br>
</div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Hugo Martins<br>LabNT - ISEGI UNL<br>Campus de Campolide<br>1070-312 Lisboa<br>N 38°43'56.84", W 9°9'35.74"<br>
</div>