Recommend this page to a friend!
  Classes of Vagharshak Tozalakyan  >  Map Builder  >  REFERENCE.txt  >  Download  
Role: Documentation
Content type: text/plain
Description: Class reference.
Class: Map Builder
Display maps using Google Maps API v3
Author: By
Last change: Updated documentation.
Date: 5 years ago
Size: 13,325 bytes


Class file image Download
Copyright (C) 2012 - 2014 Vagharshak Tozalakyan <>
Released under MIT license (

MapBuilder class, ver. 1.07

- PHP 5.2 or higher version;
- JSON extension (optional, used for Geocoding only);
- Sockets extension (optional, used for Geocoding only with appropriate fetch mode);
- CURL extension (optional, used for Geocoding only with appropriate fetch mode);
- An active Internet connection to access the Google Maps API.


1. Overview.
2. Description of Examples.
3. Constants.
4. Methods.
5. The Map Options Array.


This class can be used to generate dynamic maps of different types, sizes, UI control 
sets and to place customizable markers and info windows attached to markers on it.
It uses Google Maps API v3 service to generate Javascript and HTML output to display 
the map in browser's window. It also implements Google Maps Geocoding functionality to 
retrieve longitude and latitude coordinates from human readable address strings.
In the browsers, which support W3C Geolocation API, it can read Geolocation sensor 
(e.g. GPS) data and place a marker and/or set map's center position using that data.


ex1 - Minimal installation.
ex2 - Geocoding, markers, map types, zoom level.
ex3 - Playing with controls.
ex4 - Info windows.
ex5 - Playing with different marker icons.
ex6 - Full screen mode.
ex7 - Using Geolocation service.
ex8 - Filling data from database.
ex9 - Working with map from JavaScript code.
ex10 - Working with polylines.
ex11 - Working with polygons.
ex12 - Using directions service.


3.1. Map Types.


3.2. Control Positions.


3.3. Map Type Control Styles.


3.4. Scale Control Styles.


3.5. Zoom Control Styles


3.6. URL fetch Method For Geocoding.
3.7. Marker Animations.


void __construct(string $id = '', string $apiKey = '') 
Object constructor. The first parameter is a unique identifier to be used as ID attribute of map's DIV tag.
If empty string passed as id, then a random identifier will be generated automatically. 
The second parameter is the Google Maps API key.
If empty string passed as apiKey, then no API key will be used. 

void setId(string $id) 
Sets a unique identifier to be used as ID attribute of map's DIV tag.

string getId() 
Returns the value of unique identifier to be used as ID attribute of map's DIV tag.

void setApiKey(string $apiKey)
Sets the Google Maps API key.

string getApiKey()
Returns the Google Maps API key.

void setSize(int $width, int $height) 
Sets the map size in pixels. Ignored when full screen mode is on (see below).

int getWidth()
Returns the map width in pixels.
int getHeight() 
Returns the map height in pixels.

void setFullScreen(bool $fullScreen)
Sets the full screen mode (width=100%, height=100%). 

bool getFullScreen()
Returns the recent full screen mode.

void setCenter(float $lat, float $lng)
Sets the location, which will be visible in the center of the map.
Parameters are latitude and longitude of the location.

float getCenterLat()
Returns the center point latitude.
float getCenterLng() 
Returns the center point longitude.

void setSensor(bool $sensor) 
Enables GPS sensor.

bool getSensor() 
Returns the recent sensor enabled mode.

void setZoom(int $zoom)
Sets the initial map zoom level.

int getZoom()
Returns the entire zoom level. 

void setMapTypeId(string $mapTypeId)
Defines the default map type.
Possible values are:
Default map type is HYBRID.

string getMapTypeId()
Returns the entire map type.

array getLatLng(string $address, string $urlFetchMethod = URL_FETCH_METHOD_SOCKETS)
Returns latitude and longitude (an array with "lat" and "lng" keys) from an address string.
Second parameter is fetching method which will be used to access the Google Geocoding API.
Possible methods are: MapBuilder::URL_FETCH_METHOD_SOCKETS and MapBuilder::URL_FETCH_METHOD_CURL.

int addMarker(float $lat, float $lng, array $options = array())
Adds a new marker at position specified by $lat and $lng parameters.
Returns the newly added marker's index in array.
Please refer to the Marker Options Array section for details about the $options array.

mixed getMarkerLat(int $index) 
Returns the marker's latitude value by its index or false if the index is incorrect.

mixed getMarkerLng(int $index) 
Returns the marker's longitude value by its index or false if the index is incorrect.

mixed getMarkerOptions(int $index)
Returns the markers's options array by its index or false if the index is incorrect.
int getNumMarkers()
Returns the number of added markers. 

void removeMarker(int $index) 
Removes the marker by its index.

void clearMarkers() 
Removes all added markers.

int addPolyline(array $path, string $color, int $weight, float $opacity)
Add a new polyline by path as an array of [lat, lng] pairs, stroke color, weight and opacity.
Returns the numeric index of added polyline.

int getNumPolylines()
Returns the number of added polylines.

bool removePolyline(int $index)
Removes the polyline by its index.

void clearPolylines() 
Removes all added polylines.

int addPolygon(array $path, string $strokeColor, string $fillColor, int $strokeWeight, float $strokeOpacity, float $fillOpacity)
Add a new polygon by path as an array of [lat, lng] pairs, stroke color, fill color, stroke weight, stroke opacity and fill opacity.
Returns the numeric index of added polygon.

int getNumPolygons()
Returns the number of added polygons.

bool removePolygon(int $index)
Removes the polygon by its index.

void clearPolygons() 
Removes all added polygons.

void addGeoMarker(array $options = array())
Adds a marker to position returned by Geolocation API using GPS sensor.
Geolocation should be supported in browser.

void removeGeoMarker(bool $resetSensor = true) 
Removes the Geolocation marker and resets the sensor flag if parameter is true.

void overrideCenterByGeo(bool $override = true, bool $resetSensor = true)
Overrides the map's center location by Geolocation API position.
If the first parameter is false and the second parameter is true, it will reset the sensor flag. 
Geolocation should be supported in browser.

mixed show(bool $output = true)
Displays the map. When $output is false, the JS/HTML code will be returned as a string instead of beeing outputed directly to the browser.

Other map parameters
Please refer to official Google Maps API documentation for the description of options:

void setDisableDefaultUI(bool $disableDefaultUI)
bool getDisableDefaultUI()
void setDisableDoubleClickZoom(bool $disableDoubleClickZoom)
bool getDisableDoubleClickZoom()
void setDraggable(bool $draggable)
bool getDraggable()
void setDraggableCursor(string $draggableCursor)
string getDraggableCursor()
void setDraggingCursor(string $draggingCursor)
string getDraggingCursor()
void setHeading(int $heading)
int getHeading()
void setKeyboardShortcuts(bool $keyboardShortcuts)
bool getKeyboardShortcuts()
void setMapMaker(bool $mapMaker)
bool getMapMaker()
void setMapTypeControl(bool $mapTypeControl)
bool getMapTypeControl()
void setMapTypeControlIds(array $mapTypeControlIds)
array getMapTypeControlIds()
void setMapTypeControlPosition(string $mapTypeControlPosition)
string getMapTypeControlPosition()
void setMapTypeControlStyle(string $mapTypeControlStyle)
string getMapTypeControlStyle()
void setMaxZoom(int $maxZoom)
int getMaxZoom()
void setMinZoom(int $minZoom)
int getMinZoom()
void setNoClear(bool $noClear)
bool getNoClear()
void setOverviewMapControl(bool $overviewMapControl)
bool getOverviewMapControl()
void setOverviewMapControlOpened(bool $overviewMapControlOpened)
bool getOverviewMapControlOpened()
void setPanControl(bool $panControl)
bool getPanControl()
void setPanControlPosition(string $panControlPosition)
string getPanControlPosition()
void setRotateControl(bool $rotateControl)
bool getRotateControl()
void setRotateControlPosition(string $rotateControlPosition)
string getRotateControlPosition()
void setScaleControl(bool $scaleControl)
bool getScaleControl()
void setScaleControlStyle(string $scaleControlStyle)
string getScaleControlStyle()
void setScaleControlPosition(string $scaleControlPosition)
string getScaleControlPosition()
void setScrollwheel(bool $scrollwheel)
bool getScrollwheel()
void setStreetViewControl(bool $streetViewControl)
bool getStreetViewControl()
void setStreetViewControlPosition(string $streetViewControlPosition)
string getStreetViewControlPosition()
void setTilt(int $tilt)
int getTilt()
void setZoomControl(bool $zoomControl)
bool getZoomControl()
void setZoomControlPosition(string $zoomControlPosition)
string getZoomControlPosition()
void setZoomControlStyle(string $zoomControlStyle)
string getZoomControlStyle()


The marker's options array may contain the following keys:

string animation 
Which animation to play when marker is added to a map.
If set, the possible values are:

bool clickable 
If true, the marker receives mouse and touch events. Default value is true.

string cursor 
Mouse cursor to show on hover.

bool draggable
If true, the marker can be dragged. Default value is false.

bool flat 
If true, the marker shadow will not be displayed.

string icon 
Custom icon's URL for the marker.

string defColor
When the custom icon is not set or empty, a default baloon marker could be shown using specified background color. 

string defSymbol 
When the custom icon is not set or empty, a default baloon marker could be shown using specified symbol (e.g. number or letter) in the center. 
bool optimized
Optimization renders many markers as a single static element. Optimized rendering is enabled by default. Disable optimized rendering for animated GIFs or PNGs, or when each marker must be rendered as a separate DOM element (advanced usage only).

bool raiseOnDrag 
If false, disables raising and lowering the marker on drag. This option is true by default.

string shadow 
The URL of the shadow image of the marker.
string title 
Marker rollover text.

bool visible
If false, the marker will not be visible.
int zIndex 
All markers are displayed on the map in order of their zIndex, with higher values displaying in front of markers with lower values. By default, markers are displayed according to their vertical position on screen, with lower markers appearing in front of markers further up the screen.

string html
Content to display in the info window when clicking on the marker. This can be an HTML element, a plain-text string, or a string containing HTML. The InfoWindow will be sized according to the content. To set an explicit size for the content, set content to be a HTML element with that size.
int infoMaxWidth 
Maximum width of the info window, regardless of content's width. 

bool infoDisableAutoPan 
Disable auto-pan on open. By default, the info window will pan the map so that it is fully visible when it opens.

int infoZIndex 
All info windows are displayed on the map in order of their zIndex, with higher values displaying in front of info windows with lower values. By default, info winodws are displayed according to their latitude, with info windows of lower latitudes appearing in front of info windows at higher latitudes. Info windows are always displayed in front of markers.

bool infoCloseOthers = false
Close other opened info windows before opening the entire info window.

Note: Almost all values in options array are set to null by default which indicate the corresponding parameters have not been set yet.

For more information send a message to info at phpclasses dot org.