Dylan Beaudette wrote:

On Sunday 29 July 2007 06:23, you wrote:
On Thu, 28 Jun 2007 18:50:47 -0700, Dylan Beaudette

<[EMAIL PROTECTED]> wrote:
I was in need of this type of functionality, and found it through two
methods:

1. define a query template in your mapfile, and have it redirect the user
to a PHP page which can do related DB lookups and presentation. You can
pass along mapserver query results on the URL.

2. use something like ka-map and adjust how the query system displays the
results in the left-hand side panel. I modified the query functions such
that all searching and presentation was done via postgres+PHP.

let me know if you need the details.
Hi Dylan:

Hi! Glad to hear that you have made some progress.

I'm working on a new site (displaying water quality for farmers around our

...{clipped]...

When I use the query button in the ka-map interface, what I get back (in
the left panel) is :

Layer Name:
Wells
results: 1

Right --  I had the same thing happen... details below.

So it looks like the querying is working in general, just not retrieving
the columns of data. Can you give me any pointers? I'd be glad to try to
rewrite the map_query.php stuff in ka-map if necessary, but what should
that script do exactly? The option to just write a query template in php is
tempting but ka-map seems to be ignoring that TEMPLATE file.

Since I am using the kaExplorer interface, the files you might be interested in are in the folder tools/kaExplorer, specifically startUp.js . However, the query system uses the file map_query_float.php

I made my own version of this file, essentially removing much of what kamap does by default :

right after the lines:
//print common header to the floating query results box:
// echo "<b>Query Results:</b><br>";

... put your stuff here. spatial queries (or attribute) are simple to write in postgis- so I just made some functions which query tables based on either a coordinate pair -- which this PHP function has access to ($coords) -- or a bounding box, pass them to postgis, and return an associative array as the result. loop through the result printing an HTML table -- there is an example in the code -- and there you have it!

Good luck,

Dylan

Thanks for the reply. That's what I was looking for.

BTW, after some more fiddling, here's what I've found regarding ka-map's built in querying system: 1- You must enter "queryable" "true" (obviously) in the METADATA section of each LAYER that you want to query. This point is mentioned in the ka-map wiki : http://ka-map.ominiverdi.org/wiki/index.php/Query

2- You must have all queryable layers in their own GROUP. This I learned from your post:
http://lists.maptools.org/pipermail/ka-map-users/2006-October/002298.html

3- I got query results ONLY when I added a "fields" line in the METADATA section as so:
"fields" "name:Name,drill_dept:Depth,elevation:Elevation,aquifer_na:Aquifer"
It's in the format: "fields"  "column_1:alias_1,column_2:alias_2"
Then the aliases happily appear in ka-map's left hand result window, with data values underneath.

And one additional important piece of information that I gleaned from an obscure post somewhere: My DATA points to a view in postgresql. The view is a join of the geom table and the data table. (I'd assume many people work this way.) In order for the query to work when pointing to a postgresql view, you MUST have a column in the view named 'oid' with unique values. AND the view should be entered into the geometry_columns table in postgis.

It took me a while to collect all these bits and pieces, so I'm trying to post this to mapserver-users also. My first question never made it to the list; hope this gets thru to possibly aid others.

Warm regards,
Micha


--
Micha Silver
Arava Development Co
+972-8-6592270

Reply via email to