//tworzenie funkcji pobierania adresu kafelka w serwisie WMS
function createGetTile(map,address, layers, format, outputTileSize, inputTileSize, transparent) {
    if (typeof format == 'undefined' ) format = 'image/png';
    if (typeof outputTileSize == 'undefined' ) outputTileSize = 256;
    if (typeof inputTileSize == 'undefined' ) inputTileSize = 256;
    if (typeof transparent == 'undefined' ) transparent = false;
    return function(p,z) {
        return getImageFromWMS(
    	    p,
	    z,
	    map, 
	    address,
	    layers,
	    format,
	    outputTileSize,
	    inputTileSize,
	    transparent
	);
    };
}
				
//adres kafelka w WMSie
function getImageFromWMS(p,z,map,address,layers,format,outputTileSize,inputTileSize,transparent) {
    var y = p.y;
    var x = p.x;
    var baseURL = address;
    var styles = "";
    var version = "1.1.1";
    var srscrs = "SRS=EPSG:4326";
    var ll = map.getProjection().fromPointToLatLng(new google.maps.Point(x*outputTileSize/Math.pow(2,z),(y+1)*outputTileSize/Math.pow(2,z)), false); 
    var ur = map.getProjection().fromPointToLatLng(new google.maps.Point((x+1)*outputTileSize/Math.pow(2,z),y*outputTileSize/Math.pow(2,z)), false); 
    var bbox = ll.lng() + "," + ll.lat() + "," + ur.lng() + "," + ur.lat();
    var url = baseURL + "version="+version+"&request=GetMap&Layers=" + layers + "&Styles=" + styles + "&"+ srscrs +"&BBOX=" + bbox + "&width=" + inputTileSize +"&height=" + inputTileSize + "&format=" + format + "&transparent=" + transparent;
    return url;							
}
	


function createGetTileFromCache(cacheName,layers,cacheAddress) {
    return function(p,z) {
	    return getImageFromCache(
			p,
			z,
			layers,
			cacheName,
			cacheAddress
	    );
    };
}
				

	
//adres kafelka z cache
function getImageFromCache(p,z,layers,cacheName,cacheAddress) {
    var y = p.y;
    var x = p.x;
    url = cacheAddress+"x="+x+"&y="+y+"&z="+z+"&service="+cacheName+"&Layers="+layers;
    return url;		
}

function createGetTileFromGoogle(cacheName,layers,cacheAddress) {
    return function(p,z) {
	    return getImageFromGoogle(
			p,
			z,
			layers,
			cacheName,
			cacheAddress
	    );
    };
}
				

	
//adres kafelka z google
function getImageFromGoogle(p,z,layers,cacheName,cacheAddress) {
    var y = p.y;
    var x = p.x;
    url = "http://mt"+((x+y)%4)+".google.com/" + cacheAddress+"x="+x+"&y="+y+"&z="+z+"&s="+cacheName+"&lyrs="+layers;
    return url;		
}

