org.locationtech.geogig.model.Node.expand()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(8.8k)|赞(0)|评价(0)|浏览(115)

本文整理了Java中org.locationtech.geogig.model.Node.expand()方法的一些代码示例,展示了Node.expand()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.expand()方法的具体详情如下:
包路径:org.locationtech.geogig.model.Node
类名称:Node
方法名:expand

Node.expand介绍

暂无

代码示例

代码示例来源:origin: locationtech/geogig

/**
 * Expands the provided {@link Envelope} to encompass the {@code Node} this object points to.
 * 
 * @param env the {@link Envelope} to expand
 */
@Override
public void expand(Envelope env) {
  node.expand(env);
}

代码示例来源:origin: org.locationtech.geogig/geogig-api

/**
 * Expands the provided {@link Envelope} to encompass the {@code Node} this object points to.
 * 
 * @param env the {@link Envelope} to expand
 */
@Override
public void expand(Envelope env) {
  node.expand(env);
}

代码示例来源:origin: locationtech/geogig

/**
 * @param oldObject
 * @param newObject
 * @return the aggregated bounding box
 */
public static org.locationtech.jts.geom.Envelope aggregatedBounds(Node oldObject,
    Node newObject) {
  Envelope env = new Envelope();
  if (oldObject != null) {
    oldObject.expand(env);
  }
  if (newObject != null) {
    newObject.expand(env);
  }
  return env;
}

代码示例来源:origin: org.locationtech.geogig/geogig-core

/**
 * @param oldObject
 * @param newObject
 * @return the aggregated bounding box
 */
public static com.vividsolutions.jts.geom.Envelope aggregatedBounds(Node oldObject,
    Node newObject) {
  Envelope env = new Envelope();
  if (oldObject != null) {
    oldObject.expand(env);
  }
  if (newObject != null) {
    newObject.expand(env);
  }
  return env;
}

代码示例来源:origin: locationtech/geogig

protected void writeBBox(Writer w, Node node, Envelope envHelper) throws IOException {
  envHelper.setToNull();
  node.expand(envHelper);
  writeEnvelope(w, envHelper);
}

代码示例来源:origin: locationtech/geogig

static BoundedSimpleFeature empty(SimpleFeatureType type, Node node,
      CoordinateReferenceSystem crs) {
    FeatureId fid = new FeatureIdImpl(node.getName());
    ReferencedEnvelope env = new ReferencedEnvelope(crs);
    node.expand(env);
    return new BoundedSimpleFeature(Collections.emptyList(), type, fid, env);
  }
}

代码示例来源:origin: org.locationtech.geogig/geogig-core

protected void writeBBox(Writer w, Node node, Envelope envHelper) throws IOException {
  envHelper.setToNull();
  node.expand(envHelper);
  writeEnvelope(w, envHelper);
}

代码示例来源:origin: locationtech/geogig

public static Envelope boundsOf(@NonNull RevTree tree) {
  Envelope env = new Envelope();
  tree.forEachBucket(bucket -> bucket.expand(env));
  tree.forEachTree(n -> n.expand(env));
  tree.forEachFeature(n -> n.expand(env));
  return env;
}

代码示例来源:origin: locationtech/geogig

public static Envelope boundsOf(RevTree tree) {
  Envelope env = new Envelope();
  tree.forEachBucket(bucket -> bucket.expand(env));
  tree.forEachTree(n -> n.expand(env));
  tree.forEachFeature(n -> n.expand(env));
  return env;
}

代码示例来源:origin: locationtech/geogig

/**
 * @return a 3-elements boolean array where the first one indicates if at least one node has
 *         bounds, the seconds if it has extradata map, and the third if it has a metadataId
 */
private boolean[] hasBoundsOrExtraData(List<Node> nodes, Envelope buff) {
  boolean hasBounds = false;
  boolean hasExtraData = false;
  boolean hasMetadataId = false;
  final int size = nodes.size();
  for (int i = 0; i < size; i++) {
    buff.setToNull();
    Node node = nodes.get(i);
    node.expand(buff);
    if (!buff.isNull()) {
      hasBounds = true;
    }
    Map<String, Object> extraData = node.getExtraData();
    if (!extraData.isEmpty()) {
      hasExtraData = true;
    }
    if (node.getMetadataId().isPresent()) {
      hasMetadataId = true;
    }
    if (hasBounds && hasExtraData && hasMetadataId) {
      return new boolean[] { true, true, true };
    }
  }
  return new boolean[] { hasBounds, hasExtraData, hasMetadataId };
}

代码示例来源:origin: org.locationtech.geogig/geogig-core

public static void writeNode(Node node, DataOutput data, Envelope envBuff) {
  try {
    data.writeUTF(node.getName());
    data.write(node.getObjectId().getRawValue());
    data.write(node.getMetadataId().or(ObjectId.NULL).getRawValue());
    int typeN = node.getType().value();
    data.writeByte(typeN);
    envBuff.setToNull();
    node.expand(envBuff);
    writeBoundingBox(envBuff, data);
    Map<String, Object> extraData = node.getExtraData();
    DataStreamValueSerializerV1.INSTANCE.writeMap(extraData, data);
  } catch (IOException e) {
    throw Throwables.propagate(e);
  }
}

代码示例来源:origin: org.locationtech.geogig/geogig-core

public static Envelope boundsOf(RevTree tree) {
  Envelope env = new Envelope();
  tree.buckets().values().forEach((b) -> b.expand(env));
  tree.trees().forEach((t) -> t.expand(env));
  tree.features().forEach((f) -> f.expand(env));
  return env;
}

代码示例来源:origin: org.locationtech.geogig/geogig-core

public static MutableTree createFromPaths(final ObjectId rootId,
    final Map<String, NodeRef> entries) {
  List<NodeRef> refsByDepth = Lists.newArrayList(entries.values());
  Collections.sort(refsByDepth, DEEPEST_LAST_COMPARATOR);
  Node rootNode = Node.create(ROOT, rootId, ObjectId.NULL, TYPE.TREE, null);
  MutableTree root = new MutableTree(rootNode);
  Envelope bounds = new Envelope();
  for (NodeRef entry : refsByDepth) {
    Node node = entry.getNode();
    node.expand(bounds);
    String parentPath = entry.getParentPath();
    root.setChild(parentPath, node);
  }
  // recreate root node with the appropriate bounds
  rootNode = Node.create(ROOT, rootId, ObjectId.NULL, TYPE.TREE, bounds);
  root.setNode(rootNode);
  return root;
}

代码示例来源:origin: locationtech/geogig

public static void writeNode(Node node, DataOutput data, Envelope envBuff) {
  try {
    data.writeUTF(node.getName());
    node.getObjectId().writeTo(data);
    node.getMetadataId().or(ObjectId.NULL).writeTo(data);
    int typeN = node.getType().value();
    data.writeByte(typeN);
    envBuff.setToNull();
    node.expand(envBuff);
    writeBoundingBox(envBuff, data);
    Map<String, Object> extraData = node.getExtraData();
    DataStreamValueSerializerV1.INSTANCE.writeMap(extraData, data);
  } catch (IOException e) {
    throw new RuntimeException(e);
  }
}

代码示例来源:origin: locationtech/geogig

public static MutableTree createFromPaths(final ObjectId rootId,
    final Map<String, NodeRef> entries) {
  List<NodeRef> refsByDepth = Lists.newArrayList(entries.values());
  Collections.sort(refsByDepth, DEEPEST_LAST_COMPARATOR);
  Node rootNode = RevObjectFactory.defaultInstance().createNode(ROOT, rootId, ObjectId.NULL,
      TYPE.TREE, null, null);
  MutableTree root = new MutableTree(rootNode);
  Envelope bounds = new Envelope();
  for (NodeRef entry : refsByDepth) {
    Node node = entry.getNode();
    node.expand(bounds);
    String parentPath = entry.getParentPath();
    root.setChild(parentPath, node);
  }
  // recreate root node with the appropriate bounds
  rootNode = RevObjectFactory.defaultInstance().createNode(ROOT, rootId, ObjectId.NULL,
      TYPE.TREE, bounds, null);
  root.setNode(rootNode);
  return root;
}

代码示例来源:origin: locationtech/geogig

node.expand(env);

代码示例来源:origin: locationtech/geogig

@Override
protected ReferencedEnvelope getBoundsInternal(Query query) throws IOException {
  final Filter filter = (Filter) query.getFilter().accept(new SimplifyingFilterVisitor(),
      null);
  final CoordinateReferenceSystem crs = getSchema().getCoordinateReferenceSystem();
  if (Filter.INCLUDE.equals(filter)) {
    NodeRef typeRef = getTypeRef();
    ReferencedEnvelope bounds = new ReferencedEnvelope(crs);
    typeRef.getNode().expand(bounds);
    return bounds;
  }
  if (Filter.EXCLUDE.equals(filter)) {
    return ReferencedEnvelope.create(crs);
  }
  query = new Query(query);
  query.setPropertyNames(Query.NO_NAMES);
  ReferencedEnvelope bounds = new ReferencedEnvelope(crs);
  try (FeatureReader<SimpleFeatureType, SimpleFeature> features = getNativeReader(query,
      false)) {
    while (features.hasNext()) {
      bounds.expandToInclude((ReferencedEnvelope) features.next().getBounds());
    }
  }
  return bounds;
}

代码示例来源:origin: locationtech/geogig

protected @Override ReferencedEnvelope getBoundsInternal(Query query) throws IOException {
  final Filter filter = (Filter) query.getFilter().accept(new SimplifyingFilterVisitor(),
      null);
  final CoordinateReferenceSystem crs = getSchema().getCoordinateReferenceSystem();
  if (Filter.INCLUDE.equals(filter) && oldRoot == null
      && ChangeType.ADDED.equals(changeType())) {
    NodeRef typeRef = getTypeRef();
    ReferencedEnvelope bounds = new ReferencedEnvelope(crs);
    typeRef.getNode().expand(bounds);
    return bounds;
  }
  if (Filter.EXCLUDE.equals(filter)) {
    return ReferencedEnvelope.create(crs);
  }
  query = new Query(query);
  query.setPropertyNames(Query.NO_NAMES);
  ReferencedEnvelope bounds = new ReferencedEnvelope(crs);
  try (FeatureReader<SimpleFeatureType, SimpleFeature> features = getNativeReader(query,
      false)) {
    while (features.hasNext()) {
      bounds.expandToInclude((ReferencedEnvelope) features.next().getBounds());
    }
  }
  return bounds;
}

代码示例来源:origin: org.locationtech.geogig/geogig-core

private void checkTreeBounds(int size) {
  RevTreeBuilder b = createBuiler();
  List<Node> nodes = createNodes(size);
  Envelope expectedBounds = new Envelope();
  for (Node n : nodes) {
    b.put(n);
    n.expand(expectedBounds);
  }
  expectedBounds = Node.makePrecise(expectedBounds);
  RevTree tree = b.build();
  assertEquals(size, tree.size());
  Envelope bounds = SpatialOps.boundsOf(tree);
  bounds = Node.makePrecise(bounds);
  assertEquals(expectedBounds, bounds);
}

代码示例来源:origin: locationtech/geogig

private void checkTreeBounds(int size) {
  RevTreeBuilder b = createBuiler();
  List<Node> nodes = createNodes(size);
  Envelope expectedBounds = new Envelope();
  for (Node n : nodes) {
    b.put(n);
    n.expand(expectedBounds);
  }
  expectedBounds = RevObjects.makePrecise(expectedBounds);
  RevTree tree = b.build();
  assertEquals(size, tree.size());
  Envelope bounds = SpatialOps.boundsOf(tree);
  bounds = RevObjects.makePrecise(bounds);
  assertEquals(expectedBounds, bounds);
}

相关文章