Assign special dbf to shapefile

Abe Gillespie agillesp at VT.EDU
Fri Jan 7 12:59:34 EST 2005


Actually, I just somewhat detailed the process of doing external
queries and then linking them into MapServer just yesterday.  See the
thread titled "MySQL or Oracle queries..."  if you're curious.

-Abe

On Jan 7, 2005, at 12:31 PM, Ken Lord wrote:

> This definately calls for PostGIS, and I'm sure it would process the
> request much faster.
>
> But,
>
> Why not use the join object in mapserver?
>
> http://mapserver.gis.umn.edu/doc44/mapfile-reference.html#join
>
> Or is this join system, that was broken i think after mapserver 3.4,
> still not functional? ... and if it is still not functional why have
> the instructions remained in the current documentation for the last 2
> years+ ... since at least mapserver 3.6?
>
> There is another option:
>
> Don't join the data on-the-fly. Instead when the user queries the
> airport, have a link parsed in the query results that when followed
> displays the attribute data you want based on the query results
> returned. ... A little ASP works wonders here to take a mapserver
> query result and query another database with it.
>
> Cheers,
> Ken
>
> On Fri, 7 Jan 2005 10:22:02 -0500, Stephen Woodbridge
> <woodbri at swoodbridge.com> wrote:
>> The only way that I know of to do runtime joins in mapserver is to use
>> PostGIS. You might be able to do something with gdal, but I think it
>> is
>> very slow.  I have requested support for runtime shapefile joins to
>> either DBF or MySQL multiple times and nothing has happened in that
>> direction. Basically, it would be very slow because for each object in
>> the shapefile, you would have to scan the whole DBF file, because
>> there
>> are no indexes support for DBF files, or the developers would have to
>> build DBF indexing support into mapserver. For Mysql, you could index
>> the columns, but you would still need to make a separate query for
>> every
>> object in the shapefile.
>>
>> In PostGIS, since you have all the data in the database to start with
>> you can make one query for the layer and do the join in that query,
>> then
>> you only have to fetch back the objects to render.
>>
>> -Steve W.
>>
>> Holger Floerke wrote:
>>> Hi Jacob,
>>>
>>>
>>>> Why would you not want to join them?
>>>
>>> If the information I would like to present is evaluated at runtime,
>>> I have
>>> to produce a full set of ".shp", ".dbf", "sbx", "sbn", and ".shx"
>>> files. The
>>> shapes always stays the same, but the data is extracted from a
>>> database on a
>>> user's query. I would like to save space by not copying the shape
>>> information every time.
>>>
>>>
>>>> unless if you created a join on a dbf, and accessed it separately.
>>>
>>> Is it possible to join external data sources (one or more dbf-files
>>> or
>>> oci-sources) to shape files at runtime with the mapserver-api?
>>>
>>> HolgeR
>>>
>>>
>>> Jacob Delfos schrieb:
>>>
>>>
>>>> Holger,
>>>>
>>>> Correct me if I'm wrong, but that would be redefining the
>>>> definition of
>>>> a shapefile. As far as I know, a "shapefile" is not the .shp file,
>>>> but
>>>> the collection of ".shp", ".dbf", "sbx", "sbn", and ".shx" files. I
>>>> think you'd have to seriously hack the source of mapserver to do
>>>> that,
>>>> unless if you created a join on a dbf, and accessed it separately.
>>>>
>>>> Why would you not want to join them? If you have access to MS
>>>> Excel, it
>>>> would be as simple as copying a column across. No doubt other
>>>> software
>>>> can do the same thing. You would have access to both attributes in
>>>> one
>>>> shapefile. What is the actual problem that causes you not to want to
>>>> have two shapefiles, and not to want to join the attributes?
>>>>
>>>> regards,
>>>>
>>>> Jacob
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: UMN MapServer Users List
>>>> To: MAPSERVER-USERS at LISTS.UMN.EDU
>>>> Sent: 1/7/2005 9:03 PM
>>>> Subject: [UMN_MAPSERVER-USERS] Assign special dbf to shapefile
>>>>
>>>> Hi all,
>>>>
>>>> am I able to assign a special dbf-file to a shape file? For example
>>>> rendering the 'airports.shp', but using data from
>>>> 'airports_passengers.dbf'
>>>> and not from 'airports.dbf' (ensuring the correct order for the
>>>> shape-information-mapping). Or another example, render some area
>>>> shapes
>>>> on
>>>> the one hand with popuplation data and on the other hand with
>>>> unemployment
>>>> data without integrating both data sets into the dbf of the shape
>>>> file
>>>> and
>>>> without producing two different shape-files. I use php-mapscript and
>>>> mapserver 4.4.
>>>>
>>>> HolgeR
>>>>
>>>
>>>
>



More information about the mapserver-users mailing list