From 5431defb628c26b6791c934df579fa389a87b6b4 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Tue, 26 Jul 2016 09:12:22 +1000 Subject: [PATCH 1/4] Bump for release 2.5 Moved files around to make more friendly for composer autoloading. --- releases/2.5/COPYING.lib => COPYING.lib | 0 releases/2.5/NEWS => NEWS | 0 releases/2.5/README => README.legacy | 0 composer.json | 7 +- releases/3.0/COPYING.lib | 458 --- releases/3.0/src/GoogleMap.php | 2858 ----------------- releases/3.0/src/JSMin.php | 314 -- .../2.5/src => src}/GoogleMapAPI.class.php | 0 8 files changed, 5 insertions(+), 3632 deletions(-) rename releases/2.5/COPYING.lib => COPYING.lib (100%) rename releases/2.5/NEWS => NEWS (100%) rename releases/2.5/README => README.legacy (100%) delete mode 100644 releases/3.0/COPYING.lib delete mode 100644 releases/3.0/src/GoogleMap.php delete mode 100644 releases/3.0/src/JSMin.php rename {releases/2.5/src => src}/GoogleMapAPI.class.php (100%) diff --git a/releases/2.5/COPYING.lib b/COPYING.lib similarity index 100% rename from releases/2.5/COPYING.lib rename to COPYING.lib diff --git a/releases/2.5/NEWS b/NEWS similarity index 100% rename from releases/2.5/NEWS rename to NEWS diff --git a/releases/2.5/README b/README.legacy similarity index 100% rename from releases/2.5/README rename to README.legacy diff --git a/composer.json b/composer.json index da382bd..ad390d7 100644 --- a/composer.json +++ b/composer.json @@ -1,10 +1,13 @@ { - "name": "streetlogics/php-google-map-api", + "name": "ivt/php-google-map-api", "description": "Google Maps API library", "authors": [ { "name": "Brad Wedell" } ], - "require": {} + "require": {}, + "autoload": { + "classmap": ["src/"] + } } diff --git a/releases/3.0/COPYING.lib b/releases/3.0/COPYING.lib deleted file mode 100644 index 3b20440..0000000 --- a/releases/3.0/COPYING.lib +++ /dev/null @@ -1,458 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS diff --git a/releases/3.0/src/GoogleMap.php b/releases/3.0/src/GoogleMap.php deleted file mode 100644 index 14edb51..0000000 --- a/releases/3.0/src/GoogleMap.php +++ /dev/null @@ -1,2858 +0,0 @@ - - * package GoogleMapAPI - * version 2.5 - * - * REVISION NOTIFICATION - * NOTE: This is a modified version of the original listed above. This version - * maintains all original GNU software licenses. - */ -/** - * @link http://code.google.com/p/php-google-map-api/ - * @copyright 2010-2012 Brad wedell - * @author Brad Wedell - * @package GoogleMapAPI (version 3) - * @version 3.0beta -*/ -/* - * To view the full CHANGELOG, visit - * http://code.google.com/p/php-google-map-api/wiki/ChangeLog3 -/* -For database caching, you will want to use this schema: - -CREATE TABLE GEOCODES ( - address varchar(255) NOT NULL default '', - lon float default NULL, - lat float default NULL, - PRIMARY KEY (address) -); - -*/ - -/** - * PHP Google Maps API class - * @package GoogleMapAPI - * @version 3.0beta - */ -class GoogleMapAPI { - - /** - * contains any map styles in a json string - * - * @var string json $map_styles - */ - var $map_styles = true; - - /** - * PEAR::DB DSN for geocode caching. example: - * $dsn = 'mysql://user:pass@localhost/dbname'; - * - * @var string - */ - var $dsn = null; - - /** - * current map id, set when you instantiate - * the GoogleMapAPI object. - * - * @var string - */ - var $map_id = null; - - /** - * determines whether or not to display the map and associated JS on the page - * this is used if you just want to display a streetview with no map - */ - var $display_map = true; - - /** - * sidebar
used along with this map. - * - * @var string - */ - var $sidebar_id = null; - - /** - * With this, you can append lang= and region= to the script url for localization. If Google adds more features in the future, they will be supported by default - * - * See http://code.google.com/apis/maps/documentation/javascript/basics.html#Localization - * for more info on Localization - * - * @var array - **/ - var $api_options=null; - - /** - * Whether to use new V3 mobile functionality - * - * @var bool - */ - var $mobile=false; - - /** - * The viewport meta tag allows more values than these defaults; you can get more info here: http://www.html-5.com/metatags/index.html#viewport-meta-tag - * - * @var string - */ - var $meta_viewport = "initial-scale=1.0, user-scalable=no"; - - /** - * DEPRECATED: Google now has geocoding service. - * NOTE: Note even sure if this still works - * GoogleMapAPI used to use the Yahoo geocode lookup API. - * This is the application ID for YOUR application. - * This is set upon instantiating the GoogleMapAPI object. - * (http://developer.yahoo.net/faq/index.html#appid) - * - * @var string - */ - var $app_id = null; - - /** - * use onLoad() to load the map javascript. - * if enabled, be sure to include on your webpage: - * printOnLoad?> or manually create an onload function - * that calls the map's onload function using $this->printOnLoadFunction - * - * @var bool - * @default true - */ - var $onload = true; - - /** - * map center latitude (horizontal) - * calculated automatically as markers - * are added to the map. - * - * @var float - */ - var $center_lat = null; - - /** - * map center longitude (vertical) - * calculated automatically as markers - * are added to the map. - * - * @var float - */ - var $center_lon = null; - - /** - * enables map controls (zoom/move/center) - * - * @var bool - */ - var $map_controls = true; - - /** - * determines the map control type - * small -> show move/center controls - * large -> show move/center/zoom controls - * - * @var string - */ - var $control_size = 'large'; - - /** - * enables map type controls (map/satellite/hybrid/terrain) - * - * @var bool - */ - var $type_controls = true; - - /** - * determines unit system to use for directions, blank = default - * @var string (METRIC, IMPERIAL) - */ - var $directions_unit_system = ''; - - /** - * sets default option for type controls(DEFAULT, HORIZONTAL_BAR, DROPDOWN_MENU) - * - * @var string - */ - var $type_controls_style = "DEFAULT"; - - /** - * default map type google.maps.MapTypeId.(ROADMAP, SATELLITE, HYBRID, TERRAIN) - * - * @var string - */ - var $map_type = 'HYBRID'; - - /** - * enables scale map control - * - * @var bool - */ - var $scale_control = true; - /** - * class variable to control scrollwheel - * @var bool - */ - var $scrollwheel = true; - - /** - * enables overview map control - * - * @var bool - */ - var $overview_control = false; - - /** - * enables Google Adsense Adsmanager on page, not currently supported in beta - * - * @var bool - */ - var $ads_manager = false; - - /** - * Google Adsense Publisher ID - * - * @var string - */ - var $ads_pub_id = ""; - - /** - * Google Adsense Channel ID - * - * @var string - */ - var $ads_channel = ""; - - /** - * The Max number of Adsmanager ads to show on a map - * - * @var int - */ - var $ads_max = 10; - - /** - * enables/disables local search on page - * - * @var bool - */ - var $local_search = false; - - /** - * enables local search ads on page NOTE: will only display ads if local_search == true, otherwise just use ad_manager and settings. - * - * @var bool - */ - var $local_search_ads = false; - - /** - * enables/disables walking directions option - * - * @var bool - */ - var $walking_directions = false; - - /** - * enables/disables biking directions on directions - * - * @var bool - */ - var $biking_directions = false; - - /** - * enables/disables avoid highways on directions - * - * @var bool - */ - var $avoid_highways = false; - - /** - * determines if avoid tollways is used in directions - * - * @var bool - */ - var $avoid_tollways = false; - - /** - * determines the default zoom level - * - * @var int - */ - var $zoom = 16; - - /** - * determines the map width - * - * @var string - */ - var $width = '500px'; - - /** - * determines the map height - * - * @var string - */ - var $height = '500px'; - - /** - * message that pops up when the browser is incompatible with Google Maps. - * set to empty string to disable. - * - * @var string - */ - var $browser_alert = 'Sorry, the Google Maps API is not compatible with this browser.'; - - /** - * message that appears when javascript is disabled. - * set to empty string to disable. - * - * @var string - */ - var $js_alert = 'Javascript must be enabled in order to use Google Maps.'; - - /** - * determines if sidebar is enabled - * - * @var bool - */ - var $sidebar = true; - - /** - * determines if to/from directions are included inside info window - * - * @var bool - * @deprecated - */ - var $directions = true; - - /* waypoints */ - protected $_waypoints_string = ''; - - /** - * determines if map markers bring up an info window - * - * @var bool - */ - var $info_window = true; - - /** - * determines if info window appears with a click or mouseover - * - * @var string click/mouseover - */ - var $window_trigger = 'click'; - - /** - * determines whether or not to use the MarkerClusterer plugin - */ - var $marker_clusterer = false; - - /** - * set default marker clusterer *webserver* file location - */ - var $marker_clusterer_location = "/MarkerClusterer-1.0/markerclusterer_compiled.js"; - - /** - * set default marker clusterer options - */ - var $marker_clusterer_options = array( - "maxZoom"=>"null", - "gridSize"=>"null", - "styles"=>"null" - ); - - /** - * determines if traffic overlay is displayed on map - * - * @var bool - */ - var $traffic_overlay = false; - - /** - * determines if biking overlay is displayed on map - * - * @var bool - */ - var $biking_overlay = false; - - /** - * determines whether or not to display street view controls - */ - var $street_view_controls = false; - - /** - * ID of the container that will hold a street view if streetview controls = true. - */ - var $street_view_dom_id = ""; - - /** - * what server geocode lookups come from - * - * available: YAHOO Yahoo! API. US geocode lookups only. - * GOOGLE Google Maps. This can do international lookups, - * but not an official API service so no guarantees. - * Note: GOOGLE is the default lookup service, please read - * the Yahoo! terms of service before using their API. - * - * @var string service name - */ - var $lookup_service = 'GOOGLE'; - var $lookup_server = array('GOOGLE' => 'maps.google.com', 'YAHOO' => 'api.local.yahoo.com'); - - /** - * - * @var array - * @deprecated - */ - var $driving_dir_text = array( - 'dir_to' => 'Start address: (include addr, city st/region)', - 'to_button_value' => 'Get Directions', - 'to_button_type' => 'submit', - 'dir_from' => 'End address: (include addr, city st/region)', - 'from_button_value' => 'Get Directions', - 'from_button_type' => 'submit', - 'dir_text' => 'Directions: ', - 'dir_tohere' => 'To here', - 'dir_fromhere' => 'From here' - ); - - - /** - * version number - * - * @var string - */ - var $_version = '3.0beta'; - - /** - * list of added markers - * - * @var array - */ - var $_markers = array(); - - /** - * maximum longitude of all markers - * - * @var float - */ - var $_max_lon = -1000000; - - /** - * minimum longitude of all markers - * - * @var float - */ - var $_min_lon = 1000000; - - /** - * max latitude - * - * @var float - */ - var $_max_lat = -1000000; - - /** - * min latitude - * - * @var float - */ - var $_min_lat = 1000000; - - /** - * determines if we should zoom to minimum level (above this->zoom value) that will encompass all markers - * - * @var bool - */ - var $zoom_encompass = true; - - /** - * factor by which to fudge the boundaries so that when we zoom encompass, the markers aren't too close to the edge - * - * @var float - */ - var $bounds_fudge = 0.01; - - /** - * use the first suggestion by a google lookup if exact match not found - * - * @var float - */ - var $use_suggest = false; - - /** #)MS - * list of added polygon - * - * @var array - */ - var $_polygons = array(); - - /** - * list of added polylines - * - * @var array - */ - var $_polylines = array(); - - /** - * list of polylines that should have an elevation profile rendered. - */ - var $_elevation_polylines = array(); - - /** - * determines whether or not to display a marker on the "line" when - * mousing over the elevation chart - */ - var $elevation_markers = true; - - /** - * determines whether or not to display an elevation chart - * for directions that are added to the map. - */ - var $elevation_directions = false; - - /** - * icon info array - * - * @var array - * @deprecated - * @version 2.5 - */ - var $_icons = array(); - - /** - * marker icon info array - * - * @var array - * @version 3.0 - */ - var $_marker_icons = array(); - - /** - * Default icon image location. - * - * @var string - */ - var $default_icon = ""; - - /** - * Default icon shadow image location. - * - * @var string - */ - var $default_icon_shadow = ""; - - /** - * list of added overlays - * - * @var array - */ - var $_overlays = array(); - - /** - * list of added kml overlays - */ - var $_kml_overlays = array(); - - - /** - * database cache table name - * - * @var string - */ - var $_db_cache_table = 'GEOCODES'; - - /** - * Class variable that will store generated header code for JS to display directions - * - * @var string - */ - var $_directions_header = ''; - - /** - * Class variable that will store information to render directions - */ - var $_directions = array(); - - /** - * Class variable to store whether or not to display JS functions in the header - */ - var $_display_js_functions = true; - - /** - * Class variable that will store flag to minify js - this can be overwritten after object is instantiated. Include JSMin.php if - * you want to use JS Minification. - * - * @var bool - */ - var $_minify_js = true; - - /** - * If false, prevents the map from being dragged. Dragging is enabled by default. - * @var bool - * Added 02/10/2013 by Yao Wu - */ - var $draggable = true; - - /** - * The maximum zoom level which will be displayed on the map. If omitted, or set to null, the - * maximum zoom from the current map type is used instead. - * Added 02/10/2013 by Yao Wu - */ - var $max_zoom = "null"; - - /** - * The minimum zoom level which will be displayed on the map. If omitted, or set to null, the - * minimum zoom from the current map type is used instead. - * Added 02/10/2013 by Yao Wu - */ - var $min_zoom = "null"; - - /** - * class constructor - * - * @param string $map_id the DOM element ID for the map - * @param string $app_id YOUR Yahoo App ID - */ - function GoogleMapAPI($map_id = 'map', $app_id = 'MyMapApp') { - $this->map_id = $map_id; - $this->sidebar_id = 'sidebar_' . $map_id; - $this->app_id = $app_id; - } - - /** - * function to enable map display - */ - function enableMapDisplay(){ - $this->display_map = true; - } - - /** - * function to disable map display (used to display street view only) - */ - function disableMapDisplay(){ - $this->display_map = false; - } - - /** - * sets the PEAR::DB dsn - * - * @param string $dsn Takes the form of "mysql://user:pass@localhost/db_name" - */ - function setDSN($dsn) { - $this->dsn = $dsn; - } - - /** - * sets the width of the map - * - * @param string $width - * @return string|false Width or false if not a valid value - */ - function setWidth($width) { - if(!preg_match('!^(\d+)(.*)$!',$width,$_match)) - return false; - - $_width = $_match[1]; - $_type = $_match[2]; - if($_type == '%') - $this->width = $_width . '%'; - else - $this->width = $_width . 'px'; - - return true; - } - - /** - * sets the height of the map - * - * @param string $height - * @return string|false Height or false if not a valid value - */ - function setHeight($height) { - if(!preg_match('!^(\d+)(.*)$!',$height,$_match)) - return false; - - $_height = $_match[1]; - $_type = $_match[2]; - if($_type == '%') - $this->height = $_height . '%'; - else - $this->height = $_height . 'px'; - - return true; - } - - - /** - * sets the default map zoom level - * - * @param string $level Initial zoom level value - */ - function setZoomLevel($level) { - $this->zoom = (int) $level; - } - - - /** - * sets any map styles ( style wizard: http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html ) - * - * @param string $styles json string of the map styles to be applied - */ - function setMapStyles($styles) { - $this->map_styles = (string) $styles; - } - - /** - * enables the map controls (zoom/move) - * - */ - function enableMapControls() { - $this->map_controls = true; - } - - /** - * disables the map controls (zoom/move) - * - */ - function disableMapControls() { - $this->map_controls = false; - } - - /** - * sets the map control size (large/small) - * - * @param string $size Large/Small - */ - function setControlSize($size) { - if(in_array($size,array('large','small'))) - $this->control_size = $size; - } - - /** - * disable mouse scrollwheel on Map - */ - function disableScrollWheel(){ - $this->scrollwheel = false; - } - - /** - * enables the type controls (map/satellite/hybrid) - * - */ - function enableLocalSearch() { - $this->local_search = true; - } - - /** - * disables the type controls (map/satellite/hybrid) - * - */ - function disableLocalSearch() { - $this->local_search = false; - } - - /** - * enables the type controls (map/satellite/hybrid) - * - */ - function enableLocalSearchAds() { - $this->local_search_ads = true; - } - - /** - * disables the type controls (map/satellite/hybrid) - * - */ - function disableLocalSearchAds() { - $this->local_search_ads = false; - } - - /** - * enables walking directions - * - */ - function enableWalkingDirections() { - $this->walking_directions = true; - } - - /** - * disables walking directions - * - */ - function disableWalkingDirections() { - $this->walking_directions = false; - } - - /** - * enables biking directions - * - */ - function enableBikingDirections() { - $this->biking_directions = true; - } - - /** - * disables biking directions - * - */ - function disableBikingDirections() { - $this->biking_directions = false; - } - - /** - * enables avoid highways in directions - * - */ - function enableAvoidHighways() { - $this->avoid_highways = true; - } - - /** - * disables avoid highways in directions - * - */ - function disableAvoidHighways() { - $this->avoid_highways = false; - } - - /** - * enables avoid tolls in directions - * - */ - function enableAvoidTolls() { - $this->avoid_tolls = true; - } - - /** - * disables avoid tolls in directions - * - */ - function disableAvoidTolls() { - $this->avoid_tolls = false; - } - - /** - * sets the max zoom - * Added 02/10/2013 by Yao Wu - */ - function setMaxZoom($zoom) { - $this->max_zoom = (int) $zoom; - } - - /** - * sets the min zoom - * Added 02/10/2013 by Yao Wu - */ - function setMinZoom($zoom) { - $this->min_zoom = (int) $zoom; - } - - /** - * set true or flase for draggable - * Added 02/10/2013 by Yao Wu - */ - function disabledraggable() { - $this->draggable = "false"; - } - - /** - * Add directions route to the map and adds text directions container with id=$dom_id - * - * @param string $start_address - * @param string $dest_address - * @param string $dom_id DOM Element ID for directions container. - * @param bool $add_markers Add a marker at start and dest locations. - */ - function addDirections($start_address='',$dest_address='',$dom_id='', $add_markers=true, $elevation_samples=256, $elevation_width="", $elevation_height="", $elevation_dom_id=''){ - if($elevation_dom_id=="") - $elevation_dom_id = "elevation".$dom_id; - - if($start_address != '' && $dest_address != '' && $dom_id != ''){ - $this->_directions[$dom_id] = array( - "dom_id"=>$dom_id, - "start"=>$start_address, - "dest"=>$dest_address, - "markers"=>true, - "elevation_samples"=>$elevation_samples, - "width"=>($elevation_width!=""?$elevation_width:str_replace("px","",$this->width)), - "height"=>($elevation_height!=""?$elevation_height:str_replace("px","",$this->height)/2), - "elevation_dom_id"=>$elevation_dom_id - ); - if($add_markers==true){ - $this->addMarkerByAddress($start_address,$start_address, $start_address); - $this->addMarkerByAddress($dest_address,$dest_address, $dest_address); - } - } - } - - - function addWaypoints($lat, $lon, $stopover = TRUE) - { - if( ! empty($this->_waypoints_string) ) $this->_waypoints_string .= ","; - $tmp_stopover = $stopover?'true':'false'; - $this->_waypoints_string .= "{location: new google.maps.LatLng({$lat},{$lon}), stopover: {$tmp_stopover}}"; - } - - function addWaypointByAddress($address,$stopover = TRUE) - { - if( $tmp_geocode = $this->getGeocode($address)) - { - $this->addWaypoints($tmp_geocode['lat'], $tmp_geocode['lon'], $stopover); - } - } - - - - /** - * enables the type controls (map/satellite/hybrid) - * - */ - function enableTypeControls() { - $this->type_controls = true; - } - - /** - * disables the type controls (map/satellite/hybrid) - * - */ - function disableTypeControls() { - $this->type_controls = false; - } - - /** - * sets map control style - */ - function setTypeControlsStyle($type){ - switch($type){ - case "dropdown": - $this->type_controls_style = "DROPDOWN_MENU"; - break; - case "horizontal": - $this->type_controls_style = "HORIZONTAL_BAR"; - break; - default: - $this->type_controls_style = "DEFAULT"; - break; - } - } - - /** - * set default map type (map/satellite/hybrid) - * - * @param string $type New V3 Map Types, only include ending word (HYBRID,SATELLITE,TERRAIN,ROADMAP) - */ - function setMapType($type) { - switch($type) { - case 'hybrid': - $this->map_type = 'HYBRID'; - break; - case 'satellite': - $this->map_type = 'SATELLITE'; - break; - case 'terrain': - $this->map_type = 'TERRAIN'; - break; - case 'map': - default: - $this->map_type = 'ROADMAP'; - break; - } - } - - /** - * enables onload - * - */ - function enableOnLoad() { - $this->onload = true; - } - - /** - * disables onload - * - */ - function disableOnLoad() { - $this->onload = false; - } - - /** - * enables sidebar - * - */ - function enableSidebar() { - $this->sidebar = true; - } - - /** - * disables sidebar - * - */ - function disableSidebar() { - $this->sidebar = false; - } - - /** - * enables map directions inside info window - * - */ - function enableDirections() { - $this->directions = true; - } - - /** - * disables map directions inside info window - * - */ - function disableDirections() { - $this->directions = false; - } - - /** - * set browser alert message for incompatible browsers - * - * @param string $message - */ - function setBrowserAlert($message) { - $this->browser_alert = $message; - } - - /** - * set