[OpenLayers-Users] some questions about popup extent & hyperlink

P Kishor punk.kish at gmail.com
Mon Dec 21 10:31:59 EST 2009


On Mon, Dec 21, 2009 at 9:22 AM, beppe <beppenapo at gmail.com> wrote:
> Hi,
> I'm an italian OL's newbie, I come from a mapserver world and I'm very
> happy to discover every day something about OpenLayers!
> I've this code [1] and this mapfile [2], the geographic elements are
> stored in a postgis table.
> The code works but in the popup window, info are displayed like this:
> "GetFeatureInfo results: Layer 'ut' Feature 78: paese = 'Coredo'
> localita = 'S. Barbara'"
> Obviously I don't want info about "GetFeatureInfo", "Layer" and
> "Feature", but only about "paese" and "localita".
> The info, then, are print like a "text string". I'd want print the info
> in table style...but I don't know how !!!
>


You don't have a TEMPLATE in your mapfile... (it says TEMPLATE void).
Define a TEMPLATE, and in that template (an HTML file), create your
table like so

<TABLE>
<TR><TD>Paese</TD><TD>[paese]</TR>
<TR><TD>Localita</TD><TD>[localita]</TR>
</TABLE>



> Question 2.
> I'd like to have in popup an hyperlink to a page in wich print a map
> with the extent of the selected feature, but:
> 1. my feature are point
> 2. I don't know how write the code!!!
>
> Any ideas, example or tutorial?
> thanks
>
> -beppe-
>
> [1]
> OpenLayers.ProxyHost = "http://localhost/cgi-bin/proxy.cgi?url=";
>
> var map;
> var info;
> // pink tile avoidance
> OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
> // make OL compute scale according to WMS spec
> OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;
>
> function init(){
>  var format = 'image/png';
>  var bounds = new OpenLayers.Bounds(
>  653890.824038, 5121367.412500, 673982.300962, 5139410.087500
>   );
> var options = {
>      controls: [],
>      maxExtent: bounds,
>      maxResolution: 40.83535156249854,
>      projection: "EPSG:3003",
>      units: 'm'
>    };
>
> map = new OpenLayers.Map('map', options);
>
> // setup comuni
> var comuni = new OpenLayers.Layer.WMS(
>                    "comuni",
> "http://localhost/cgi-bin/mapserv?map=/var/www/vervo/config/default/pmapper_demo.map&",
>                    {layers: 'confini_com',
>                     tiled: 'true',
>                     tilesOrigin : "657732.15,5120937.825",
>                   },{buffer: 0}
>                );
> map.addLayer(comuni);
>
>
> var ctr = new OpenLayers.Layer.WMS("ctr",
> "http://localhost/cgi-bin/mapserv?map=/var/www/vervo/config/default/pmapper_demo.map&",
>             {layers: 'ctr',
>             srs: 'EPSG:3003',
>             tiled: 'true',
>             transparent: 'true',
>             format: format});
> map.addLayer(ctr);
>
> // setup ut
> var ut = new OpenLayers.Layer.WMS(
>                        "ut",
> "http://localhost/cgi-bin/mapserv?map=/var/www/vervo/config/default/pmapper_demo.map&",
>                    {srs: 'EPSG:3003',
>                     layers: 'ut',
>                     styles: '',
>                     format: format,
>                     tiled: 'true',
>                     tilesOrigin : "658390.746875,5121279.4",
>                     transparent: 'true'
>                    },
>                    {buffer: 0}
>                );
> map.addLayer(ut);
>
> // build up all controls
> map.addControl(new OpenLayers.Control.PanZoomBar({
>        position: new OpenLayers.Pixel(2, 15)
>                }));
> map.addControl(new OpenLayers.Control.Navigation());
> map.addControl(new OpenLayers.Control.Scale($('scale')));
> map.addControl(new OpenLayers.Control.MousePosition({element:
> $('location')}));
> map.zoomToExtent(bounds);
>
> //Crea pop-up info
> var createPopup = function(response) {
>        var lonlat = map.getLonLatFromViewPortPx(this.xy);
>        var popup = new OpenLayers.Popup.FramedCloud(
>             "chicken",lonlat, null,response.responseText,null,true);
>             popup.setBackgroundColor("#c1cdc1");
>             popup.setOpacity(0.7);
> map.addPopup(popup, true /* exclusive */);
>
> function onFeatureUnselect(event) {
>        var feature = event.feature;
>        if(feature.popup) {
>                 map.removePopup(feature.popup);
>                 feature.popup.destroy();
>                 delete feature.popup;
>                }
>          }
>        };
>
>                // support GetFeatureInfo
>                map.events.register('click', map, function (e) {
>                    var params = ut.getFullRequestString ({
>                        REQUEST: "GetFeatureInfo",
>                        EXCEPTIONS: "application/vnd.ogc.se_xml",
>                        BBOX: map.getExtent().toBBOX(),
>                        X: e.xy.x,
>                        Y: e.xy.y,
>                        INFO_FORMAT: 'text/plain',
>                        //QUERY_LAYERS: ut.params.LAYERS,
>                        QUERY_LAYERS: ut,
>                        FEATURE_COUNT: 50,
>                        RADIUS: 5,
>                        Srs: 'EPSG:3003',
>                        Layers: 'ut',
>                        //Layers: 'topp:unita\'_territoriali',
>                        //Styles: '',
>                        WIDTH: map.size.w,
>                        HEIGHT: map.size.h,
>                        format: format},
> "http://localhost/cgi-bin/mapserv?map=/var/www/vervo/config/default/pmapper_demo.map&SERVICE=WMS&VERSION=1.1.1&QUERY_LAYERS=ut"
>                        );
>                   // updateFeatureInfoFilters(params);
>                    OpenLayers.loadURL(params, '', e, createPopup);
>                    OpenLayers.Event.stop(e);
>                });
>            }
> -------------------------------------------------
> [2]
> LAYER
>    NAME 'ut'
>    TYPE POINT
>    CONNECTIONTYPE postgis
>    CONNECTION "dbname='mydb' host=localhost port=5432 user='myuser'
> password='mypwd'"
>    DATA 'ut_geo FROM public.ut using unique "id_ut" using SRID=3003'
>  PROJECTION
>    "init=epsg:3003"
>  END
>  TOLERANCEUNITS pixels
>  TOLERANCE 10
>  DUMP TRUE
>  TEMPLATE void
>  METADATA
>    "RESULT_FIELDS" "paese,localita"
>    "RESULT_HEADERS" "Paese, Localita'"
>    "wfs_title" "ut"
>    "wfs_featureid" "ut"
>    "wms_include_items" "paese,localita"
>    "ows_include_items" "paese, localita"
>  END
>  CLASS
>       NAME "Unita' territoriali"
>       STYLE
>         SYMBOL 'circle'
>         SIZE 8
>         OUTLINECOLOR 0 0 0
>         COLOR 222 255 22
>       END
>    END
> END
>



More information about the Users mailing list