public abstract class GeoExtensionBase<T extends OsmObject<?>> extends GraphExtension<GeoExtensionBase<T>>
GraphExtension
s die vom
GeoExtensionBuilderBase
erzeugt wurden.
Bietet komplexe Strukturen und Zugriffe fuer eine Sammlung
von beliebigen OsmObject
s.connect(File, long, Log, Properties)
sind jedoch alle optional. Ist File null
, so wurde der Graph nicht
aus einer lokalen Datei eingelesen, sondern aus einem Stream, so dass
ein Fallback nicht moeglich ist.GraphExtension
,
GeoExtensionBuilderBase
,
findByCoordinate(double, double, ClazzFlagPredicate)
,
findByName(String, boolean)
,
findByIndex(int, OsmObject)
Constructor and Description |
---|
GeoExtensionBase() |
Modifier and Type | Method and Description |
---|---|
void |
connect(java.io.File file,
long offset,
Log log,
java.util.Properties props)
Wird zur Laufzeit direkt vor
Var.readFromStream(de.cm.osm2po.primitives.InStream)
aufgerufen. |
void |
disconnect()
Wird zur Laufzeit von
Graph.close() aufgerufen,
um hier etwaige Resourcen wieder freizugeben. |
abstract T[] |
findByCoordinate(double lat,
double lon,
ClazzFlagPredicate filter)
Liefert ein Objekt-Array zu einer Koordinate.
|
T |
findById(long id,
T osmObject)
Findet ein Objekt aufgrund seiner Id.
|
T |
findByIndex(int index,
T osmObject)
Findet ein Object aufgrund seines Index.
|
int[] |
findByName(java.lang.String name,
boolean exact)
Findet Objekt-Indizes aufgrund ihres Namens.
|
byte |
findClazzByIndex(int index)
Liefert die
OsmObject.getClazz() des Elements
an einem uebergebenen Index. |
int[] |
findIndexesForZone(double lat,
double lon)
Liefert die Indexe aller Objekte aus einer Zone, die
eine Koordinate enthaelt.
|
int[] |
findIndexesForZone(int zoneId)
Liefert die Indexe aller Objekte aus einer Zone.
|
int |
findIndexForId(long id)
Findet den Index zu einer Id.
|
int |
getIndexLength()
Liefert die Groesse des internen Index, also
die Anzahl der gespeicherten Elemente.
|
protected Log |
getLog() |
int |
getZoneSize() |
boolean |
isNearby(double lat,
double lon)
Simple Pruefung, ob eine Koordinate in den Zones enthalten ist.
|
GeoExtensionBase<T> |
readFromStream(InStream inStream)
Deserialisiert dieses Objekt aus einem Stream.
|
writeToStream
public abstract T[] findByCoordinate(double lat, double lon, ClazzFlagPredicate filter)
lat
- double Breitengradlon
- double Laengengradfilter
- ClazzFlagPredicate
NULLABLE.OsmObject
s oder null.protected final Log getLog()
public final int getZoneSize()
public final void connect(java.io.File file, long offset, Log log, java.util.Properties props)
GraphExtension
Var.readFromStream(de.cm.osm2po.primitives.InStream)
aufgerufen.connect
in class GraphExtension<GeoExtensionBase<T extends OsmObject<?>>>
file
- File, z.B. Graph-Datei fuer Fallback/DiskMode. NULLABLEoffset
- long Dateiposition der Quellelog
- Log
optionaler Logger, NULLABLEprops
- zusaetzliche Properties
NULLABLE.public final void disconnect()
GraphExtension
Graph.close()
aufgerufen,
um hier etwaige Resourcen wieder freizugeben.disconnect
in class GraphExtension<GeoExtensionBase<T extends OsmObject<?>>>
public final int getIndexLength()
public final byte findClazzByIndex(int index)
OsmObject.getClazz()
des Elements
an einem uebergebenen Index. Dies jedoch ohne das komplette
Objekt vorher zu deserialisieren.index
- int NOT CHECKEDpublic final int findIndexForId(long id)
id
- longpublic final T findByIndex(int index, T osmObject)
public final T findById(long id, T osmObject)
public final int[] findIndexesForZone(int zoneId)
zoneId
- intpublic final int[] findIndexesForZone(double lat, double lon)
lat
- double Breitengradlon
- double Laengengradpublic final boolean isNearby(double lat, double lon)
lat
- double Breitengradlon
- double Laengengradpublic final int[] findByName(java.lang.String name, boolean exact)
findByIndex(int, OsmObject)
gelesen werden.name
- String Name NULLABLEexact
- boolean false: startsWith()-Suchepublic final GeoExtensionBase<T> readFromStream(InStream inStream)
Var
inStream
- InStream
this
zurueckgeben.