# Source: open-layers/ol-modern-store-locator-circle.js

    /**

     * @namespace WPGMZA

     * @module OLModernStoreLocatorCircle

     * @requires WPGMZA.ModernStoreLocatorCircle

     */

    (function($) {

    	WPGMZA.OLModernStoreLocatorCircle = function(map, settings)

    	{

    		WPGMZA.ModernStoreLocatorCircle.call(this, map, settings);

    	}

    	WPGMZA.OLModernStoreLocatorCircle.prototype = Object.create(WPGMZA.ModernStoreLocatorCircle.prototype);

    	WPGMZA.OLModernStoreLocatorCircle.prototype.constructor = WPGMZA.OLModernStoreLocatorCircle;

    	WPGMZA.OLModernStoreLocatorCircle.prototype.initCanvasLayer = function()

    	{

    		var self = this;

    		var mapElement = $(this.map.element);

    		var olViewportElement = mapElement.children(".ol-viewport");

    		this.canvas = document.createElement("canvas");

    		this.canvas.className = "wpgmza-ol-canvas-overlay";

    		mapElement.append(this.canvas);

    		this.renderFunction = function(event) {

    			if(self.canvas.width != olViewportElement.width() || self.canvas.height != olViewportElement.height())

    			{

    				self.canvas.width = olViewportElement.width();

    				self.canvas.height = olViewportElement.height();

    				$(this.canvas).css({

    					width: olViewportElement.width() + "px",

    					height: olViewportElement.height() + "px"

    				});

    			}

    			self.draw();

    		};

    		this.map.olMap.on("postrender", this.renderFunction);

    	}

    	WPGMZA.OLModernStoreLocatorCircle.prototype.getContext = function(type)

    	{

    		return this.canvas.getContext(type);

    	}

    	WPGMZA.OLModernStoreLocatorCircle.prototype.getCanvasDimensions = function()

    	{

    		return {

    			width: this.canvas.width,

    			height: this.canvas.height

    		};

    	}

    	WPGMZA.OLModernStoreLocatorCircle.prototype.getCenterPixels = function()

    	{

    		var center = this.map.latLngToPixels(this.settings.center);

    		return center;

    	}

    	WPGMZA.OLModernStoreLocatorCircle.prototype.getWorldOriginOffset = function()

    	{

    		return {

    			x: 0,

    			y: 0

    		};

    	}

    	WPGMZA.OLModernStoreLocatorCircle.prototype.getTransformedRadius = function(km)

    	{

    		var center = new WPGMZA.LatLng(this.settings.center);

    		var outer = new WPGMZA.LatLng(center);

    		outer.moveByDistance(km, 90);

    		var centerPixels = this.map.latLngToPixels(center);

    		var outerPixels = this.map.latLngToPixels(outer);

    		return Math.abs(outerPixels.x - centerPixels.x);

    		if(!window.testMarker){

    			window.testMarker = WPGMZA.Marker.createInstance({

    				position: outer

    			});

    			WPGMZA.maps[0].addMarker(window.testMarker);

    		}

    		return 100;

    	}

    	WPGMZA.OLModernStoreLocatorCircle.prototype.getScale = function()

    	{

    		return 1;

    	}

    	WPGMZA.OLModernStoreLocatorCircle.prototype.destroy = function()

    	{

    		$(this.canvas).remove();

    		this.map.olMap.un("postrender", this.renderFunction);

    		this.map = null;

    		this.canvas = null;

    	}

    })(jQuery);