当前位置: 首页>>代码示例>>Java>>正文


Java ItemVisitor类代码示例

本文整理汇总了Java中com.vividsolutions.jts.index.ItemVisitor的典型用法代码示例。如果您正苦于以下问题:Java ItemVisitor类的具体用法?Java ItemVisitor怎么用?Java ItemVisitor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ItemVisitor类属于com.vividsolutions.jts.index包,在下文中一共展示了ItemVisitor类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: query

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
private void query(Object searchBounds, AbstractNode node, ItemVisitor visitor) {
    List childBoundables = node.getChildBoundables();
    for (Object childBoundable1 : childBoundables) {
        Boundable childBoundable = (Boundable) childBoundable1;
        if (!this.getIntersectsOp().intersects(childBoundable.getBounds(), searchBounds)) {
            continue;
        }
        if (childBoundable instanceof AbstractNode) {
            this.query(searchBounds, (AbstractNode) childBoundable, visitor);
        } else if (childBoundable instanceof ItemBoundable) {
            visitor.visitItem(((ItemBoundable) childBoundable).getItem());
        } else {
            Assert.shouldNeverReachHere();
        }
    }
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:17,代码来源:AbstractSTRtree.java

示例2: query

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
private void query(Object searchBounds, AbstractNode node, ItemVisitor visitor) {
    List childBoundables = node.getChildBoundables();
    for (int i = 0; i < childBoundables.size(); i++) {
        Boundable childBoundable = (Boundable) childBoundables.get(i);
        if (!getIntersectsOp().intersects(childBoundable.getBounds(), searchBounds)) {
            continue;
        }
        if (childBoundable instanceof AbstractNode) {
            query(searchBounds, (AbstractNode) childBoundable, visitor);
        } else if (childBoundable instanceof ItemBoundable) {
            visitor.visitItem(((ItemBoundable) childBoundable).getItem());
        } else {
            Assert.shouldNeverReachHere();
        }
    }
}
 
开发者ID:Semantive,项目名称:jts,代码行数:17,代码来源:AbstractSTRtree.java

示例3: query

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
private void query(Object searchBounds, AbstractNode node, ItemVisitor visitor) {
  List childBoundables = node.getChildBoundables();
  for (int i = 0; i < childBoundables.size(); i++) {
    Boundable childBoundable = (Boundable) childBoundables.get(i);
    if (! getIntersectsOp().intersects(childBoundable.getBounds(), searchBounds)) {
      continue;
    }
    if (childBoundable instanceof AbstractNode) {
      query(searchBounds, (AbstractNode) childBoundable, visitor);
    }
    else if (childBoundable instanceof ItemBoundable) {
      visitor.visitItem(((ItemBoundable)childBoundable).getItem());
    }
    else {
      Assert.shouldNeverReachHere();
    }
  }
}
 
开发者ID:GitHubDroid,项目名称:geodroid_master_update,代码行数:19,代码来源:AbstractSTRtree.java

示例4: query

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
@Override
public void query(double queryMin, double queryMax, ItemVisitor visitor) {
    if (!this.intersects(queryMin, queryMax)) {
        return;
    }

    visitor.visitItem(this.item);
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:9,代码来源:IntervalRTreeLeafNode.java

示例5: query

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
@Override
    public void query(double queryMin, double queryMax, ItemVisitor visitor) {
        if (!this.intersects(queryMin, queryMax)) {
//			System.out.println("Does NOT Overlap branch: " + this);
            return;
        }
//		System.out.println("Overlaps branch: " + this);
        if (this.node1 != null) {
            this.node1.query(queryMin, queryMax, visitor);
        }
        if (this.node2 != null) {
            this.node2.query(queryMin, queryMax, visitor);
        }
    }
 
开发者ID:gegy1000,项目名称:Earth,代码行数:15,代码来源:IntervalRTreeBranchNode.java

示例6: visit

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
public void visit(Envelope searchEnv, ItemVisitor visitor) {
    if (!this.isSearchMatch(searchEnv)) {
        return;
    }

    // this node may have items as well as subnodes (since items may not
    // be wholely contained in any single subnode
    this.visitItems(searchEnv, visitor);

    for (int i = 0; i < 4; i++) {
        if (this.subnode[i] != null) {
            this.subnode[i].visit(searchEnv, visitor);
        }
    }
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:16,代码来源:NodeBase.java

示例7: query

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
/**
 * Returns items whose bounds intersect the given envelope.
 */
@Override
public void query(Envelope searchEnv, ItemVisitor visitor) {
    //Yes this method does something. It specifies that the bounds is an
    //Envelope. super.query takes an Object, not an Envelope. [Jon Aquino 10/24/2003]
    super.query(searchEnv, visitor);
}
 
开发者ID:gegy1000,项目名称:Earth,代码行数:10,代码来源:STRtree.java

示例8: getData

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
public Cancelable getData(final Envelope envelope,
        final GetDataCallback callback, boolean forceUpdate) {
    return awaitData(new DataCallback() {

        @Override
        public void onDataReceived() {
            final List<SpatialEntity2<? extends Geometry>> resultList = new ArrayList<SpatialEntity2<? extends Geometry>>();
            synchronized (mEntityIndex) {
                mEntityIndex.query(envelope, new ItemVisitor() {
                    @Override
                    public void visitItem(Object item) {
                        @SuppressWarnings("unchecked")
                        SpatialEntity2<? extends Geometry> entity = (SpatialEntity2<? extends Geometry>) item;
                        if (envelope.intersects(entity.getEnvelope())) {
                            resultList.add(entity);
                        }
                    }
                });
            }
            callback.onReceiveMeasurements(resultList);
        }

        @Override
        public void onAbort(DataSourceErrorType reason) {
            callback.onAbort(reason);
        }
    }, forceUpdate);
}
 
开发者ID:52North,项目名称:geoar-app,代码行数:29,代码来源:DataCache.java

示例9: snap

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
/**
 * Snaps (nodes) all interacting segments to this hot pixel.
 * The hot pixel may represent a vertex of an edge,
 * in which case this routine uses the optimization
 * of not noding the vertex itself
 *
 * @param hotPixel            the hot pixel to snap to
 * @param parentEdge          the edge containing the vertex, if applicable, or <code>null</code>
 * @param hotPixelVertexIndex the index of the hotPixel vertex, if applicable, or -1
 * @return <code>true</code> if a node was added for this pixel
 */
public boolean snap(HotPixel hotPixel, SegmentString parentEdge, int hotPixelVertexIndex) {
    final Envelope pixelEnv = hotPixel.getSafeEnvelope();
    final HotPixelSnapAction hotPixelSnapAction = new HotPixelSnapAction(hotPixel, parentEdge, hotPixelVertexIndex);

    index.query(pixelEnv, new ItemVisitor() {
        public void visitItem(Object item) {
            MonotoneChain testChain = (MonotoneChain) item;
            testChain.select(pixelEnv, hotPixelSnapAction);
        }
    }
    );
    return hotPixelSnapAction.isNodeAdded();
}
 
开发者ID:Semantive,项目名称:jts,代码行数:25,代码来源:MCIndexPointSnapper.java

示例10: query

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
public void query(double queryMin, double queryMax, ItemVisitor visitor) {
        if (!intersects(queryMin, queryMax)) {
//			System.out.println("Does NOT Overlap branch: " + this);
            return;
        }
//		System.out.println("Overlaps branch: " + this);
        if (node1 != null) node1.query(queryMin, queryMax, visitor);
        if (node2 != null) node2.query(queryMin, queryMax, visitor);
    }
 
开发者ID:Semantive,项目名称:jts,代码行数:10,代码来源:IntervalRTreeBranchNode.java

示例11: visit

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
public void visit(Envelope searchEnv, ItemVisitor visitor) {
    if (!isSearchMatch(searchEnv))
        return;

    // this node may have items as well as subnodes (since items may not
    // be wholely contained in any single subnode
    visitItems(searchEnv, visitor);

    for (int i = 0; i < 4; i++) {
        if (subnode[i] != null) {
            subnode[i].visit(searchEnv, visitor);
        }
    }
}
 
开发者ID:Semantive,项目名称:jts,代码行数:15,代码来源:NodeBase.java

示例12: intersectingFeatures

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
/** */
public List<VectorFeature> intersectingFeatures (Geometry geom) {
    final PreparedGeometry pGeom = PreparedGeometryFactory.prepare(geom);
    final List<VectorFeature> result = new ArrayList<VectorFeature>();
    _spatialIndex.query(geom.getEnvelopeInternal(), new ItemVisitor() {
            public void visitItem (Object item) {
                VectorFeature feature = (VectorFeature)item;
                if (pGeom.intersects(feature.getGeometry())) {
                    result.add(feature);
                }
            }
        });
    return result;
}
 
开发者ID:reuven,项目名称:modelingcommons,代码行数:15,代码来源:VectorDataset.java

示例13: visit

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
public void visit(Envelope searchEnv, ItemVisitor visitor)
{
  if (! isSearchMatch(searchEnv))
    return;

  // this node may have items as well as subnodes (since items may not
  // be wholely contained in any single subnode
  visitItems(searchEnv, visitor);

  for (int i = 0; i < 4; i++) {
    if (subnode[i] != null) {
      subnode[i].visit(searchEnv, visitor);
    }
  }
}
 
开发者ID:GitHubDroid,项目名称:geodroid_master_update,代码行数:16,代码来源:NodeBase.java

示例14: visitItems

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
private void visitItems(Envelope searchEnv, ItemVisitor visitor)
{
  // would be nice to filter items based on search envelope, but can't until they contain an envelope
  for (Iterator i = items.iterator(); i.hasNext(); ) {
    visitor.visitItem(i.next());
  }
}
 
开发者ID:GitHubDroid,项目名称:geodroid_master_update,代码行数:8,代码来源:NodeBase.java

示例15: snap

import com.vividsolutions.jts.index.ItemVisitor; //导入依赖的package包/类
/**
 * Snaps (nodes) all interacting segments to this hot pixel.
 * The hot pixel may represent a vertex of an edge,
 * in which case this routine uses the optimization
 * of not noding the vertex itself
 *
 * @param hotPixel the hot pixel to snap to
 * @param parentEdge the edge containing the vertex, if applicable, or <code>null</code>
 * @param hotPixelVertexIndex the index of the hotPixel vertex, if applicable, or -1
 * @return <code>true</code> if a node was added for this pixel
 */
public boolean snap(HotPixel hotPixel, SegmentString parentEdge, int hotPixelVertexIndex)
{
  final Envelope pixelEnv = hotPixel.getSafeEnvelope();
  final HotPixelSnapAction hotPixelSnapAction = new HotPixelSnapAction(hotPixel, parentEdge, hotPixelVertexIndex);

  index.query(pixelEnv, new ItemVisitor() {
    public void visitItem(Object item) {
      MonotoneChain testChain = (MonotoneChain) item;
      testChain.select(pixelEnv, hotPixelSnapAction);
    }
  }
  );
  return hotPixelSnapAction.isNodeAdded();
}
 
开发者ID:Jules-,项目名称:terraingis,代码行数:26,代码来源:MCIndexPointSnapper.java


注:本文中的com.vividsolutions.jts.index.ItemVisitor类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。