本文整理汇总了Java中com.spatial4j.core.shape.SpatialRelation.WITHIN属性的典型用法代码示例。如果您正苦于以下问题:Java SpatialRelation.WITHIN属性的具体用法?Java SpatialRelation.WITHIN怎么用?Java SpatialRelation.WITHIN使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类com.spatial4j.core.shape.SpatialRelation
的用法示例。
在下文中一共展示了SpatialRelation.WITHIN属性的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getBoundingStateForCoordinate
public String getBoundingStateForCoordinate(Double lat, Double lng) {
Point onePoint = ctx.makePoint(lat, lng);
for (String oneShapeKey : geometries.keySet()) {
Shape oneShape = geometries.get(oneShapeKey);
SpatialRelation relation = oneShape.relate(onePoint);
if (relation == SpatialRelation.CONTAINS || relation == SpatialRelation.INTERSECTS
|| relation == SpatialRelation.WITHIN) {
return oneShapeKey;
} else {
System.out.println("NOT IN:" + relation.toString());
}
}
return null;
}
示例2: isPointInPolygon
public Boolean isPointInPolygon(Double lat, Double lng) {
Point onePoint = ctx.makePoint(lat, lng);
for (Shape oneShape : geometries.values()) {
SpatialRelation relation = oneShape.relate(onePoint);
if (relation == SpatialRelation.CONTAINS || relation == SpatialRelation.INTERSECTS
|| relation == SpatialRelation.WITHIN) {
return true;
} else {
System.out.println("NOT IN:" + relation.toString());
}
}
return false;
}
示例3: evaluateRecord
@Override
public Object evaluateRecord(OIdentifiable iRecord, ODocument iCurrentResult, OSQLFilterCondition iCondition, Object iLeft,
Object iRight, OCommandContext iContext) {
List<Number> left = (List<Number>) iLeft;
double lat = left.get(0).doubleValue();
double lon = left.get(1).doubleValue();
Shape shape = factory.context().makePoint(lon, lat);
List<Number> right = (List<Number>) iRight;
double lat1 = right.get(0).doubleValue();
double lon1 = right.get(1).doubleValue();
Shape shape1 = factory.context().makePoint(lon1, lat1);
Map map = (Map) right.get(2);
double distance = 0;
Number n = (Number) map.get("maxDistance");
if (n != null) {
distance = n.doubleValue();
}
Point p = (Point) shape1;
Circle circle = factory.context().makeCircle(p.getX(), p.getY(),
DistanceUtils.dist2Degrees(distance, DistanceUtils.EARTH_MEAN_RADIUS_KM));
double docDistDEG = factory.context().getDistCalc().distance((Point) shape, p);
final double docDistInKM = DistanceUtils.degrees2Dist(docDistDEG, DistanceUtils.EARTH_EQUATORIAL_RADIUS_KM);
iContext.setVariable("distance", docDistInKM);
return shape.relate(circle) == SpatialRelation.WITHIN;
}
示例4: evaluateRecord
@Override
public Object evaluateRecord(OIdentifiable iRecord, ODocument iCurrentResult, OSQLFilterCondition iCondition, Object iLeft,
Object iRight, OCommandContext iContext) {
List<Number> left = (List<Number>) iLeft;
double lat = left.get(0).doubleValue();
double lon = left.get(1).doubleValue();
Shape shape = SpatialContext.GEO.makePoint(lon, lat);
Shape shape1 = shapeFactory.makeShape(new OSpatialCompositeKey((List<?>) iRight), SpatialContext.GEO);
return shape.relate(shape1) == SpatialRelation.WITHIN;
}
示例5: getSubCells
/**
* Like {@link #getSubCells()} but with the results filtered by a shape. If
* that shape is a {@link com.spatial4j.core.shape.Point} then it must call
* {@link #getSubCell(com.spatial4j.core.shape.Point)}. The returned cells
* should have {@link Cell#getShapeRel()} set to their relation with {@code
* shapeFilter}. In addition, {@link Cell#isLeaf()}
* must be true when that relation is WITHIN.
* <p/>
* Precondition: Never called when getLevel() == maxLevel.
*
* @param shapeFilter an optional filter for the returned cells.
* @return A set of cells (no dups), sorted. Not Modifiable.
*/
public Collection<Cell> getSubCells(Shape shapeFilter) {
//Note: Higher-performing subclasses might override to consider the shape filter to generate fewer cells.
if (shapeFilter instanceof Point) {
Cell subCell = getSubCell((Point) shapeFilter);
subCell.shapeRel = SpatialRelation.CONTAINS;
return Collections.singletonList(subCell);
}
Collection<Cell> cells = getSubCells();
if (shapeFilter == null) {
return cells;
}
//TODO change API to return a filtering iterator
List<Cell> copy = new ArrayList<>(cells.size());
for (Cell cell : cells) {
SpatialRelation rel = cell.getShape().relate(shapeFilter);
if (rel == SpatialRelation.DISJOINT)
continue;
cell.shapeRel = rel;
if (rel == SpatialRelation.WITHIN)
cell.setLeaf();
copy.add(cell);
}
return copy;
}
示例6: evaluateRecord
@Override
public Object evaluateRecord(OIdentifiable iRecord, ODocument iCurrentResult, OSQLFilterCondition iCondition, Object iLeft,
Object iRight, OCommandContext iContext) {
List<Number> left = (List<Number>) iLeft;
double lat = left.get(0).doubleValue();
double lon = left.get(1).doubleValue();
Shape shape = SpatialContext.GEO.makePoint(lon, lat);
List<Number> right = (List<Number>) iRight;
double lat1 = right.get(0).doubleValue();
double lon1 = right.get(1).doubleValue();
Shape shape1 = SpatialContext.GEO.makePoint(lon1, lat1);
Map map = (Map) right.get(2);
double distance = 0;
Number n = (Number) map.get("maxDistance");
if (n != null) {
distance = n.doubleValue();
}
Point p = (Point) shape1;
Circle circle = SpatialContext.GEO.makeCircle(p.getX(), p.getY(),
DistanceUtils.dist2Degrees(distance, DistanceUtils.EARTH_MEAN_RADIUS_KM));
double docDistDEG = SpatialContext.GEO.getDistCalc().distance((Point) shape, p);
final double docDistInKM = DistanceUtils.degrees2Dist(docDistDEG, DistanceUtils.EARTH_EQUATORIAL_RADIUS_KM);
iContext.setVariable("distance", docDistInKM);
return shape.relate(circle) == SpatialRelation.WITHIN;
}
示例7: getSubCells
/**
* Like {@link #getSubCells()} but with the results filtered by a shape. If
* that shape is a {@link com.spatial4j.core.shape.Point} then it must call
* {@link #getSubCell(com.spatial4j.core.shape.Point)}. The returned cells
* should have {@link Node#getShapeRel()} set to their relation with {@code
* shapeFilter}. In addition, {@link org.apache.lucene.spatial.prefix.tree.Node#isLeaf()}
* must be true when that relation is WITHIN.
* <p/>
* Precondition: Never called when getLevel() == maxLevel.
*
* @param shapeFilter an optional filter for the returned cells.
* @return A set of cells (no dups), sorted. Not Modifiable.
*/
public Collection<Node> getSubCells(Shape shapeFilter) {
//Note: Higher-performing subclasses might override to consider the shape filter to generate fewer cells.
if (shapeFilter instanceof Point) {
Node subCell = getSubCell((Point) shapeFilter);
subCell.shapeRel = SpatialRelation.CONTAINS;
return Collections.singletonList(subCell);
}
Collection<Node> cells = getSubCells();
if (shapeFilter == null) {
return cells;
}
//TODO change API to return a filtering iterator
List<Node> copy = new ArrayList<Node>(cells.size());
for (Node cell : cells) {
SpatialRelation rel = cell.getShape().relate(shapeFilter);
if (rel == SpatialRelation.DISJOINT)
continue;
cell.shapeRel = rel;
if (rel == SpatialRelation.WITHIN)
cell.setLeaf();
copy.add(cell);
}
return copy;
}
示例8: getSubCells
/**
* Like {@link #getSubCells()} but with the results filtered by a shape. If
* that shape is a {@link com.spatial4j.core.shape.Point} then it must call
* {@link #getSubCell(com.spatial4j.core.shape.Point)}. The returned cells
* should have {@link Cell#getShapeRel()} set to their relation with {@code
* shapeFilter}. In addition, {@link Cell#isLeaf()}
* must be true when that relation is WITHIN.
* <p/>
* Precondition: Never called when getLevel() == maxLevel.
*
* @param shapeFilter an optional filter for the returned cells.
* @return A set of cells (no dups), sorted. Not Modifiable.
*/
public Collection<Cell> getSubCells(Shape shapeFilter) {
//Note: Higher-performing subclasses might override to consider the shape filter to generate fewer cells.
if (shapeFilter instanceof Point) {
Cell subCell = getSubCell((Point) shapeFilter);
subCell.shapeRel = SpatialRelation.CONTAINS;
return Collections.singletonList(subCell);
}
Collection<Cell> cells = getSubCells();
if (shapeFilter == null) {
return cells;
}
//TODO change API to return a filtering iterator
List<Cell> copy = new ArrayList<Cell>(cells.size());
for (Cell cell : cells) {
SpatialRelation rel = cell.getShape().relate(shapeFilter);
if (rel == SpatialRelation.DISJOINT)
continue;
cell.shapeRel = rel;
if (rel == SpatialRelation.WITHIN)
cell.setLeaf();
copy.add(cell);
}
return copy;
}
示例9: intersect
public boolean intersect(Geoshape other) {
SpatialRelation r = getSpatialRelation(other);
return r==SpatialRelation.INTERSECTS || r==SpatialRelation.CONTAINS || r==SpatialRelation.WITHIN;
}
示例10: within
public boolean within(Geoshape outer) {
return getSpatialRelation(outer)==SpatialRelation.WITHIN;
}
示例11: evaluate
@Override
public boolean evaluate(Shape indexedShape, Shape queryShape) {
Rectangle bbox = indexedShape.getBoundingBox();
return bbox.relate(queryShape) == SpatialRelation.WITHIN || bbox.equals(queryShape);
}
示例12: evaluate
@Override
public boolean evaluate(Shape indexedShape, Shape queryShape) {
return indexedShape.getBoundingBox().relate(queryShape) == SpatialRelation.WITHIN;
}
示例13: execute
@Override
public Object execute(Object iThis, OIdentifiable iCurrentRecord, Object iCurrentResult, Object[] iParams,
OCommandContext iContext) {
Shape shape = factory.fromObject(iParams[0]);
Shape shape1 = factory.fromObject(iParams[1]);
return shape.relate(shape1) == SpatialRelation.WITHIN;
}