Using JOIN for querying

cris ricana crisricana at GMAIL.COM
Wed Aug 30 05:50:05 EDT 2006


Thanks for replying, Manfred.
Here are some replies to your question:

> I do not know how to use JOIN. But since nobody replied to your
> question, perhaps you can add information, if the test you made, give
> you the correct result when you do !!not!! use the JOIN.
>
Yes, everything works when I don't use JOIN. That is, if I use only
the shapefile (I mean that the whole set, including the .shp, .dbf and
.shx files), and use in the query only those  data specific in the dbf
of the shapefile.


> If I understand right, then JOIN adds some data but no spatial
> information. So at the first sight it seems unlikely that the result of
> msQueryByPoint is related to a JOIN.
>
> So does this message appear only when you add the JOIN to the mapfile?

The data (in form of csv files) I'm adding do not have spatial
information, if you mean by spatial information as something like the
lat/lon of a region, for example (I'm dealing with areal data, by the
way). In fact it only contains additional socioeconomic statistics of
these region. The dbf file of the shapefiles contains the spatial
information of these regions, and I'm trying to add more info on these
places via JOIN and only during query requests, instead of creating a
very large dbf with all the info in them.

Actually the error is what I'm confused about. As far as I know, the
msQueryByPoint message means that I had forgotten to indicate a
template file in my CLASS statement right? But as far as I read the
manual, the JOIN statement's format does not need the CLASS part, one
just need to add TEMPLATE "<name of template file>" in the JOIN part.
In fact if I insert the following in the JOIN part as such:
 (...)
JOIN
    CONNECTIONTYPE CSV
    (...)
    CLASS
          TEMPLATE "reg_bndary 2000_dbf.html"
     END
END
(...)

It returns with the following error:
      loadJoin(): Unknown identifier. Parsing error near (CLASS):(line 164)

Oh and yes, the msQuerybyPoint message only appears when I add the
JOIN in my mapfile.


Maricris




On 8/30/06, Manfred Meier <m.meier at spiekermann.de> wrote:
> Hi,
>
> I do not know how to use JOIN. But since nobody replied to your
> question, perhaps you can add information, if the test you made, give
> you the correct result when you do !!not!! use the JOIN.
>
> If I understand right, then JOIN adds some data but no spatial
> information. So at the first sight it seems unlikely that the result of
> msQueryByPoint is related to a JOIN.
>
> So does this message appear only when you add the JOIN to the mapfile?
>
> Manfred
>
>
>
> cris ricana schrieb:
> > Hello!
> >
> > I'd like some help regarding my use of JOIN in my mapserver setup. I'm
> > using two sets of data, a base shapefile ("reg_bndary") containing
> > basically place information and system-generated csv files containing
> > all the relevant information regarding these places in the shapefiles.
> > Both have a common field called Place_ID to be used for the join. I
> > was planning to use these csv in times when the users want to query
> > for detailed information on these places. My map file looks like this
> > (the JOIN part is near the end):
> >
> > NAME reg_bndary2000.map
> > SIZE 600 600
> > EXTENT 114.03 3.8315 131.33 21.1585
> > SHAPEPATH "data"
> > IMAGETYPE PNG
> > UNITS meters
> >
> > WEB
> >  TEMPLATE 'reg_bndary2000.html'
> > #  IMAGEPATH '/home/mis/DIRP/maps/'
> > #  IMAGEURL 'home/mis/DIRP/maps/'
> >  IMAGEPATH '/home/yronald/htdocs/maps/test_map/maps/'
> >  IMAGEURL '/test_map/maps/'
> > END  #WEB
> >
> > QUERYMAP
> >  SIZE 600 600
> >  STATUS ON
> >  STYLE SELECTED
> >  COLOR 255 0 0
> > END
> > (...)
> >  LAYER
> >  NAME CY_2000
> >  TYPE polygon
> >  STATUS ON
> >  DATA reg_bndary
> >  CLASSITEM COUNT
> >  LABELITEM REGION
> >   (...)
> >  HEADER "reg_bndary2000_header.html"
> >  FOOTER "reg_bndary2000_footer.html"
> >
> >  JOIN
> >        NAME "reg_join"
> >        CONNECTIONTYPE CSV
> >        TABLE "lgu_DB_DACCESS_PROV.csv"
> >        FROM "Place_ID"
> >        TO "1"
> >        TEMPLATE "reg_bndary 2000_dbf.html"
> >     END #join
> > END  # LAYER
> > END  # MAPFILE
> >
> > The template file used for , "reg_bndary 2000_dbf.html", contains
> > simply the following:
> > [reg_join_REGION]<br>
> > [reg_join_PLACE]
> >
> > When when I test this, I get the following error:
> >
> >       msQueryByPoint(): Search returned no results. No matching
> > record(s) found.
> >
> > Can somebody help me tell me what is wrong in my setup?
> >
> >
> > Thanks!
> > Maricris
> >
>
>



More information about the mapserver-users mailing list