Class with join
Stephen Lime
steve.lime at dnr.state.mn.us
Mon Nov 27 13:00:13 PST 2000
Um, nope. No joins are supported for classification purposes. You can only
use directly attached attributes. This was done for performance reasons. It's
technically feasible though.
There are a couple of work arounds. The most straight forward would be
assign a shape to each record in the taxa dataset. You'll have duplicate
shapes (shapefile spec allows it) but with the maps you want to make that
won't be an issue. You can use mapscript to build the shapefile using your
taxa .dbf file as the new attribute table. Here's the approach
1) open sites shapefile and taxa dbf file
2) create a new taxa shapefile (type=point)
3) for each taxa record
- find the appropriate shape in sites
- read it from sites
- write it to taxa
It's redundant but space it cheap and it will certainly be a lot faster. You may also
want to add some metrics to sites.dbf as you go like number of taxa, date range
or whatever.
Steve
Stephen Lime
Internet Applications Analyst
Minnesota DNR
500 Lafayette Road
St. Paul, MN 55155
651-297-2937
>>> Erich Schroeder <erich at museum.state.il.us> 11/27/00 01:46PM >>>
Hi,
I'm hoping that I can do this without mapscript. I have a point coverage
with site locations. Each site can have multiple animal taxa and time
periods associated. I therefore have a sites.dbf file with the following
fields:
1 AREA N 12 3
2 PERIMETER N 12 3
3 SITES_ N 11 0
4 SITES_ID N 11 0
5 COUNTRY C 3 0
and a file with all the taxa and time records with the following fields:
1 SITES_ID N 5 0
2 TAXON C 6 0
3 AGE C 4 0
4 RESTAXON C 6 0
5 RIO C 3 0
I want to be able to make a map file which will just show sites with a
particular taxon, and ultimately just that taxon from a particular age.
I tried this:
LAYER
NAME sites
TYPE POINT
STATUS DEFAULT
DATA sites
CLASS
SYMBOL 4
COLOR 255 0 0
NAME "BIbi Sites"
EXPRESSION ([TAXON] = "BIbi")
JOIN
table "alltaxa.dbf"
type single
from "SITES_ID"
to "SITES_ID"
END # join
END
END
But this doesn't work as Joins are to be used in queries, as I understand.
I'm sure that what I want to do is possible, but I don't know how.
eks
---------------------------------------------------------------------
Erich Schroeder Phone: (217)785-0033
Curator, Information Technologies FAX: (217)785-2857
Illinois State Museum GIS Lab Internet: erich at museum.state.il.us
http://www.museum.state.il.us/
---------------------------------------------------------------------
More information about the MapServer-users
mailing list