[mapserver-users] drawing layer with user names from mysql table

Jan Mantkowski jan.mantkowski at gmx.de
Wed Mar 20 08:34:36 EST 2002


Steve,
i had that error befor. Should have know better.

I fixed it by adding this line:
$map
=ms_newMapObj("c:/Apache/htdocs/pn_71/html/modules/map/data/europe.map");

The only thing that changed is the error message:

Warning: MapServer Error in : in
c:\apache\htdocs\pn_71\html\modules\map\index-standalone3.php on line 29
Fatal error: getLayerByName failed for : PNUsers in
c:\apache\htdocs\pn_71\html\modules\map\index-standalone3.php on line 29

line 29 still is: $layer =  $map->getLayerByName( $layerName );

And now? Anny suggstions?

Thanks,
Jan


This is the dump of the mysql table:

CREATE TABLE nuke_map (
  pn_name varchar(20) NOT NULL default '',
  pn_lat varchar(15) NOT NULL default '',
  pn_lon varchar(15) NOT NULL default '',
  PRIMARY KEY  (pn_name)
) TYPE=MyISAM;

# Dumping data for table `nuke_map`

INSERT INTO nuke_map VALUES ('Jan London', '51.5063', '-0.1271');
INSERT INTO nuke_map VALUES ('Jose Madrid', '40.4203', '-3.7057');
INSERT INTO nuke_map VALUES ('Madeleine Paris', '48.8547', '2.3453');
INSERT INTO nuke_map VALUES ('Fritz Hamburg', '53.5548', '9.9898');


This is the whole code:

<?php

// load .dll`s, so there is no need to edit the php.ini.
// but you need to put this files in your /php/extensions folder

dl("php_mapscript_35.dll");
dl("php_proj.dll");
dl("php_dbase.dll");

//variables

GLOBAL $map;
GLOBAL $image;
GLOBAL $layer;
$layerName="PNUsers";
$map
=ms_newMapObj("c:/Apache/htdocs/pn_71/html/modules/map/data/europe.map");

//mysql_q
$db = mysql_connect("localhost", "root", "");
mysql_select_db("Rogue",$db);
$results = mysql_query("SELECT * FROM nuke_map",$db);
if ($results === false) die("failed");
//display result of mysql query on screen
while ($show = mysql_fetch_array($results, MYSQL_ASSOC)) {
echo
$show["pn_lon"]."&nbsp;&nbsp;&nbsp;&nbsp;".$show["pn_lat"]."&nbsp;&nbsp;&nbs
p;&nbsp;".$show["pn_name"]."<br>\n";
}

//drawPoints
$layer =  $map->getLayerByName( $layerName );

   // Loop through result of point query and:
   while ($line = mysql_fetch_array($results, MYSQL_ASSOC)) {
                 $pt = ms_newPointObj();
                 $pt->setXY( $line["pn_lon"], $line["pn_lat"] );

                 $pt->draw($map, $layer, $image, 0, "TEST");
                 $layer->set('status', MS_ON);
                 $layer->draw($image);
         }

//showmap
$map = ms_newMapObj("data/europe.map");
$image=$map->draw();
//$layer->draw($image);
$image_url=$image->saveWebImage(MS_PNG,1,1,0);
echo "<img src=\"".$image_url."\">";
?>




More information about the mapserver-users mailing list