/*
* WMSService.java
*
* Created on October 7, 2006, 6:06 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package org.jdesktop.swingx.mapviewer.wms;
import org.jdesktop.swingx.mapviewer.util.MercatorUtils;
/**
* A class that represents a WMS mapping service. See
* http://en.wikipedia.org/wiki/Web_Map_Service for more information.
*
* @author joshy
*/
@SuppressWarnings("javadoc")
@Deprecated
public class WMSService {
private String baseUrl;
private String layer;
/** Creates a new instance of WMSService */
public WMSService() {
// by default use a known nasa server
setLayer("BMNG");
setBaseUrl("http://wms.jpl.nasa.gov/wms.cgi?");
}
public WMSService(String baseUrl, String layer) {
this.baseUrl = baseUrl;
this.layer = layer;
}
public String toWMSURL(int x, int y, int zoom, int tileSize) {
String format = "image/jpeg";
// String layers = "BMNG";
String styles = "";
String srs = "EPSG:4326";
int ts = tileSize;
int circumference = widthOfWorldInPixels(zoom, tileSize);
double radius = circumference / (2 * Math.PI);
double ulx = MercatorUtils.xToLong(x * ts, radius);
double uly = MercatorUtils.yToLat(y * ts, radius);
double lrx = MercatorUtils.xToLong((x + 1) * ts, radius);
double lry = MercatorUtils.yToLat((y + 1) * ts, radius);
String bbox = ulx + "," + uly + "," + lrx + "," + lry;
String url = getBaseUrl() + "version=1.1.1&request=" + "GetMap&Layers=" + layer + "&format="
+ format + "&BBOX=" + bbox + "&width=" + ts + "&height=" + ts + "&SRS=" + srs
+ "&Styles=" + styles +
// "&transparent=TRUE"+
"";
return url;
}
private int widthOfWorldInPixels(int zoom, int TILE_SIZE) {
// int TILE_SIZE = 256;
int tiles = (int) Math.pow(2, zoom);
int circumference = TILE_SIZE * tiles;
return circumference;
}
public String getLayer() {
return layer;
}
public void setLayer(String layer) {
this.layer = layer;
}
public String getBaseUrl() {
return baseUrl;
}
public void setBaseUrl(String baseUrl) {
this.baseUrl = baseUrl;
}
}