| HOW TO DRAW ICONS OR IMAGES ON A MAPSERVER GENERATED
MAP
|
||
| The PHPMapscript code | ||
| Here is the code I have used for generating the map: | ||
<?php
dl("php_mapscript.dll");
define("img_WIDTH", 0);
define("img_HEIGHT", 1);
define("img_TYPE", 2);
// CONFIGURATION OF MYSQL ACCESS
$MyHost = "localhost";
$MyLogin = "root";
$MyPassword = "";
$MyDatabase = "mapexample";
$mappath = "D:/data/web";
$scale_to_showicons = 1000000; // SCALE LIMIT TO START TO SHOW THE ICONS ON THE MAP
function AddImagesToMap($mapurl)
{
global $MyHost, $MyLogin, $MyPassword, $MyDatabase, $scale_to_showicons, $map, $mappath;
// CONNECT TO DATABASE
@mysql_connect($MyHost, $MyLogin, $MyPassword);
@mysql_select_db($MyDatabase);
// IF the scale is small enougth to show the images on the map?
if ($scale_to_showicons > $map->scale) {
// PATH WHERE TO FIND THE MAP IMAGE GENERATED BY MAPSERVER
$mapimagepath = $mappath . $mapurl;
$mapdim = GetImageSize($mapimagepath);
$coords_map_width = $map->extent->maxx - $map->extent->minx;
$mapscale = $mapdim[img_WIDTH] / $coords_map_width;
switch ($mapdim[img_TYPE]) {
case 1:
$mapimg = ImageCreateFromGif($mapimagepath);
break;
case 2:
$mapimg = ImageCreateFromJpeg($mapimagepath);
break;
case 3:
$mapimg = ImageCreateFromPng($mapimagepath);
break;
} ;
$qry .= "select * from weather where x > '" . $map->extent->minx . "' AND x < '" . $map->extent->maxx . "'
AND y > '" . $map->extent->miny . "' AND y < '" . $map->extent->maxy . "'";
$res = mysql_query($qry);
while ($row = mysql_fetch_object($res)) {
$dimic = GetImageSize($row->imagepath);
switch ($dimic[img_TYPE]) {
case 1:
$tmpimg = ImageCreateFromGif($row->imagepath);
break;
case 2:
$tmpimg =?; ImageCreateFromJpeg($row->imagepath);
break;
case 3:
$tmpimg = ImageCreateFromPng($row->imagepath);
break;
}
$x = ($row->x - $map->extent->minx) * $mapscale;
$y = $mapdim[img_HEIGHT] - (($row->y - $map->extent->miny) * $mapscale);
@ImageCopy ($mapimg, $tmpimg, $x, $y, 0, 0, $dimic[img_WIDTH], $dimic[img_HEIGHT]);
} ;
// SAVE THE NEW IMAGE ON THE OLD ONE
switch ($mapdim[img_TYPE]) {
case 1:
ImageGif($mapimg, $mapimagepath);
break;
case 2:
ImageJpeg($mapimg, $mapimagepath);
break;
case 3:
ImagePng($mapimg, $mapimagepath);
break;
}
} ;
} ;
$map = ms_newMapObj("itasca.map");
$img = $map->draw();
$url = $img->saveWebImage();
AddImagesToMap($url);
?>
<HTML>
<HEAD>
<TITLE>Show Weather On Map</TITLE>
</HEAD>
<BODY>
<img src="<?php echo $url; ?>">
</BODY>
</HTML>
|
||
|
||