[Users] Tutorial / Documentation for Query Panels in GeoExt?

Matt Priour mpriour at kestrelcomputer.com
Thu Sep 8 16:41:38 CEST 2011


proxy problem:
when using override-ext-ajax.js; set OpenLayers.ProxyHost = “cgi-bin/proxy.cgi?url=” (assuming you application is located in the localhost root directory)
configure the URL for the DescribeFeature store, etc directly to the WFS (
   ex: ‘http://localhost:8080/geoserver/wfs” )

Print problem:
>>var printPage = new GeoExt.data.PrintPage({});
You should either ditch the curly braces (“{}”) and let it use the defaults –OR- put some actual configuration information (especially ‘layout’:<Some Valid Layout Name>) in the curly braces.

Matt Priour
Kestrel Computer Consulting


From: Philippe Rufin 
Sent: Thursday, September 08, 2011 7:25 AM
To: Matt Priour ; users at geoext.org 
Subject: Re: [Users] Tutorial / Documentation for Query Panels in GeoExt?

Hi Matt, 

thanks for the fast answer. I added the override-ext-ajax.js, the requests are now send with the URL parameter: 

http://localhost/cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%2Fcgi-bin%2Fproxy.cgi%2Fwfs%3FVERSION%3D1.1.0%26REQUEST%3DDescribeFeatureType%26TYPENAME%3Dcases%26query%3D

It seems, something´s still wrong since adding the js file didn´t help making it work properly. The proxy.cgi URL is now in it twice, how did that happen? How can I  "add the URL myself" here to just test? 

Considering the PrintProvider. I installed the required files properly and the print() function works fine. For adding the print function to my map panel, I used the following code:

       var mapPanel = new GeoExt.MapPanel({
                title: "Case Mapping",
                region: "center",
                viewConfig: {forceFit: true},
                width: 800,
                height: 400,
                map: map,
                layers: [nrw,sttl,lvr,inz,vecLayer],
                bbar: ["->", {
                    text: "Print...",
                    handler: function() { 
                        var printDialog = new Ext.Window({
                                items: [new GeoExt.PrintMapPanel({
                                    sourceMap: mapPanel,
                                    printProvider: new GeoExt.data.PrintProvider({
                                        method: "POST", 
                                        url: "/geoserver/pdf", 
                                        listeners: {
                                        "loadcapabilities": function() {
                                        var printPage = new GeoExt.data.PrintPage({
                    });
            
            printPage.fit(mapPanel, true);
            printProvider.print(mapPanel, printPage);
                }
            }
    })
                                })],
                                bbar: [{
                                    text: "Create PDF",
                                    handler: function() {
                                        printDialog.items.get(0).print();
                                    }
                                }]
                        });
                    printDialog.show();
                    }
                }]
            });

When using this, and trying the print button on the map panel, the following error occurs: 

this.printProvider.layout is null
var printSize = this.printProvider.layout.get("size");  (Line 240 in the PrintMapPanel.js)

Is it any configuration regarding the size of the map panel missing? I tried several settings but didn´t really find out what it might be...

Cheers, 

Philippe


On 05.09.2011 18:15, Matt Priour wrote: 
  1. You are missing the URL parameter in your proxy request. it should be:
  ...proxy.cgi?url=<urlencoded full path to service>
  for example:
  http://localhost/cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3Fversion%3D1.1.0%26request%3DDescribeFeatureType%26typename%3Dcases 

  This will be done automatically for you when using OL methods with your OpenLayers.ProxyHost = “proxy.cgi?url=”
  This will also be handled automatically when you are using this configuration and are using GeoExt’s “override-ajax-ext.js” file which forces all AJAX operations in ExtJS through the OpenLayers.Request class
  If you don’t want to use this file and want to only primarily use GeoExt / ExtJS methods for dynamically configuring the QueryPanel, then you will have to add the url parameter yourself before the request is actually made.

  2. Printing is chiefly done through the Mapfish/Geoserver Print Module on the server side with client side interface provided by GeoExt.data.PrintProvider and its associated classes
  http://www.mapfish.org/doc/print/ 
  http://docs.geoserver.org/latest/en/user/community/printing/index.html 
  http://dev.geoext.org/docs/examples.html#print-preview-window 

  3. Exporting data as CSV can be done as a WFS output format when using Geoserver.
  http://docs.geoserver.org/latest/en/user/services/wfs/outputformats.html 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.geoext.org/pipermail/users/attachments/20110908/6c006dd2/attachment.htm 


More information about the Users mailing list