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

Jan Mantkowski jan.mantkowski at gmx.de
Wed Mar 20 11:38:57 EST 2002


Hi Steve, Dan, List,

i did some work in the meantime:

I get this right now:

Map name=FIRSTMAP, num lay=3
Layer num=0, name=world
Layer num=1, name=Nations
Layer num=2, name=PNUsers

-0.1271    51.5063    Jan London
-3.7057    40.4203    Jose Madrid
2.3453    48.8547    Madeleine Paris
9.9898    53.5548    Fritz Hamburg

and a map exactly as in the original europe example.

So what to do to display the users?

Jan


1) I replaced the PNUser layer with a copy of the nations layer.

	I only changed two lines:

    LAYER
    NAME "PNUsers"
    DATA users

My php script now looks like this:
Can it be, that $image is used for 2 completely different things, and the
second one replaces the results of the first one?

<?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");

printf("Map name=%s, num lay=%d<br>\n", $map->name, $map->numlayers);
for ($i=0; $i<$map->numlayers; $i++) {
  $myLayer = $map->getLayer($i);
  printf("Layer num=%d, name=%s <br>\n", $i, $myLayer->name);
}
echo"<br>";

//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);

         }

//show it altogether
$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