Class TileFactory

java.lang.Object
org.jxmapviewer.viewer.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
  • Constructor Summary

    Constructors 
    Modifier Constructor Description
    protected TileFactory​(TileFactoryInfo info)
    Creates a new instance of TileFactory
  • Method Summary

    Modifier and Type Method Description
    void addTileListener​(TileListener listener)
    Adds a tile listener
    abstract void dispose()
    Disposes this TileFactory
    protected void fireTileLoadedEvent​(Tile tile)
    Notifies all tile listeners
    java.awt.geom.Point2D geoToPixel​(GeoPosition c, int zoomLevel)
    Convert a GeoPosition to a pixel position in the world bitmap a the specified zoom level.
    TileFactoryInfo getInfo()
    Get the TileFactoryInfo describing this TileFactory
    java.awt.Dimension getMapSize​(int zoom)
    Returns a Dimension containing the width and height of the map, in tiles at the current zoom level.
    abstract Tile getTile​(int x, int y, int zoom)
    Return the Tile at a given TilePoint and zoom level
    int getTileSize​(int zoom)
    Gets the size of an edge of a tile in pixels at the current zoom level.
    GeoPosition pixelToGeo​(java.awt.geom.Point2D pixelCoordinate, int zoom)
    Convert a pixel in the world bitmap at the specified zoom level into a GeoPosition
    void removeTileListener​(TileListener listener)
    Removes a tile listener
    void setLocalCache​(LocalCache cache)  
    protected abstract void startLoading​(Tile tile)
    Override this method to load the tile using, for example, an ExecutorService.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TileFactory

      protected TileFactory​(TileFactoryInfo info)
      Creates a new instance of TileFactory
      Parameters:
      info - a TileFactoryInfo to configure this TileFactory
  • Method Details

    • getTileSize

      public int getTileSize​(int zoom)
      Gets the size of an edge of a tile in pixels at the current zoom level. Tiles must be square.
      Parameters:
      zoom - the current zoom level
      Returns:
      the size of an edge of a tile in pixels
    • getMapSize

      public java.awt.Dimension getMapSize​(int zoom)
      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:
      zoom - the current zoom level
      Returns:
      the size of the world bitmap in tiles
    • getTile

      public abstract Tile getTile​(int x, int y, int zoom)
      Return the Tile at a given TilePoint and zoom level
      Parameters:
      x - the x value
      y - the y value
      zoom - 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.
    • pixelToGeo

      public GeoPosition pixelToGeo​(java.awt.geom.Point2D pixelCoordinate, int zoom)
      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
      zoom - the zoom level of the world bitmap
      Returns:
      the converted GeoPosition
    • geoToPixel

      public java.awt.geom.Point2D geoToPixel​(GeoPosition c, int zoomLevel)
      Convert a GeoPosition to a pixel position in the world bitmap a the specified zoom level.
      Parameters:
      c - a GeoPosition
      zoomLevel - 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
    • addTileListener

      public void addTileListener​(TileListener listener)
      Adds a tile listener
      Parameters:
      listener - the listener
    • removeTileListener

      public void removeTileListener​(TileListener listener)
      Removes a tile listener
      Parameters:
      listener - the listener
    • dispose

      public abstract void dispose()
      Disposes this TileFactory
    • fireTileLoadedEvent

      protected void fireTileLoadedEvent​(Tile tile)
      Notifies all tile listeners
      Parameters:
      tile - the tile
    • startLoading

      protected abstract void startLoading​(Tile tile)
      Override this method to load the tile using, for example, an ExecutorService.
      Parameters:
      tile - The tile to load.
    • setLocalCache

      public void setLocalCache​(LocalCache cache)
      Parameters:
      cache - the local cache to use