1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
package tim.prune.gui.map;
import tim.prune.I18nManager;
/**
* Class to provide a map source for maps-for-free sources
* These are double-layer sources with jpg and gif tiles
*/
public class MffMapSource extends MapSource
{
/** Name for this source */
private String _name = null;
/** Base urls */
private String[] _baseUrls = null;
/** Site names */
private String[] _siteNames = null;
/** Maximum zoom level */
private int _maxZoom = 0;
/**
* Constructor giving name, url and maximum zoom
* @param inName source name
* @param inUrl base url
* @param inMaxZoom maximum zoom level
*/
public MffMapSource(String inName, String inUrl1, String inExt1,
String inUrl2, String inExt2, int inMaxZoom)
{
_name = inName;
if (_name == null || _name.trim().equals("")) {_name = I18nManager.getText("mapsource.unknown");}
_baseUrls = new String[2];
_baseUrls[0] = fixBaseUrl(inUrl1);
_baseUrls[1] = fixBaseUrl(inUrl2);
_siteNames = new String[2];
_siteNames[0] = fixSiteName(_baseUrls[0]);
_siteNames[1] = fixSiteName(_baseUrls[1]);
_extensions = new String[2];
_extensions[0] = inExt1;
_extensions[1] = inExt2;
_maxZoom = inMaxZoom;
}
/**
* @return name
*/
public String getName() {
return _name;
}
/** Number of layers is always 2 for mff sources */
public int getNumLayers() {
return 2;
}
/** Get base url for specified layer */
public String getBaseUrl(int inLayerNum) {
return _baseUrls[inLayerNum];
}
/** site name without protocol or www. */
public String getSiteName(int inLayerNum) {
return _siteNames[inLayerNum];
}
/**
* Make the URL to get the specified tile
*/
public String makeURL(int inLayerNum, int inZoom, int inX, int inY)
{
return _baseUrls[inLayerNum] + "z" + inZoom + "/row" + inY + "/" + inZoom + "_" + inX + "-" + inY + "." + getFileExtension(inLayerNum);
}
/**
* @return maximum zoom level
*/
public final int getMaxZoomLevel()
{
return _maxZoom;
}
/**
* @return semicolon-separated list of all fields
*/
public String getConfigString()
{
// TODO: Maybe a gui will be necessary for this one day
return "not required";
}
}
|