[Mapserver-users] Joins in MapServer 3.7dev - not working yet?

Mike Leahy mgleahy at fes.uwaterloo.ca
Fri May 16 14:20:58 EDT 2003


This is a multi-part message in MIME format.

------=_NextPart_000_0073_01C31BAE.00A1D090
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

As someone suggested to me earlier, I have the development version of
Mapserver 3.7.  I am under the impression that this supports single
joins, and may soon support multiple joins.

 

I have the demo running, and I created a test DBF file to join to the
airports layer with a column of values named "TEST", and a column
"QUADNAME" that matches the column of the same name in the shapefile dbf
for Airports.

 

The syntax in the mapfile used is below - info at
http://mapserver.gis.umn.edu/cgi-bin/wiki.pl?MigrationGuide suggests
that the 'TYPE' parameter should be "ONE-TO-ONE" rather than SINGLE, but
this caused an error with MapServer, so I stuck with SINGLE.

 

I pretty much left the templates as is, except I added a column in the
Airports header template for the test value.  In the Airports query
template, I put '[testjoin]' in the appropriate table column, then in
the template for "testjoin", I only have the text '[TEST]' named in
order to return the value from that column in the joined table.
However, the '[testjoin]' parameter is not processed, so that all I see
is [testjoin] final output where I should see the corresponding value
from the [TEST] column in the joined table.

 

Have I arranged the templates improperly, or am I missing some detail in
the join?

 

Many thanks to anyone who can help,

Mike

 

-------layer with join in mapfile----------------

 

LAYER

  NAME airports

  TYPE POINT

  DATA airports

  STATUS OFF

  CLASS

    NAME 'Airports'

    COLOR 128 255 164

    SYMBOL 'circle'

    SIZE 7

    TEMPLATE "airports.html"

    JOIN

      NAME 'testjoin'

      TYPE ONE-TO-ONE

      TABLE "airports_join.dbf"

      FROM "QUADNAME"

      TO "QUADNAME"

      TEMPLATE "airports_join.html"

    END

  END

 

  HEADER "airports_header.html"

  FOOTER "airports_footer.html"

 

  TOLERANCE 5

 

  METADATA

    WMS_TITLE "Airports"

    WMS_ABSTRACT "Airport runways for Itasca County."

    WMS_SRS "EPSG:26915"

  END

END

 

---------------airports_header.html template------------------

 

<font size+1><b>Layer: airports</b> </font><p>

<table cellpadding=5 cellspacing=2 border=0>

<tr
bgcolor=#CCCCCC><th>NAME</th><th>LAT</th><th>LON</th><th>ELEVATION</th><
th>QUADNAME</th><th>TEST</th></tr>

 

---------------airports.html template----------------------

 

<tr><td>[NAME]</script></td><td>[LAT]</td><td>[LON]</td><td>[ELEVATION]<
/td><td>[QUADNAME]</td><td>[testjoin]</td></tr>

 

--------------airports_footer.html template----------------------

 

</table><p>

 

-------------airports_join.html template-------------------

 

[TEST]

 

-------------------------------------------------------------------

 

 

 

 


------=_NextPart_000_0073_01C31BAE.00A1D090
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">


<meta name=3DGenerator content=3D"Microsoft Word 10 (filtered)">

<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{font-family:Arial;
	color:windowtext;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DEN-CA link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>As someone suggested to me earlier, I have the =
development
version of Mapserver 3.7.&nbsp; I am under the impression that this =
supports
single joins, and may soon support multiple joins.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I have the demo running, and I created a test DBF =
file to
join to the airports layer with a column of values named =
&#8220;TEST&#8221;,
and a column &#8220;QUADNAME&#8221; that matches the column of the same =
name in
the shapefile dbf for Airports.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>The syntax in the mapfile used is below - info at <a
href=3D"http://mapserver.gis.umn.edu/cgi-bin/wiki.pl?MigrationGuide">http=
://mapserver.gis.umn.edu/cgi-bin/wiki.pl?MigrationGuide</a>
suggests that the &#8216;TYPE&#8217; parameter should be =
&#8220;ONE-TO-ONE&#8221;
rather than SINGLE, but this caused an error with MapServer, so I stuck =
with SINGLE.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I pretty much left the templates as is, except I =
added a
column in the Airports header template for the test value.&nbsp; In the
Airports query template, I put &#8216;[testjoin]&#8217; in the =
appropriate table
column, then in the template for &#8220;testjoin&#8221;, I only have the =
text &#8216;[TEST]&#8217;
named in order to return the value from that column in the joined =
table.&nbsp;
However, the &#8216;[testjoin]&#8217; parameter is not processed, so =
that all I
see is [testjoin] final output where I should see the corresponding =
value from
the [TEST] column in the joined table.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Have I arranged the templates improperly, or am I =
missing
some detail in the join?</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Many thanks to anyone who can help,</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Mike</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>-------layer with join in =
mapfile----------------</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>LAYER</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; NAME airports</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; TYPE POINT</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; DATA airports</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; STATUS OFF</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; CLASS</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; NAME 'Airports'</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; COLOR 128 255 =
164</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; SYMBOL 'circle'</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; SIZE 7</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; TEMPLATE =
&quot;airports.html&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; JOIN</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NAME =
'testjoin'</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE =
ONE-TO-ONE</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TABLE =
&quot;airports_join.dbf&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM =
&quot;QUADNAME&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TO =
&quot;QUADNAME&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TEMPLATE =
&quot;airports_join.html&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; END</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; END</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; HEADER =
&quot;airports_header.html&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; FOOTER =
&quot;airports_footer.html&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; TOLERANCE 5</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; METADATA</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; WMS_TITLE =
&quot;Airports&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; WMS_ABSTRACT &quot;Airport runways =
for </span></font><font
  size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Itasca</span></font><font
 size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> </span></font><font
  size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>County</span></font><font
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>.&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; WMS_SRS =
&quot;EPSG:26915&quot;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp; END</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>END</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>---------------airports_header.html
template------------------</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&lt;font size+1&gt;&lt;b&gt;Layer: airports&lt;/b&gt; =
&lt;/font&gt;&lt;p&gt;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&lt;table cellpadding=3D5 cellspacing=3D2 =
border=3D0&gt;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&lt;tr
bgcolor=3D#CCCCCC&gt;&lt;th&gt;NAME&lt;/th&gt;&lt;th&gt;LAT&lt;/th&gt;&lt=
;th&gt;LON&lt;/th&gt;&lt;th&gt;ELEVATION&lt;/th&gt;&lt;th&gt;QUADNAME&lt;=
/th&gt;&lt;th&gt;TEST&lt;/th&gt;&lt;/tr&gt;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>---------------airports.html =
template----------------------</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&lt;tr&gt;&lt;td&gt;[NAME]&lt;/script&gt;&lt;/td&gt;&l=
t;td&gt;[LAT]&lt;/td&gt;&lt;td&gt;[LON]&lt;/td&gt;&lt;td&gt;[ELEVATION]&l=
t;/td&gt;&lt;td&gt;[QUADNAME]&lt;/td&gt;&lt;td&gt;[testjoin]&lt;/td&gt;&l=
t;/tr&gt;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>--------------airports_footer.html
template----------------------</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&lt;/table&gt;&lt;p&gt;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>-------------airports_join.html =
template-------------------</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>[TEST]</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>------------------------------------------------------=
-------------</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

</div>

</body>

</html>

------=_NextPart_000_0073_01C31BAE.00A1D090--





More information about the mapserver-users mailing list