org.jxmapviewer.viewer.bmng.SLMapServerInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jxmapviewer2 Show documentation
Show all versions of jxmapviewer2 Show documentation
A MapViewer based on the JXMapViewer component of SwingX-WS.
package org.jxmapviewer.viewer.bmng;
import org.jxmapviewer.viewer.TileFactoryInfo;
/**
* A TileFactoryInfo subclass which knows how to connect to the SwingLabs map server. This server contains 2k resolution
* Blue Marble data from NASA.
*/
public class SLMapServerInfo extends TileFactoryInfo
{
private static final int pyramid_top = 8 + 1;
private static final int midpoint = 5;
private static final int normal_tile_size = 675;
/**
* Uses the default base URL
*/
public SLMapServerInfo()
{
this("http://maps.joshy.net/tiles/bmng_tiles_3");
}
/**
* @param baseURL the base URL
*/
public SLMapServerInfo(String baseURL)
{
// joshy: this was version one of the tiles
// super(0, 5, 5, 256, true, false, "http://maps.joshy.net/bmng_tiles_1", "", "", "");
// super(0, pyramid_top-1, pyramid_top,
// 675,
// true, false, "http://maps.joshy.net/bmng_tiles_2", "", "", "");
// super(0, pyramid_top-1, pyramid_top,
// normal_tile_size,
// true, false, "file:/Users/joshy/projects/java.net/ImageTileCutter/tiles", "", "", "");
super(0, pyramid_top - 1, pyramid_top, normal_tile_size, true, false, baseURL, "", "", "");
setDefaultZoomLevel(0);
}
/**
* @return the midpoint
*/
public int getMidpoint()
{
return midpoint;
}
@Override
public int getTileSize(int zoom)
{
int size = super.getTileSize(zoom);
if (zoom < midpoint)
{
return size;
}
else
{
for (int i = 0; i < zoom + 1 - midpoint; i++)
{
size = size / 2;
}
return size;
}
}
@Override
public int getMapWidthInTilesAtZoom(int zoom)
{
if (zoom < midpoint)
{
return (int) Math.pow(2, midpoint - zoom);
}
else
{
return 1;
}
}
@Override
public String getTileUrl(int x, int y, int zoom)
{
int ty = y;
int tx = x;
// int width_in_tiles = (int)Math.pow(2,pyramid_top-zoom);
int width_in_tiles = getMapWidthInTilesAtZoom(zoom);
// System.out.println("width in tiles = " + width_in_tiles + " x = " + tx + " y = " + ty);
if (ty < 0)
{
return null;
}
if (zoom < midpoint)
{
if (ty >= width_in_tiles / 2)
{
return null;
}
}
else
{
if (ty != 0)
{
return null;
}
}
String url = this.baseURL + "/" + zoom + "/" + ty + "/" + tx + ".jpg";
// System.out.println("returning: " + url);
return url;
}
}