Articles database
 
 
Web AnyArticles.com
Browse by Category:
  Internet and Businesses Online >
  Subcategories
Affiliate Revenue Affiliate Revenue (725)
Auctions Auctions (490)
Audio Streaming Audio Streaming (59)
Blogging RSS Blogging RSS (535)
Domain Names Domain Names (189)
E Books E Books (244)
Ecommerce Ecommerce (395)
Email Marketing Email Marketing (496)
Forums Forums (81)
Internet Marketing Internet Marketing (1737)
Podcasting Podcasting (59)
PPC Advertising PPC Advertising (461)
Security Security (418)
SEO SEO (1482)
Site Promotion Site Promotion (461)
Spam Blocker Spam Blocker (179)
Traffic Building Traffic Building (621)
Video Streaming Video Streaming (41)
Web Design Web Design (1015)
Web Development Web Development (599)
Web Hosting Web Hosting (413)


  Categories :
 
  Arts and Entertainment
  Automotive
  Business
  Communications
  Computers and Technology
  Finance
  Food and Drink
  Health and Fitness
  Home and Family
  Home Based Business
  Internet and Businesses Online
  Kids and Teens
  Legal
  News and Society
  Recreation and Sports
  Reference and Education
  Self Improvement
  Shopping and Product Reviews
  Travel and Leisure
  Womens Interests
  Writing and Speaking
  Random Category
  Funny stuff
  Funny stuff
  Ethics
Web Development article : How to Draw Icons or Images on a Mapserver Generated Map
 

Internet and Businesses Online > Web Development > How to Draw Icons or Images on a Mapserver Generated Map

0 Reviews [ add review ], Article rating : 0.00, 0 votes. Author : Roberto Colonello

In this example I have used the map of the Itasca demo of the Mapserver. I have done only small changes to the map file. The Itasca demo has (into the html file) the parameters of the path where to store the images:

IMAGEPATH "set in index.html" IMAGEURL "set in index.html"

I have changed them as fixed path

IMAGEPATH "/tmp/ms_tmp/" IMAGEURL "/ms_tmp/"

Than I have set as STATUS ON several layers for a better map.

The Database

The positions and the images paths that have to be shown on the map are stored into a table of a database in MySql. I have created a new database named "mapexample" and a new table "weather":

CREATE TABLE weather (

id bigint(20) NOT NULL auto_increment,

imagepath varchar(255) default NULL,

x double(16,4) default NULL,

y double(16,4) default NULL,

PRIMARY KEY (id)

)

and than I have inserted into the table the positions of the weather images and the path of every icon:

INSERT INTO `weather` VALUES (1, '/data/weather/icons/sunny.gif', 478107.0000, 5250301.0000); INSERT INTO `weather` VALUES (2, ''/data/weather/icons/cloudy.gif', 408107.0000, 5220301.0000); INSERT INTO `weather` VALUES (3, ''/data/weather/icons/storm.gif', 468107.0000, 5270301.0000); INSERT INTO `weather` VALUES (4, ''/data/weather/icons/variable.gif', 408107.0000, 5310301.0000);

It is not necessary for the images to be stored into a directory visible from the web, because are taken directly by the script and then merged with the map.

The PHPMapscript code Here is the code I have used for generating the map:



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

?>

Show Weather On Map ">

More info: http://www.parsec.it/tutorials/

Roberto Colonello owns and operates http://www.parsec.it and http://www.gmdir.com


0 Reviews [ add review ], Article rating : 0.00, 0 votes. Author : Roberto Colonello
Rate this story : and read/post review(s)


Article reviews



Post your review
[ Note : no HTML/URLs - will removed automatically ]
Your name
Your comments


More articles from Internet and Businesses Online > Web Development

Add article | Manage Articles | Top Rated articles | Most Reviewed articles | Contact us | Links