org.epseelon.mobimap.tiles
Class TileFactory

java.lang.Object
  extended by org.epseelon.mobimap.tiles.TileFactory
Direct Known Subclasses:
AbstractTileFactory, EmptyTileFactory

public abstract class TileFactory
extends java.lang.Object

A class that can produce tiles and convert coordinates to pixels

Author:
sarbogast

Constructor Summary
protected TileFactory(TileFactoryInfo info)
          Creates a new instance of TileFactory
 
Method Summary
 Point2D geoToPixel(GeoPosition c, int referenceZoom)
          Convert a GeoPosition to a pixel position in the world bitmap a the specified zoom level.
protected abstract  java.lang.String getCoordinatePart(int x, int y, int referenceZoom)
           
 TileFactoryInfo getInfo()
          Get the TileFactoryInfo describing this TileFactory
 Dimension getMapSize(int referenceZoom)
          Returns a Dimension containing the width and height of the map, in tiles at the current zoom level.
protected abstract  int getParticularZoomFromReferenceZoom(int referenceZoom)
           
protected abstract  int getReferenceZoomFromParticularZoom(int particularZoom)
           
abstract  Tile getTile(int x, int y, int referenceZoom)
          Return the Tile at a given TilePoint and zoom level
 int getTileSize(int referenceZoom)
          Gets the size of an edge of a tile in pixels at the current zoom level.
 GeoPosition pixelToGeo(Point2D pixelCoordinate, int referenceZoom)
          Convert a pixel in the world bitmap at the specified zoom level into a GeoPosition
protected abstract  void startLoading(Tile tile)
          Override this method to load the tile
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TileFactory

protected TileFactory(TileFactoryInfo info)
Creates a new instance of TileFactory

Parameters:
info - a TileFactoryInfo to configure this TileFactory
Method Detail

getTileSize

public int getTileSize(int referenceZoom)
Gets the size of an edge of a tile in pixels at the current zoom level. Tiles must be square.

Parameters:
referenceZoom - the current zoom level
Returns:
the size of an edge of a tile in pixels

getMapSize

public Dimension getMapSize(int referenceZoom)
Returns a Dimension containing the width and height of the map, in tiles at the current zoom level. So a Dimension that returns 10x20 would be 10 tiles wide and 20 tiles tall. These values can be multipled by getTileSize() to determine the pixel width/height for the map at the given zoom level

Parameters:
referenceZoom - the current zoom level
Returns:
the size of the world bitmap in tiles

getTile

public abstract Tile getTile(int x,
                             int y,
                             int referenceZoom)
Return the Tile at a given TilePoint and zoom level

Parameters:
y - ordinate of the tilePoint
referenceZoom - the current zoom level
Returns:
the tile that is located at the given tilePoint for this zoom level. For example, if getMapSize() returns 10x20 for this zoom, and the tilePoint is (3,5), then the appropriate tile will be located and returned. This method must not return null. However, it can return dummy tiles that contain no data if it wants. This is appropriate, for example, for tiles which are outside of the bounds of the map and if the factory doesn't implement wrapping. @param x abscissa of the tilePoint

pixelToGeo

public GeoPosition pixelToGeo(Point2D pixelCoordinate,
                              int referenceZoom)
Convert a pixel in the world bitmap at the specified zoom level into a GeoPosition

Parameters:
pixelCoordinate - a Point2D representing a pixel in the world bitmap
referenceZoom - the zoom level of the world bitmap
Returns:
the converted GeoPosition

geoToPixel

public Point2D geoToPixel(GeoPosition c,
                          int referenceZoom)
Convert a GeoPosition to a pixel position in the world bitmap a the specified zoom level.

Parameters:
c - a GeoPosition
referenceZoom - the zoom level to extract the pixel coordinate for
Returns:
the pixel point

getInfo

public TileFactoryInfo getInfo()
Get the TileFactoryInfo describing this TileFactory

Returns:
a TileFactoryInfo

startLoading

protected abstract void startLoading(Tile tile)
Override this method to load the tile

Parameters:
tile - The tile to load.

getCoordinatePart

protected abstract java.lang.String getCoordinatePart(int x,
                                                      int y,
                                                      int referenceZoom)

getParticularZoomFromReferenceZoom

protected abstract int getParticularZoomFromReferenceZoom(int referenceZoom)

getReferenceZoomFromParticularZoom

protected abstract int getReferenceZoomFromParticularZoom(int particularZoom)


Copyright © 2008 Epseelon. All Rights Reserved.