com.bbn.openmap.dataAccess.mapTile
Class TileMillMapTileFactory

java.lang.Object
  extended by com.bbn.openmap.util.cacheHandler.CacheHandler
      extended by com.bbn.openmap.dataAccess.mapTile.StandardMapTileFactory
          extended by com.bbn.openmap.dataAccess.mapTile.TileMillMapTileFactory
All Implemented Interfaces:
MapTileFactory, PropertyConsumer

public class TileMillMapTileFactory
extends StandardMapTileFactory
implements MapTileFactory, PropertyConsumer

The TileMillMapTileFactory is an extension to the StandardMapTileFactory that can read image tiles stored in a mbtiles file, which is the export format from the TileMill application. The mbtiles file is a sqlite database, so this factory requires the sqlitejdbc package be used to read those data files. You can find that package at http://www.zentus.com/sqlitejdbc. This component can be configured using properties:

 # Inherited from StandardMapTileFactory
 rootDir=the jdbc driver/path string to use for the database file, "jdbc:sqlite:path to file"
 cacheSize=the number of mapTiles the factory should hold on to. The default is 100.

 #optional:
 # The class used to test for the existance of jdbc components.  Assumes sqlitejdbc, but the code fetching the tiles
 # is pretty standard SQL - so you should be able to use any jdbc driver library.
 testClass=org.sqlite.JDBC

 

Author:
dietrick

Nested Class Summary
 
Nested classes/interfaces inherited from class com.bbn.openmap.dataAccess.mapTile.StandardMapTileFactory
StandardMapTileFactory.TilePathBuilder
 
Field Summary
static java.lang.String DEFAULT_TEST_CLASS
           
static java.lang.String TEST_CLASS_PROPERTY
           
protected  java.lang.String testClass
          Test class to use for existence of JDBC drivers.
 
Fields inherited from class com.bbn.openmap.dataAccess.mapTile.StandardMapTileFactory
CACHE_SIZE_PROPERTY, EMPTY_TILE_HANDLER_PROPERTY, emptyTileHandler, FILE_EXT_PROPERTY, fileExt, lastProj, logger, mapTileLogger, mapTileRequester, mtcTransform, MTCTRANSFORM_PROPERTY, prefix, ROOT_DIR_PATH_PROPERTY, ROOT_DIR_PROPERTY, rootDir, rootDirProperty, TILE_IMAGE_PREPARER_PROPERTY, TILE_PROPERTIES, tileImagePreparer, verbose, ZOOM_LEVEL_INFO_PROPERTY, ZOOM_LEVEL_TILE_SIZE_PROPERTY, zoomLevelInfo, zoomLevelTileSize
 
Fields inherited from class com.bbn.openmap.util.cacheHandler.CacheHandler
DEFAULT_MAX_CACHE_SIZE, logicalClock, objs
 
Fields inherited from interface com.bbn.openmap.PropertyConsumer
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty
 
Constructor Summary
TileMillMapTileFactory()
           
TileMillMapTileFactory(java.lang.String rootDir)
           
 
Method Summary
 java.util.Properties getProperties(java.util.Properties getList)
          Method to fill in a Properties object, reflecting the current values of the PropertyConsumer.
 java.util.Properties getPropertyInfo(java.util.Properties list)
          Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer.
 CacheObject load(java.lang.Object key, int x, int y, int zoomLevel, Projection proj)
          Fetches a new tile from the database.
 void setProperties(java.lang.String prefix, java.util.Properties setList)
          Method to set the properties in the PropertyConsumer.
 
Methods inherited from class com.bbn.openmap.dataAccess.mapTile.StandardMapTileFactory
buildCacheKey, buildFilePath, configureFromProperties, createOMGraphicFromBufferedImage, get, getEmptyTile, getEmptyTileHandler, getFileExt, getFromCache, getInitPropertiesOrder, getMapTileRequester, getMtcTransform, getPropertyPrefix, getRootDir, getTileImagePreparer, getTileMatchingProjectionType, getTileNotMatchingProjectionType, getTilePathBuilder, getTiles, getTiles, getTiles, getTiles, getZoomLevelInfo, load, preprocessImage, reset, setEmptyTileHandler, setFileExt, setMapTileRequester, setMtcTransform, setProperties, setPropertyPrefix, setRootDir, setTileImagePreparer, setTilePathBuilder, setZoomLevelInfo
 
Methods inherited from class com.bbn.openmap.util.cacheHandler.CacheHandler
clear, get, getCacheSize, listIterator, replaceLeastUsed, resetCache, resetCache, searchCache
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.bbn.openmap.dataAccess.mapTile.MapTileFactory
getEmptyTileHandler, getTiles, getTiles, getTiles, reset, setMapTileRequester
 
Methods inherited from interface com.bbn.openmap.PropertyConsumer
getPropertyPrefix, setProperties, setPropertyPrefix
 

Field Detail

DEFAULT_TEST_CLASS

public static final java.lang.String DEFAULT_TEST_CLASS
See Also:
Constant Field Values

TEST_CLASS_PROPERTY

public static final java.lang.String TEST_CLASS_PROPERTY
See Also:
Constant Field Values

testClass

protected java.lang.String testClass
Test class to use for existence of JDBC drivers.

Constructor Detail

TileMillMapTileFactory

public TileMillMapTileFactory()

TileMillMapTileFactory

public TileMillMapTileFactory(java.lang.String rootDir)
Method Detail

load

public CacheObject load(java.lang.Object key,
                        int x,
                        int y,
                        int zoomLevel,
                        Projection proj)
Fetches a new tile from the database.

Overrides:
load in class StandardMapTileFactory
Parameters:
key - cache key
x - uv x coordinate
y - uv y coordinate
zoomLevel - zoom level for tile to load
proj - passed solely to enable checking if the projection of the tiles matches the rendered projection.
Returns:
CacheObject returned from cache, null if not found

getProperties

public java.util.Properties getProperties(java.util.Properties getList)
Description copied from interface: PropertyConsumer
Method to fill in a Properties object, reflecting the current values of the PropertyConsumer. If the PropertyConsumer has a prefix set, the property keys should have that prefix plus a separating '.' prepended to each property key it uses for configuration.

Specified by:
getProperties in interface PropertyConsumer
Overrides:
getProperties in class StandardMapTileFactory
Parameters:
getList - a Properties object to load the PropertyConsumer properties into. If getList equals null, then a new Properties object should be created.
Returns:
Properties object containing PropertyConsumer property values. If getList was not null, this should equal getList. Otherwise, it should be the Properties object created by the PropertyConsumer.

getPropertyInfo

public java.util.Properties getPropertyInfo(java.util.Properties list)
Description copied from interface: PropertyConsumer
Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer. The key for each property should be the raw property name (without a prefix) with a value that is a String that describes what the property key represents, along with any other information about the property that would be helpful (range, default value, etc.).

Specified by:
getPropertyInfo in interface PropertyConsumer
Overrides:
getPropertyInfo in class StandardMapTileFactory
Parameters:
list - a Properties object to load the PropertyConsumer properties into. If getList equals null, then a new Properties object should be created.
Returns:
Properties object containing PropertyConsumer property values. If getList was not null, this should equal getList. Otherwise, it should be the Properties object created by the PropertyConsumer.

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties setList)
Description copied from interface: PropertyConsumer
Method to set the properties in the PropertyConsumer. The prefix is a string that should be prepended to each property key (in addition to a separating '.') in order for the PropertyConsumer to uniquely identify properties meant for it, in the midst of of Properties meant for several objects.

Specified by:
setProperties in interface PropertyConsumer
Overrides:
setProperties in class StandardMapTileFactory
Parameters:
prefix - a String used by the PropertyConsumer to prepend to each property value it wants to look up - setList.getProperty(prefix.propertyKey). If the prefix had already been set, then the prefix passed in should replace that previous value.
setList - a Properties object that the PropertyConsumer can use to retrieve expected properties it can use for configuration.


Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details