package com.revolsys.swing.map.layer.bing;
import java.awt.image.BufferedImage;
import com.revolsys.swing.map.layer.MapTile;
public class BingMapTile extends MapTile {
private final BingLayer layer;
private final String quadKey;
public BingMapTile(final BingLayer layer, final int zoomLevel, final double resolution,
final int tileX, final int tileY) {
super(layer.getClient().getBoundingBox(zoomLevel, tileX, tileY), 256, 256, resolution);
this.layer = layer;
this.quadKey = layer.getClient().getQuadKey(zoomLevel, tileX, tileY);
}
@Override
public boolean equals(final Object obj) {
if (obj instanceof BingMapTile) {
final BingMapTile tile = (BingMapTile)obj;
if (tile.layer == this.layer) {
if (tile.quadKey.equals(this.quadKey)) {
return true;
}
}
}
return false;
}
public String getQuadKey() {
return this.quadKey;
}
@Override
public int hashCode() {
return this.quadKey.hashCode();
}
@Override
public BufferedImage loadBuffferedImage() {
try {
final BingClient client = this.layer.getClient();
final ImagerySet imagerySet = this.layer.getImagerySet();
final MapLayer mapLayer = this.layer.getMapLayer();
final BufferedImage image = client.getMapImage(imagerySet, mapLayer, this.quadKey);
return image;
} catch (final Throwable t) {
this.layer.setError(t);
return null;
}
}
@Override
public String toString() {
return this.layer + " " + this.quadKey;
}
}