All pastes #249770 Raw Edit

Miscellany

public text v1 · immutable
#249770 ·published 2006-11-16 03:39 UTC
rendered paste body
<?

class draw{

      var $draw_prepd, $mapID, $small_image, $large_image, $small_info, $large_info, $small_image_color, $large_image_color;

      function init_user_map ( $mapID , $smallMapStyle="" , $owner_lat = 0 , $owner_long = 0 , $owner_large_icon = "" , $owner_small_icon = "" , $text_owner = "Owner location" , $text_visitor = "Visitors", $visitor_large_icon = "" , $visitor_small_icon = "" ){

               $this -> mapID = $mapID;

               $sml = $this -> create_small_user_map($smallMapStyle);
               $lge = $this -> create_large_user_map();
               
               if ( $lge == true || $sml == true ){

                   //plot the owners location!

                   $this ->prep_draw();
                   $this -> plot ( $owner_lat , $owner_long , $owner_large_icon, $owner_small_icon );

                   //plot the key
                   $this -> plot ( -55 , -170 , $owner_large_icon, $owner_small_icon );
                   $this -> write ( -55 , -160 , $text_owner );
                   
                   $this -> plot ( -45 , -170 , $visitor_large_icon, $visitor_small_icon );
                   $this -> write ( -45 , -160 , $text_visitor );
               }

               return true;

      }

      function create_large_user_map (){

               if ( is_file ( "large_user_maps/" . $this -> mapID . ".jpg" ) != true ){

                  copy ( "raw_map_images/_fullsize.jpg" , "large_user_maps/" . $this -> mapID . ".jpg" );

                  return true;
                  
               }
               
               return false;

      }

      function create_small_user_map ($smallMapStyle){

               if ( is_file ( "raw_map_images/" . $smallMapStyle ) != true ){

                  $smallMapStyle = "default.jpg";

               }

               if ( is_file ( "small_user_maps/" . $this -> mapID . ".jpg" ) != true ){

                  copy ( "raw_map_images/" . $smallMapStyle , "small_user_maps/" . $this -> mapID . ".jpg" );

                  return true;
                  
               }

               return false;

      }

      function prep_draw(){

               if ($this -> draw_prepd != true ){

                  $this -> small_image = imagecreatefromjpeg( "small_user_maps/" . $this -> mapID . ".jpg" );
                  $this -> small_info['size_x'] = imagesx($this -> small_image);
                  $this -> small_info['size_y'] = imagesy($this -> small_image);
                  $this -> small_image_color['red'] = imagecolorallocate ($this -> small_image,255,0,0);
                  $this -> small_image_color['text'] = imagecolorallocate ($this -> small_image,255,255,255);

                  $this -> large_image = imagecreatefromjpeg( "large_user_maps/" . $this -> mapID . ".jpg" );
                  $this -> large_info['size_x'] = imagesx($this -> large_image);
                  $this -> large_info['size_y'] = imagesy($this -> large_image);
                  $this -> large_image_color['red'] = imagecolorallocate ($this -> large_image,255,0,0);
                  $this -> large_image_color['text'] = imagecolorallocate ($this -> large_image,255,255,255);

                  $this -> draw_prepd = true;

               }

      }

      function prep_draw_temp($smallMapStyle=""){

               if ( is_file ( "raw_map_images/" . $smallMapStyle ) != true ){

                  $smallMapStyle = "default.jpg";

               }

               $this -> small_image = imagecreatefromjpeg( "raw_map_images/" . $smallMapStyle );
               $this -> small_info['size_x'] = imagesx($this -> small_image);
               $this -> small_info['size_y'] = imagesy($this -> small_image);
               $this -> small_image_color['red'] = imagecolorallocate ($this -> small_image,255,0,0);
               $this -> small_image_color['text'] = imagecolorallocate ($this -> small_image,255,255,255);
               $this -> small_image_color['antartic_text'] = imagecolorallocate ($this -> small_image,0,0,0);

               $this -> large_image = imagecreatefromjpeg( "raw_map_images/_fullsize.jpg" );
               $this -> large_info['size_x'] = imagesx($this -> large_image);
               $this -> large_info['size_y'] = imagesy($this -> large_image);
               $this -> large_image_color['red'] = imagecolorallocate ($this -> large_image,255,0,0);
               $this -> large_image_color['text'] = imagecolorallocate ($this -> large_image,255,255,255);
               $this -> large_image_color['antartic_text'] = imagecolorallocate ($this -> large_image,0,0,0);


      }

      function write($lat,$long,$text,$color="text"){

             /* SMALL image */

             $small_pt = getlocationcoords($lat,$long,$this->small_info['size_x'],$this->small_info['size_y']);
             imagettftext ( $this->small_image, "8", 0,$small_pt["x"], $small_pt["y"]+2, $this -> small_image_color[$color] , "font.ttf", $text);

             /* LARGE image */

             $large_pt = getlocationcoords($lat,$long,$this->large_info['size_x'],$this->large_info['size_y']);
             imagettftext ( $this->large_image, "12", 0,$large_pt["x"], $large_pt["y"]+8, $this -> large_image_color[$color] , "font.ttf", $text);

      }
      

      
      function plot($lat,$long,$large_icon="",$small_icon=""){

             /* SMALL image */

             $small_pt = getlocationcoords($lat,$long,$this->small_info['size_x'],$this->small_info['size_y']);

             if ( is_file ( $small_icon ) == true ){

                $icon = imagecreatefromgif($small_icon);

                $x = imagesx($icon);
                $y = imagesy($icon);

                imagecopymerge($this->small_image, $icon, $small_pt["x"]-($x/2), $small_pt["y"]-($y/2), 0, 0, $x, $y, 100);

             }else{

                 imagefilledrectangle($this->small_image,$small_pt["x"]-2,$small_pt["y"]-2,$small_pt["x"]+2,$small_pt["y"]+2,$this -> small_image_color['red']);

             }

             /* LARGE image */

             $large_pt = getlocationcoords($lat,$long,$this->large_info['size_x'],$this->large_info['size_y']);

             if ( is_file ( $large_icon ) == true ){

                $icon = imagecreatefromgif($large_icon);

                $x = imagesx($icon);
                $y = imagesy($icon);

                imagecopymerge($this->large_image, $icon, $large_pt["x"]-($x/2), $large_pt["y"]-($y/2), 0, 0, $x, $y, 100);

             }else{

                imagefilledrectangle($this->large_image,$large_pt["x"]-2,$large_pt["y"]-2,$large_pt["x"]+2,$large_pt["y"]+2,$this -> large_image_color['red']);

             }
             
      }

      function add_count($total_count,$small_style="default.jpg"){

             //make the bottom 20 px of fullsize map original
             $orig = imagecreatefromjpeg("raw_map_images/_fullsize.jpg");
             $x = imagesx($orig);
             $y = imagesy($orig);
             imagecopymerge ( $this->large_image, $orig, 0, ($y-50), 0, ($y-50), $x, 50, 99 );

             $orig = imagecreatefromjpeg("raw_map_images/".$small_style);
             $x = imagesx($orig);
             $y = imagesy($orig);
             imagecopymerge ( $this->small_image, $orig, 0, ($y-30), 0, ($y-30), $x, 30, 99 );

             $this -> write ( -85 , 70 , "Visitor count: $total_count" , 'antartic_text' );
             
      }

      function finish_draw(){

             imagejpeg($this->small_image,"small_user_maps/" . $this -> mapID . ".jpg" , 99 );
             imagedestroy($this->small_image);

             imagejpeg($this->large_image,"large_user_maps/" . $this -> mapID . ".jpg" , 99 );
             imagedestroy($this->large_image);

             $this -> draw_prepd = false;
             
      }


}


?>