org.elasticsearch.common.lucene.spatial.prefix.tree
Class QuadPrefixTree

java.lang.Object
  extended by org.elasticsearch.common.lucene.spatial.prefix.tree.SpatialPrefixTree
      extended by org.elasticsearch.common.lucene.spatial.prefix.tree.QuadPrefixTree

public class QuadPrefixTree
extends SpatialPrefixTree


Field Summary
static int DEFAULT_MAX_LEVELS
           
 double gridH
           
static int MAX_LEVELS_POSSIBLE
           
 
Fields inherited from class org.elasticsearch.common.lucene.spatial.prefix.tree.SpatialPrefixTree
ctx, maxLevels, UTF8
 
Constructor Summary
QuadPrefixTree(com.spatial4j.core.context.SpatialContext ctx)
           
QuadPrefixTree(com.spatial4j.core.context.SpatialContext ctx, int maxLevels)
           
QuadPrefixTree(com.spatial4j.core.context.SpatialContext ctx, com.spatial4j.core.shape.Rectangle bounds, int maxLevels)
           
 
Method Summary
 int getLevelForDistance(double dist)
          Returns the level of the smallest grid size with a side length that is greater or equal to the provided distance.
 Node getNode(byte[] bytes, int offset, int len)
           
 Node getNode(com.spatial4j.core.shape.Point p, int level)
           
 Node getNode(String token)
          The cell for the specified token.
 List<Node> getNodes(com.spatial4j.core.shape.Shape shape, int detailLevel, boolean inclParents)
          Gets the intersecting & including cells for the specified shape, without exceeding detail level.
 void printInfo()
           
 
Methods inherited from class org.elasticsearch.common.lucene.spatial.prefix.tree.SpatialPrefixTree
getMaxLevelForPrecision, getMaxLevels, getNode, getNodesAltPoint, getSpatialContext, getWorldNode, nodesToTokenStrings, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAX_LEVELS_POSSIBLE

public static final int MAX_LEVELS_POSSIBLE
See Also:
Constant Field Values

DEFAULT_MAX_LEVELS

public static final int DEFAULT_MAX_LEVELS
See Also:
Constant Field Values

gridH

public final double gridH
Constructor Detail

QuadPrefixTree

public QuadPrefixTree(com.spatial4j.core.context.SpatialContext ctx,
                      com.spatial4j.core.shape.Rectangle bounds,
                      int maxLevels)

QuadPrefixTree

public QuadPrefixTree(com.spatial4j.core.context.SpatialContext ctx)

QuadPrefixTree

public QuadPrefixTree(com.spatial4j.core.context.SpatialContext ctx,
                      int maxLevels)
Method Detail

printInfo

public void printInfo()

getLevelForDistance

public int getLevelForDistance(double dist)
Description copied from class: SpatialPrefixTree
Returns the level of the smallest grid size with a side length that is greater or equal to the provided distance.

Specified by:
getLevelForDistance in class SpatialPrefixTree
Parameters:
dist - >= 0
Returns:
level [1-maxLevels]

getNode

public Node getNode(com.spatial4j.core.shape.Point p,
                    int level)
Overrides:
getNode in class SpatialPrefixTree

getNode

public Node getNode(String token)
Description copied from class: SpatialPrefixTree
The cell for the specified token. The empty string should be equal to SpatialPrefixTree.getWorldNode(). Precondition: Never called when token length > maxLevel.

Specified by:
getNode in class SpatialPrefixTree

getNode

public Node getNode(byte[] bytes,
                    int offset,
                    int len)
Specified by:
getNode in class SpatialPrefixTree

getNodes

public List<Node> getNodes(com.spatial4j.core.shape.Shape shape,
                           int detailLevel,
                           boolean inclParents)
Description copied from class: SpatialPrefixTree
Gets the intersecting & including cells for the specified shape, without exceeding detail level. The result is a set of cells (no dups), sorted. Unmodifiable.

This implementation checks if shape is a Point and if so uses an implementation that recursively calls Node.getSubCell(com.spatial4j.core.shape.Point). Cell subclasses ideally implement that method with a quick implementation, otherwise, subclasses should override this method to invoke SpatialPrefixTree.getNodesAltPoint(com.spatial4j.core.shape.Point, int, boolean). TODO consider another approach returning an iterator -- won't build up all cells in memory.

Overrides:
getNodes in class SpatialPrefixTree


Copyright © 2009-2012. All Rights Reserved.