[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