JOIN object usage in a mapfile {Scanned}

oven38 oven38 at VOLJA.NET
Mon Jan 15 07:21:27 PST 2007


Here is my working example ONE-TO-MANY JOIN with PostgreSQL :

LAYER
  NAME "plan-var-predpis-sel"
  STATUS OFF
  CONNECTIONTYPE postgis
  CONNECTION "user=koper password=koper dbname=gisdb host=localhost"
  DATA "the_geom from loki_091"
  TYPE POLYGON
  JOIN
   NAME testjoin
   CONNECTIONTYPE postgresql
   CONNECTION "user=uname password=pwd dbname=databasename host=hname"
   TABLE plan_pia_data
   TO pia_osn
   FROM akt_id
   TYPE ONE-TO-MANY
   TEMPLATE "one_to_many.html"
  END
  CLASS
      SYMBOL 'DIAGONALA_D'
      SIZE 3
      COLOR 255 255 0
  END
  TEMPLATE "one_to_many_head.html"
  TOLERANCE 0
END

one_to_many_head.html :

[join_testjoin]

one_to_many.html :

<BR> FROM_ID :[akt_id]
<BR> TO_ID   :[testjoin_pia_sif]
<BR> NAME    :[testjoin_name]
<BR> NOTE    :[testjoin_note]

Also see http://mapserver.gis.umn.edu/bugs/show_bug.cgi?id=2006


lp Alfred

Jeff McKenna wrote:
> Thanks Zoltan, that was it.
> 
> I'll include my example on the join page.
> 
> jeff
> 
> 
> 
> 
> Siki Zoltan wrote:
>> Hi Jeff,
>>
>> You should refer to the column in the joined table in your template like
>> [joinname_columnname]
>>
>> In your case it should be
>> [test_VAL]
>>
>> Be carefull with the upper and lower case letters!
>>
>> Zoltan
>>
>> On Sun, 14 Jan 2007, Jeff McKenna wrote:
>>
>>> Hello everyone,
>>>
>>> For the first time I am trying to use the mapfile JOIN object, and I 
>>> can't seem to get it to work.  From the mapjoin.c file I can see that 
>>> DBF, CSV, PostgreSQL, and MySQL are supported.  I have personally 
>>> tried to view query results joined from DBF, CSV, and PostgreSQL 
>>> tables unsucessfully.  (my goal is to also update the sparse 
>>> documentation for this also on 
>>> http://mapserver.gis.umn.edu/docs/reference/mapfile/join).   Here is 
>>> my DBF test case:
>>>
>>> Test Environment
>>> ****************
>>>
>>> mapserver 4.10.0
>>> windows
>>>
>>> mapfile layer
>>> *************
>>>
>>> LAYER
>>>    NAME prov_bound
>>>    TYPE POLYGON
>>>    STATUS DEFAULT
>>>    DATA prov
>>>    CLASS
>>>      NAME "Province"
>>>      STYLE
>>>        OUTLINECOLOR 120 120 120
>>>        COLOR 255 255 0
>>>      END
>>>    END
>>>    TEMPLATE "../htdocs/cgi-query-templates/prov.html"
>>>    HEADER "../htdocs/cgi-query-templates/prov-header.html"
>>>    FOOTER "../htdocs/cgi-query-templates/footer.html"
>>>    JOIN
>>>      NAME "test"
>>>      TABLE "../data/lookup.dbf"
>>>      FROM "ID"
>>>      TO "IDENT"
>>>      TYPE ONE-TO-ONE
>>>    END
>>> END # layer
>>>
>>> ogrinfo
>>> *******
>>>
>>>  >ogrinfo lookup.dbf lookup -summary
>>> INFO: Open of `lookup.dbf'
>>> using driver `ESRI Shapefile' successful.
>>>
>>> Layer name: lookup
>>> Geometry: None
>>> Feature Count: 12
>>> Layer SRS WKT:
>>> (unknown)
>>> IDENT: Integer (2.0)
>>> VAL: Integer (2.0)
>>>
>>>  >ogrinfo prov.shp prov -summary
>>> INFO: Open of `prov.shp'
>>> using driver `ESRI Shapefile' successful.
>>>
>>> Layer name: prov
>>> Geometry: Polygon
>>> Feature Count: 12
>>> Extent: (-2340603.750000, -719746.062500) - (3009430.500000, 
>>> 3836605.250000)
>>> Layer SRS WKT:
>>> (unknown)
>>> NAME: String (30.0)
>>> ID: Integer (2.0)
>>>
>>>
>>> Template
>>> ********
>>>
>>> <tr bgcolor="#EFEFEF"><td align="left">[NAME]</td><td 
>>> align="left">[VAL]</td></tr>
>>>
>>> Query Results
>>> *************
>>>
>>> Layer: Provinces
>>>
>>> NAME    VAL
>>> ====    ====
>>> Ontario    [VAL]   
>>>
>>> Other Notes
>>> ***********
>>>
>>> - the join seems to be happening, because if I specify false FROM/TO 
>>> values errors are thrown, yet I cannot get values to appear from the 
>>> [VAL] field
>>> - ID/IDENT are integer values from 1 to 12
>>> - the join works with desktop GIS packages
>>>
>>>
>>> Can someone see what I am doing wrong?
>>>
>>> thanks.
>>>
>>> jeff
>>>
>>>
>>>
>>
> 
> 



More information about the MapServer-users mailing list