[Tilecache] TileCache + MapServer + Openalyers + WMS (Google
Mercator)
Òscar Vidal Calbet
oscarblo at gmail.com
Mon Feb 28 10:25:01 EST 2011
Hi everyone!
I'm using TileCache + MapServer + OpenLayers and trying to publish a
WMS from Geotiff in Mercator (EPSG:900913). I'm having difficulties
and the result is not that I expect. Below are the different parts of
my problems.
Bathymetry.tif
================================
Geotiff file in EPSG:900913
Corner Coordinates:
Upper Left (-5038852, 5970000)
Lower Left (-5038852, 3420000)
Upper Right (-1412452, 5970000)
Lower Right (-1412452, 3420000)
WMS.map
================================
MAP
NAME "WMS-test"
STATUS ON
SIZE 600 400
# its The same extend that the file Bathymetry.tif in projected
coordinates. Have to be in geographic?
EXTENT -5038852 3420000 -1412356 5970000
# Bathymetry.tif extend in geographic coordinates
# EXTENT -45.26477766016219 29.347893202612525 -12.687409814179109
47.1708141841107
UNITS METERS
SHAPEPATH "/data/coverages/zoomazores/"
IMAGECOLOR 255 255 255
OUTPUTFORMAT
NAME png24
DRIVER "GD/PNG24"
MIMETYPE "image/png"
IMAGEMODE RGB
EXTENSION "png"
END
WEB
METADATA
"wms_title" "WMSDemo"
"wms_onlineresource"
"http://localhost/cgi-bin/mapserv?map=/var/www/mapserver/WMS.map"
"wms_srs" "EPSG:900913"
"wms_format" "image/png"
END
END
PROJECTION
"init=epsg:900913"
END
LAYER
NAME "bathymetry"
# The same extend that the file Bathymetry.tif in projected coordinates.
EXTENT -5038852 3420000 -1412356 5970000
# Bathymetry.tif extend in geographic coordinates
# EXTENT -45.26477766016219 29.347893202612525 -12.687409814179109
47.1708141841107
# Mercator full extend in projected coordinates.
# EXTENT -20037508.34 -20037508.34 20035017.34 20035017.34
METADATA
"wms_title" "bathymetryshaded"
END
TYPE RASTER
STATUS ON
DATA "Bathymetry.tif"
PROJECTION
"init=epsg:900913"
END
END
END
Tilecache.cfg
================================
[bathymetryshaded]
size = 256,256
srs = EPSG:900913
type = WMS
url = http://localhost/cgi-bin/mapserv?map=/var/www/mapserver/WMS.map
layers = bathymetryshaded
mapfile = /var/www/mapserver/WMS.map
# bbox = -20037508.34, -20037508.34, 20035017.34, 20035017.34
# bbox = -45.26477766016219,29.347893202612525,-12.687409814179109,47.1708141841107
bbox = -5038852, 3420000, -1412356, 5970000
extension = png
# extent_type = loose
levels = 11
maxresolution = 7083 ## maxResolution = (max-X – min-X) / 512
# maxresolution = 1222.992452344 # google
metaTile=true
tms_type=google
spherical_mercator=true
1 Request URL
================================
http://localhost/cgi-bin/tilecache.cgi?LAYERS=bathymetryshaded&SERVICE=WMS&SRS=EPSG:900913&BBOX=-5038852,
3420000, -1412356, 5970000
# PROBLEM (1)
An error occurred: can't find resolution index for 14166.000000.
Available resolutions are:
[156543.03390000001, 78271.516950000005, 39135.758475000002,
19567.879237500001, 9783.9396187500006, 4891.9698093750003,
2445.9849046875001, 1222.9924523437501,
2 Request URL
================================
http://localhost/cgi-bin/tilecache.cgi?LAYERS=bathymetryshaded&SERVICE=WMS&SRS=EPSG:900913&BBOX=-20037508.34,
-20037508.34, 20035017.34, 20035017.34
# PROBLEM (2)
# The image (SIZE 600 400) that I can visualize in the browser is
white having inside my data in a small really part.
OpenLayers
================================
function init(){
var maxbounds = new OpenLayers.Bounds(-20037508.34,-20037508.34,
20037508.34, 20037508.34);
zoomBbox = new OpenLayers.Bounds(-5038852, 3420000, -1412356, 5970000);
var options = {
controls: [],
maxExtent: maxbounds,
restrictedExtent: zoombounds,
projection: new OpenLayers.Projection('EPSG:900913'),
units: 'metres',
minZoomLevel:7,
maxZoomLevel:17,
numZoomLevels:10,
maxResolution: 1222.992452344
};
map = new OpenLayers.Map('map', options);
var tiled = new OpenLayers.Layer.TileCache(
"teste",
"http://localhost/cgi-bin/tilecache.cgi?",
{
layers: 'bathymetryshaded',
format: 'image/png',
srs: 'EPSG:900913',
serverResolutions: [1222.992452344, 611.496226172, 305.748113086,
152.874056543, 76.437028271, 38.218514136, 19.109257068, 9.554628534,
4.777314267, 2.388657133, 1.194328567],
tileSize: new OpenLayers.Size(512,512)
},
{
isBaseLayer: true
}
);
map.addLayers([tiled]);
map.zoomToExtent(zoomBbox);
}
# PROBLEM (3)
# I only can see transparent tiles, there is not map.
Questions
================================
Is it possible to specify the bbox on projected coordinates in
tilecache.cfg file?
Am I missing something?
It's a good approach?
I think until the MapServer side it's right because it can show the
image on the browser with the following request:
http://localhost/cgi-bin/mapserv?map=/var/www/mapserver/WMS.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=bathymetryshaded&STYLES=&SRS=EPSG:900913&BBOX=-3586380.0348868947,4286595.390705814,-2690369.4534918354,4996719.237946053&WIDTH=600&HEIGHT=400&FORMAT=image/png
I tried creating the tiles with the tilecache_seed, specifying the
-bbx option, but I only get withe/transparent tiles. Its related
with the problem (2) our (3)
Right now I have no ideas on how to solve it and so I feel lost.
I will really appreciate some help.
Thanks in advance!
Oscar
More information about the Tilecache
mailing list