[OpenLayers-Users] TileCache + GetFeatureinfo(Geoserver1.6.4)?
Xiaoyu Guan
guanxiaoyu at gmail.com
Thu Jul 31 08:04:34 EDT 2008
Dear All:
I have a problem on building getFeatureinfo. I have use Geoserver 1.6.4, and
Tilecache. I pointed my geoserver sample page to my tilecache. then I still
want getfeatureinfo function of Geoserver. I try to modified it, but not
success.
var map;
var testlayer;
var tiled;
function setHTML(response) {
document.getElementById('nodelist').innerHTML =
response.responseText;
};
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;
function init(){
var bounds = new OpenLayers.Bounds(
143.83482400000003, -43.648056,
148.47914100000003, -39.573891
);
var options = {
controls: [],
maxExtent: bounds,
maxResolution: 0.018141863281250004,
projection: "EPSG:4326",
units: 'degrees'
};
map = new OpenLayers.Map('map', options);
// setup tiled layer
tiled = new OpenLayers.Layer.WMS(
"Geoserver layers - Tiled",
"http://127.0.0.1:2010/tilecache/tilecache.py",
{
layers: 'tasmania',
styles: '',
height: '658',
width: '800',
srs: 'EPSG:4326',
format: 'image/png',
tiled: 'true',
tilesOrigin : "143.83482400000003,-43.648056"
},
{buffer: 0}
);
map.addLayer( tiled);
// setup controls and initial zooms
map.addControl(new OpenLayers.Control.PanZoomBar());
map.addControl(new OpenLayers.Control.Navigation());
map.addControl(new OpenLayers.Control.Scale($('scale')));
map.addControl(new
OpenLayers.Control.MousePosition({element: $('location')}));
map.addControl(new OpenLayers.Control.LayerSwitcher());
//map.addControl(new OpenLayers.Control.OverviewMap());
map.zoomToExtent(bounds);
testlayer = new OpenLayers.Layer.WMS(
"Geoserver layers - Untiled",
"http://127.0.0.1:2008/geoserver/wms",
{
layers: 'tasmania',
styles: '',
height: '658',
width: '800',
srs: 'EPSG:4326',
format: 'image/png'
},
{singleTile: true, ratio: 1}
);
// here I would like to add stuff like this
//then geoserver only contain one layer, which is testlayer
var geoserver = map;
geoserver.addLayer(testlayer);
// support GetFeatureInfo
geoserver.events.register('click', geoserver, function (e) {
document.getElementById('nodelist').innerHTML =
"Loading... please wait...";
var url = geoserver.layers[0].getFullRequestString(
{
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
BBOX: geoserver.getExtent().toBBOX(),
X: e.xy.x,
Y: e.xy.y,
INFO_FORMAT: 'text/html',
QUERY_LAYERS: geoserver.layers[0].params.LAYERS,
FEATURE_COUNT: 50,
WIDTH: geoserver.size.w,
HEIGHT: geoserver.size.h
},
"http://127.0.0.1:2008/geoserver/wms"
);
OpenLayers.loadURL(url, '', this, setHTML, setHTML);
OpenLayers.Event.stop(e);
});
}
b
because I am not a JavaScript expert. it is hard for me to replace the
layer, such as map.layers[0]. how can use tilecache as base layer, and have
getFeatureInfo on top of it at same time?
Much much thanks
all the best
Xiaoyu
PS, I have already send a copy to Geoserver mailling list
--
Xiaoyu Guan (Sam)
Geo-information Science
Wageningen UR
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20080731/72d50f67/attachment.html
More information about the Users
mailing list