public class Tile extends java.lang.Object implements Var<Tile>, java.lang.Comparable<Tile>
TileManager
und bietet zusaetzlich Methoden zur
Ermittlung, Namensvergabe und Sortierung aufgrund der geografischen
Lage. Zusaetzlich werden noch transiente Tile-Infos gehalten,
die fuer das NodeTiling (Sortieren von Nodes in Tiles) und den
entsprechenden Dateioperationen benoetigt werden.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
SHARED_TILE_ID |
Modifier and Type | Method and Description |
---|---|
void |
cacheOsmNode(OsmNode osmNode) |
boolean |
cacheOsmNodes(java.io.File osmNodesFile,
Log log)
Cached alle Knoten dieses Tiles aus der uebergebenen Datei.
|
void |
clearCache()
Reinitialisiert und raeumt Speicher frei.
|
int |
compareTo(Tile that) |
boolean |
containsNode(long key)
Pure Contains-Pruefung, ob Knotenschluessel bekannt ist.
|
protected long |
estimateRamUsage()
Zentrale Abschaetzmethode fuer das Node-Caching.
|
int |
getId() |
long |
getNumberOfNodes()
Liefert die Anzahl aller Knoten, egal ob
Form- (Koordinate) oder Complex-Node.
|
long |
getNumberOfWays() |
long |
getNumberOfWaysNodes() |
OutStreamDisk |
getOutStreamDisk()
Transienter Datei-Ausgabestrom.
|
static int |
getTileId(double lat,
double lon,
int tileSizeY,
int tileSizeX)
Liefert eine eindeutige TileId auf Grundlage der Koordinate
und der Groesse eines Tiles.
|
static int[] |
getTileIds(double lat,
double lon,
int tileSizeY,
int tileSizeX,
double tileBuffer,
boolean spherical)
Liefert eine Menge (Array) von TileIds, in denen sich eine
Koordinate aufgrund von eventuellen Ueberschneidungen mit
benachbarten Tiles befindet.
|
static java.lang.String |
getTileName(int tileId)
Statische Methode, welche Lat und Lon aus einer
TileId ermittelt und einen fuer Schluessel oder Dateinamen
nuetzlichen String zurueckliefert.
|
void |
incNodeCounter(boolean isLatLonOnly)
Inkrementiert den internen Knoten-Zaehler.
|
void |
incTiledWaysCounter() |
void |
incTiledWaysNodesCounter(int addNum) |
static boolean |
isInTileExlusive(double lat,
double lon,
double tileBuffer,
int tileSizeY,
int tileSizeX)
Prueft, ob eine Koordinate exklusiv nur in (s)einem Tile liegt
oder aufgrund von Ueberschneidung anderer Tiles (tileBuffer)
auch noch anderen Tiles zuzuordnen ist.
|
boolean |
isRelevantTile() |
Node |
lookupNode(long key)
Liefert einen Knoten aus dem TileCache.
|
Tile |
readFromStream(InStream inStream)
Deserialisiert dieses Objekt aus einem Stream.
|
void |
resetNodeCounter() |
void |
resetTiledWaysCounter() |
void |
setId(int id) |
void |
setNumberOfSegments(long nSegments) |
void |
setOutStreamDisk(OutStreamDisk outStreamDisk)
Transienter Datei-Ausgabestrom.
|
void |
setRelevantTile(boolean isRelevantTile)
Wird vom
Tiler verwendet um zwischen Tiles
zu unterscheiden, die Knoten nur aufgrund ihres
Ueberschneidungs-Puffers (tileBuffer) oder "echt"
beinhalten, also "relevant" sind. |
java.lang.String |
toString() |
void |
writeToStream(OutStream outStream)
Serialisiert dieses Objekt in einen Stream.
|
public static final java.lang.String SHARED_TILE_ID
public int compareTo(Tile that)
compareTo
in interface java.lang.Comparable<Tile>
public void cacheOsmNode(OsmNode osmNode)
public boolean cacheOsmNodes(java.io.File osmNodesFile, Log log)
osmNodesFile
- File
log
- Log
(Logger)OutOfMemoryError
public Node lookupNode(long key)
key
- long SchluesselNode
oder null, wenn nicht gefunden.public boolean containsNode(long key)
key
- long KnotenRef-Schluessel.public void clearCache()
public java.lang.String toString()
toString
in class java.lang.Object
public int getId()
public void setId(int id)
public void setRelevantTile(boolean isRelevantTile)
Tiler
verwendet um zwischen Tiles
zu unterscheiden, die Knoten nur aufgrund ihres
Ueberschneidungs-Puffers (tileBuffer) oder "echt"
beinhalten, also "relevant" sind.isRelevantTile
- Tile ist relevant ja/nein.public boolean isRelevantTile()
setRelevantTile(boolean)
public void resetNodeCounter()
public void incNodeCounter(boolean isLatLonOnly)
isLatLonOnly
- Art von Knoten (Koordinate oder Complex)public void resetTiledWaysCounter()
public void incTiledWaysCounter()
public void incTiledWaysNodesCounter(int addNum)
public void setNumberOfSegments(long nSegments)
public long getNumberOfNodes()
public long getNumberOfWays()
public long getNumberOfWaysNodes()
protected long estimateRamUsage()
public void setOutStreamDisk(OutStreamDisk outStreamDisk)
outStreamDisk
- OutStreamDisk
public OutStreamDisk getOutStreamDisk()
OutStreamDisk
public static java.lang.String getTileName(int tileId)
tileId
- Id des Tiles bzw. LatLon.public static int getTileId(double lat, double lon, int tileSizeY, int tileSizeX)
lat
- double Breitengrad.lon
- double Laengengrad.tileSizeY
- int Hoehe eines Tiles.tileSizeX
- int Breite eines Tiles.public static boolean isInTileExlusive(double lat, double lon, double tileBuffer, int tileSizeY, int tileSizeX)
lat
- double Breitengrad.lon
- double Laengengrad.tileSizeY
- int Hoehe eines Tiles.tileSizeX
- int Breite eines Tiles.tileBuffer
- double Ueberschneidung aneinander liegender Tiles.public static int[] getTileIds(double lat, double lon, int tileSizeY, int tileSizeX, double tileBuffer, boolean spherical)
lat
- double Breitengrad.lon
- double Laengengrad.tileSizeY
- int Hoehe eines Tiles.tileSizeX
- int Breite eines Tiles.tileBuffer
- double Ueberschneidung aneinander liegender Tiles.spherical
- x = f(cos(y)) fuer Erdkruemmung an den Polen einrechnen
und entsprechend hier den tileBuffer in X-Richtung vergroessern. Ja/Nein.public void writeToStream(OutStream outStream)
Var
writeToStream
in interface Var<Tile>
outStream
- OutStream