[Mapserver-users] Creating classes with data from a mysql database

Attri, Abhishek aattri at cba.ua.edu
Fri Apr 30 14:58:18 EDT 2004


Hi all,

I used the following syntax to query a mysql table and create a layer
and a class, and got the errors listed below.

$layer->set(data,"colname from (select table1.colname FROM table ,
table1 WHERE  table.col1='xx'  AND table.col2='xx2' AND
table.col3=table1.col3)");

$layer->set(classitem,"colname");

$class->setexpression('([colname]< 50000)');



line 75: $image=$map->draw();
line 77: $image_url=$image->saveWebImage();


========================================================================
=========================================


Warning: [MapServer Error]: msDrawMap(): Failed to draw layer named
'county'. in /home/tech/abhi/public_html/mapExamples/Map2.php on line 75

Warning: [MapServer Error]: msSHPOpenFile():
(/home/tech/abhi/WWW/ms/map_files/) in
/home/tech/abhi/public_html/mapExamples/Map2.php on line 75

Warning: [MapServer Error]: msSHPOpenFile():
(/home/tech/abhi/WWW/ms/data/) in
/home/tech/abhi/public_html/mapExamples/Map2.php on line 75

Fatal error: Call to a member function on a non-object in
/home/tech/abhi/public_html/mapExamples/Map2.php on line 77

========================================================================
========================================================

Also tha data with which i am trying to create a layer with, is not
related to the shapefiles at all. Its just a population variable, and i
want to color the map differently based on different
population values.

Please help me understand what the right method is to create a layer
dynamically from a mysql database, and then generate an image to be
displayed.


With thanks in advance..

Abhishek






-----Original Message-----
From: Alexandros Chimarios [mailto:alhim at intracom.gr] 
Sent: Friday, April 30, 2004 1:04 AM
To: Attri, Abhishek; mapserver-users at lists.gis.umn.edu
Subject: Re: [Mapserver-users] Creating classes with data from a mysql
database


First of all, you should select the columns you wish to appear in the 
CLASSITEM and EXPRESSION in your data fiels like this :

DATA " geolocation from (SELECT unit_tracks.geolocation,
unit_tracks.unit_id 
,units.name , units.identification from unit_tracks LEFT JOIN units ON 
unit_tracks.unit_id = units.unit_id) as foo using unique unit_id using 
srid=-1  "

Then you set the EXPRESSION and CLASSITEM :

		..........
CLASSITEM "identification"
                   
        CLASS
            
            EXPRESSION "UNKNOWN"	

 			.......

Hope this example helps. Please notice that no DB table expression are
set in 
CLASSITEM. If i put "CLASSITEM 'units.identification'   "   then I will
get 
an error. Once the data have been imported from the DB, MapServer treats
them 
as its own table. 

Alexandros


On Friday 30 April 2004 05:26, Attri, Abhishek wrote:
> Hi All,
>
>
>
> I need to create classes on a map object based on data fetched from a
> MySQL database. The classes will be created and displayed based on the
> attributes in the MySQL table (These are not shapefiles). My confusion
> is what will go in the 'data' and 'classitem' fields of the layer
> object, and also how will I set an expression in the class based on
> MySQL table attributes.
>
>
>
> Any examples?
>
>
>
> With thanks in advance....
>
>
>
> Abhishek







More information about the mapserver-users mailing list