[Spanish] Re: problemas con tilecache
josego
josego at simgia.com
Fri Jan 6 10:29:38 EST 2012
El 26/12/11 18:11, josego escribió:
> Hola a todos.
> Estoy usando tilecache y no se como encontrar bien las resoluciones.
> En algunas partes me dibuja bien el mapa pero no en todas partes.
> Mi mapserver tiene la siguiente extensión --> -62.6454 -27.4933
> -54.1077 -19.2755
>
> Mi openlayer también tiene la misma extension como también el
> tilecache. No se como encontrar bien el tilecache. No se si me podrían
> dar links o ejemplos para poder realizar. Estoy hace una semana viendo
> y no encuentro la solución. No se que requisitos necesitaría para
> realizar correctamente.
>
>
> muchas gracias por todo.
> saludos, jose
Problema resuelto. Les dejo como yo realice el tema:
Para conseguir las resoluciones y colocar en el tileCache
OBS:
Las aplicaciones que se usan y funciona el tilecache son:
* MapSever 5.6
* OpenLayers 2.10
* TileCache 2.10
*OBS*:
TileCache 2.11 tiene un bug.
Para obtener la revolución de cada zoom del tilecache sincronizando el
OpenLayer se tienen que seguir algunos pasos:
* Las resoluciones (atributo resolutions del tilecache y del
openlayer) tienen que coincidir. Ejemplo:
o OpenLayers (dentro de las opciones del map:
+ resolutions:
[0.013052769,0.00846666,0.00070555,0.00007937,0.000079371095,0.000003968477],
o TileCache:
+ resolutions=0.013052769,0.00846666,0.00070555,0.00007937,0.000079371095,0.000003968477,0.091309,0.005706609,0.00071335068,0.000089168836,0.000044584418,0.0028534028,0.022827
o OBS: en el tilecache tiene mas resoluciones que en el
openLayer pero eso debería ser así porque o sino salen
varios errores en el navegador con el OpenLAyers. Regla
general de esta parte. Las resoluciones del tilecache y del
openlayers tienen que ser iguales. Una vez hecho esto,
probar con el openlayers y si salen, errores, colocar esas
nuevas resoluciones.
* Los valores de xmin, xmax, ymin y ymax tienen que coincidir entre
el tilecache y el openlayers. El atributo del openlayer se llama
maxExtent que esta dentro de las opciones del map. El atributo en
el tilecache se llama bbox.
o Ejemplo en el openLayers:
+ maxExtent: new
OpenLayers.Bounds(-62.6454,-27.4933,-54.1077,-19.2755),
o Ejemplo en el tilecache:
+ bbox=-62.6454,-27.4933,-54.1077,-19.2755
* Los valores del maxResolution tienen que coincidir entre el
tileCache y el OpenLayers. El atributo de ambos se llama
maxResolution. Esto es necesario para cuando se hace zoom de abajo
para arriba y aparecen errores. Con esto limitamos la
maxResolutions que puede tener nuestro programa.
o Ejemplo en OpenLayers:
+ maxResolution: 0.013052769,
o Ejemplo en TileCache:
+ maxResolution=0.013052769
* Los valores de los zooms tienen que coincidir. El atributo en
openlayers que se ubica en las opciones del mapa se llama
numZoomLevels, y el atributo en el tileCache se llama levels.
o Ejemplo en el OpenLayers:
+ numZoomLevels: 6
o Ejemplo en el tileCache:
+ levels=6
* Los tiles tiene que coincidir entre ambos. El atributo en el
openLayers se llama tileSize y en el tileCache se llama size.
o Ejemplo en el OpenLayers:
+ tileSize: new OpenLayers.Size(256, 256),
o Ejemplo en el tileCache:
+ size=256,256
*Dos***formas de hallar la resolucion:
1. Para hallar las resoluciones usen la calculadora (qcalculate),
porque tiene mas decimales que el programa gcalctool que trae por
defecto en gnome. Para las resoluciones mas bajas se necesitan
mejor precisión en los decimales.
Referencias
INCHES_PER_UNIT['dd'] = 4374754
DOTS_PER_INCH = 72
La formula que se usa para la resolucion es =
resolution = scale / (inches_per_unit * dots_per_inch)
Ejemplo con la escala 1250:
resolution = 1250 / (72 * 4374754) = 0.0000039684771
2. En caso que salgan errores en el OpenLayer, por ejemplo esto ?
http://localhost/tilecache/tilecache.py?LAYERS=MapaParaguay&TRANSPARENT=false&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-56.801631111111,-27.4933,-50.957862222222,-21.649531111111&WIDTH=256&HEIGHT=256
<http://localhost/tilecache/tilecache.py?LAYERS=MapaParaguay&TRANSPARENT=false&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-56.801631111111,-27.4933,-50.957862222222,-21.649531111111&WIDTH=256&HEIGHT=256>
Agarramos el valor absoluto entre (xmin - xmax)/tamaño del tileCache. En
este caso seria (50.95786222222 - 56.80163111111)/256=0.022827222.
Ojo: el 256 es el valor del tamaño del tile.
Luego con ese valor =0.02282722*72 * 4374754= 7190170
Formula anterior: ((xmin - xmax)/tamaño del
tileCache)*DOTS_PER_INCH*INCHES_PER_UNIT['dd']
Y por ultimo 7190170/(72*4374754)=0.02282722 ? este es el valor de
la resolucion que colocamos en el tilecache. El valor 7190170 seria la
escala.
Formula anterior: resolution = scale / (inches_per_unit * dots_per_inch)
Luego borramos los tmp del tilecache y reiniciamos el servidor apache.
Ahora debería de funcionar el OpenLayers sin errores.
Esto es todo y así debería de funcionar todo. XD
saludos, jose
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.osgeo.org/pipermail/spanish/attachments/20120106/3de472fa/attachment-0001.html
More information about the Spanish
mailing list