File: /home/assotraipi/www/wp-content/plugins/wp-google-maps/js/v8/google-maps/google-circle.js
/**
* @namespace WPGMZA
* @module GoogleCircle
* @requires WPGMZA.Circle
*/
jQuery(function($) {
/**
* Subclass, used when Google is the maps engine. <strong>Please <em>do not</em> call this constructor directly. Always use createInstance rather than instantiating this class directly.</strong> Using createInstance allows this class to be externally extensible.
* @class WPGMZA.GoogleCircle
* @constructor WPGMZA.GoogleCircle
* @memberof WPGMZA
* @augments WPGMZA.Circle
* @see WPGMZA.Circle.createInstance
*/
WPGMZA.GoogleCircle = function(options, googleCircle)
{
var self = this;
WPGMZA.Circle.call(this, options, googleCircle);
if(googleCircle)
{
this.googleCircle = googleCircle;
}
else
{
this.googleCircle = new google.maps.Circle();
this.googleCircle.wpgmzaCircle = this;
}
google.maps.event.addListener(this.googleCircle, "click", function() {
self.dispatchEvent({type: "click"});
});
if(options)
this.setOptions(options);
}
WPGMZA.GoogleCircle.prototype = Object.create(WPGMZA.Circle.prototype);
WPGMZA.GoogleCircle.prototype.constructor = WPGMZA.GoogleCircle;
WPGMZA.GoogleCircle.prototype.setCenter = function(center)
{
WPGMZA.Circle.prototype.setCenter.apply(this, arguments);
this.googleCircle.setCenter(center);
}
WPGMZA.GoogleCircle.prototype.setRadius = function(radius)
{
WPGMZA.Circle.prototype.setRadius.apply(this, arguments);
this.googleCircle.setRadius(parseFloat(radius) * 1000);
}
WPGMZA.GoogleCircle.prototype.setVisible = function(visible)
{
this.googleCircle.setVisible(visible ? true : false);
}
WPGMZA.GoogleCircle.prototype.setOptions = function(options)
{
var googleOptions = {};
googleOptions = $.extend({}, options);
delete googleOptions.map;
delete googleOptions.center;
if(options.center)
googleOptions.center = new google.maps.LatLng({
lat: parseFloat(options.center.lat),
lng: parseFloat(options.center.lng)
});
if(options.radius)
googleOptions.radius = parseFloat(options.radius);
if(options.color)
googleOptions.fillColor = options.color;
if(options.opacity)
{
googleOptions.fillOpacity = parseFloat(options.opacity);
googleOptions.strokeOpacity = parseFloat(options.opacity);
}
this.googleCircle.setOptions(googleOptions);
if(options.map)
options.map.addCircle(this);
}
});