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

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

本文整理了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

  1. /**
  2. * Expands the provided {@link Envelope} to encompass the {@code Node} this object points to.
  3. *
  4. * @param env the {@link Envelope} to expand
  5. */
  6. @Override
  7. public void expand(Envelope env) {
  8. node.expand(env);
  9. }

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

  1. /**
  2. * Expands the provided {@link Envelope} to encompass the {@code Node} this object points to.
  3. *
  4. * @param env the {@link Envelope} to expand
  5. */
  6. @Override
  7. public void expand(Envelope env) {
  8. node.expand(env);
  9. }

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

  1. /**
  2. * @param oldObject
  3. * @param newObject
  4. * @return the aggregated bounding box
  5. */
  6. public static org.locationtech.jts.geom.Envelope aggregatedBounds(Node oldObject,
  7. Node newObject) {
  8. Envelope env = new Envelope();
  9. if (oldObject != null) {
  10. oldObject.expand(env);
  11. }
  12. if (newObject != null) {
  13. newObject.expand(env);
  14. }
  15. return env;
  16. }

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

  1. /**
  2. * @param oldObject
  3. * @param newObject
  4. * @return the aggregated bounding box
  5. */
  6. public static com.vividsolutions.jts.geom.Envelope aggregatedBounds(Node oldObject,
  7. Node newObject) {
  8. Envelope env = new Envelope();
  9. if (oldObject != null) {
  10. oldObject.expand(env);
  11. }
  12. if (newObject != null) {
  13. newObject.expand(env);
  14. }
  15. return env;
  16. }

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

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

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

  1. static BoundedSimpleFeature empty(SimpleFeatureType type, Node node,
  2. CoordinateReferenceSystem crs) {
  3. FeatureId fid = new FeatureIdImpl(node.getName());
  4. ReferencedEnvelope env = new ReferencedEnvelope(crs);
  5. node.expand(env);
  6. return new BoundedSimpleFeature(Collections.emptyList(), type, fid, env);
  7. }
  8. }

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

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

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

  1. public static Envelope boundsOf(@NonNull RevTree tree) {
  2. Envelope env = new Envelope();
  3. tree.forEachBucket(bucket -> bucket.expand(env));
  4. tree.forEachTree(n -> n.expand(env));
  5. tree.forEachFeature(n -> n.expand(env));
  6. return env;
  7. }

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

  1. public static Envelope boundsOf(RevTree tree) {
  2. Envelope env = new Envelope();
  3. tree.forEachBucket(bucket -> bucket.expand(env));
  4. tree.forEachTree(n -> n.expand(env));
  5. tree.forEachFeature(n -> n.expand(env));
  6. return env;
  7. }

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

  1. /**
  2. * @return a 3-elements boolean array where the first one indicates if at least one node has
  3. * bounds, the seconds if it has extradata map, and the third if it has a metadataId
  4. */
  5. private boolean[] hasBoundsOrExtraData(List<Node> nodes, Envelope buff) {
  6. boolean hasBounds = false;
  7. boolean hasExtraData = false;
  8. boolean hasMetadataId = false;
  9. final int size = nodes.size();
  10. for (int i = 0; i < size; i++) {
  11. buff.setToNull();
  12. Node node = nodes.get(i);
  13. node.expand(buff);
  14. if (!buff.isNull()) {
  15. hasBounds = true;
  16. }
  17. Map<String, Object> extraData = node.getExtraData();
  18. if (!extraData.isEmpty()) {
  19. hasExtraData = true;
  20. }
  21. if (node.getMetadataId().isPresent()) {
  22. hasMetadataId = true;
  23. }
  24. if (hasBounds && hasExtraData && hasMetadataId) {
  25. return new boolean[] { true, true, true };
  26. }
  27. }
  28. return new boolean[] { hasBounds, hasExtraData, hasMetadataId };
  29. }

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

  1. public static void writeNode(Node node, DataOutput data, Envelope envBuff) {
  2. try {
  3. data.writeUTF(node.getName());
  4. data.write(node.getObjectId().getRawValue());
  5. data.write(node.getMetadataId().or(ObjectId.NULL).getRawValue());
  6. int typeN = node.getType().value();
  7. data.writeByte(typeN);
  8. envBuff.setToNull();
  9. node.expand(envBuff);
  10. writeBoundingBox(envBuff, data);
  11. Map<String, Object> extraData = node.getExtraData();
  12. DataStreamValueSerializerV1.INSTANCE.writeMap(extraData, data);
  13. } catch (IOException e) {
  14. throw Throwables.propagate(e);
  15. }
  16. }

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

  1. public static Envelope boundsOf(RevTree tree) {
  2. Envelope env = new Envelope();
  3. tree.buckets().values().forEach((b) -> b.expand(env));
  4. tree.trees().forEach((t) -> t.expand(env));
  5. tree.features().forEach((f) -> f.expand(env));
  6. return env;
  7. }

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

  1. public static MutableTree createFromPaths(final ObjectId rootId,
  2. final Map<String, NodeRef> entries) {
  3. List<NodeRef> refsByDepth = Lists.newArrayList(entries.values());
  4. Collections.sort(refsByDepth, DEEPEST_LAST_COMPARATOR);
  5. Node rootNode = Node.create(ROOT, rootId, ObjectId.NULL, TYPE.TREE, null);
  6. MutableTree root = new MutableTree(rootNode);
  7. Envelope bounds = new Envelope();
  8. for (NodeRef entry : refsByDepth) {
  9. Node node = entry.getNode();
  10. node.expand(bounds);
  11. String parentPath = entry.getParentPath();
  12. root.setChild(parentPath, node);
  13. }
  14. // recreate root node with the appropriate bounds
  15. rootNode = Node.create(ROOT, rootId, ObjectId.NULL, TYPE.TREE, bounds);
  16. root.setNode(rootNode);
  17. return root;
  18. }

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

  1. public static void writeNode(Node node, DataOutput data, Envelope envBuff) {
  2. try {
  3. data.writeUTF(node.getName());
  4. node.getObjectId().writeTo(data);
  5. node.getMetadataId().or(ObjectId.NULL).writeTo(data);
  6. int typeN = node.getType().value();
  7. data.writeByte(typeN);
  8. envBuff.setToNull();
  9. node.expand(envBuff);
  10. writeBoundingBox(envBuff, data);
  11. Map<String, Object> extraData = node.getExtraData();
  12. DataStreamValueSerializerV1.INSTANCE.writeMap(extraData, data);
  13. } catch (IOException e) {
  14. throw new RuntimeException(e);
  15. }
  16. }

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

  1. public static MutableTree createFromPaths(final ObjectId rootId,
  2. final Map<String, NodeRef> entries) {
  3. List<NodeRef> refsByDepth = Lists.newArrayList(entries.values());
  4. Collections.sort(refsByDepth, DEEPEST_LAST_COMPARATOR);
  5. Node rootNode = RevObjectFactory.defaultInstance().createNode(ROOT, rootId, ObjectId.NULL,
  6. TYPE.TREE, null, null);
  7. MutableTree root = new MutableTree(rootNode);
  8. Envelope bounds = new Envelope();
  9. for (NodeRef entry : refsByDepth) {
  10. Node node = entry.getNode();
  11. node.expand(bounds);
  12. String parentPath = entry.getParentPath();
  13. root.setChild(parentPath, node);
  14. }
  15. // recreate root node with the appropriate bounds
  16. rootNode = RevObjectFactory.defaultInstance().createNode(ROOT, rootId, ObjectId.NULL,
  17. TYPE.TREE, bounds, null);
  18. root.setNode(rootNode);
  19. return root;
  20. }

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

  1. node.expand(env);

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

  1. @Override
  2. protected ReferencedEnvelope getBoundsInternal(Query query) throws IOException {
  3. final Filter filter = (Filter) query.getFilter().accept(new SimplifyingFilterVisitor(),
  4. null);
  5. final CoordinateReferenceSystem crs = getSchema().getCoordinateReferenceSystem();
  6. if (Filter.INCLUDE.equals(filter)) {
  7. NodeRef typeRef = getTypeRef();
  8. ReferencedEnvelope bounds = new ReferencedEnvelope(crs);
  9. typeRef.getNode().expand(bounds);
  10. return bounds;
  11. }
  12. if (Filter.EXCLUDE.equals(filter)) {
  13. return ReferencedEnvelope.create(crs);
  14. }
  15. query = new Query(query);
  16. query.setPropertyNames(Query.NO_NAMES);
  17. ReferencedEnvelope bounds = new ReferencedEnvelope(crs);
  18. try (FeatureReader<SimpleFeatureType, SimpleFeature> features = getNativeReader(query,
  19. false)) {
  20. while (features.hasNext()) {
  21. bounds.expandToInclude((ReferencedEnvelope) features.next().getBounds());
  22. }
  23. }
  24. return bounds;
  25. }

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

  1. protected @Override ReferencedEnvelope getBoundsInternal(Query query) throws IOException {
  2. final Filter filter = (Filter) query.getFilter().accept(new SimplifyingFilterVisitor(),
  3. null);
  4. final CoordinateReferenceSystem crs = getSchema().getCoordinateReferenceSystem();
  5. if (Filter.INCLUDE.equals(filter) && oldRoot == null
  6. && ChangeType.ADDED.equals(changeType())) {
  7. NodeRef typeRef = getTypeRef();
  8. ReferencedEnvelope bounds = new ReferencedEnvelope(crs);
  9. typeRef.getNode().expand(bounds);
  10. return bounds;
  11. }
  12. if (Filter.EXCLUDE.equals(filter)) {
  13. return ReferencedEnvelope.create(crs);
  14. }
  15. query = new Query(query);
  16. query.setPropertyNames(Query.NO_NAMES);
  17. ReferencedEnvelope bounds = new ReferencedEnvelope(crs);
  18. try (FeatureReader<SimpleFeatureType, SimpleFeature> features = getNativeReader(query,
  19. false)) {
  20. while (features.hasNext()) {
  21. bounds.expandToInclude((ReferencedEnvelope) features.next().getBounds());
  22. }
  23. }
  24. return bounds;
  25. }

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

  1. private void checkTreeBounds(int size) {
  2. RevTreeBuilder b = createBuiler();
  3. List<Node> nodes = createNodes(size);
  4. Envelope expectedBounds = new Envelope();
  5. for (Node n : nodes) {
  6. b.put(n);
  7. n.expand(expectedBounds);
  8. }
  9. expectedBounds = Node.makePrecise(expectedBounds);
  10. RevTree tree = b.build();
  11. assertEquals(size, tree.size());
  12. Envelope bounds = SpatialOps.boundsOf(tree);
  13. bounds = Node.makePrecise(bounds);
  14. assertEquals(expectedBounds, bounds);
  15. }

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

  1. private void checkTreeBounds(int size) {
  2. RevTreeBuilder b = createBuiler();
  3. List<Node> nodes = createNodes(size);
  4. Envelope expectedBounds = new Envelope();
  5. for (Node n : nodes) {
  6. b.put(n);
  7. n.expand(expectedBounds);
  8. }
  9. expectedBounds = RevObjects.makePrecise(expectedBounds);
  10. RevTree tree = b.build();
  11. assertEquals(size, tree.size());
  12. Envelope bounds = SpatialOps.boundsOf(tree);
  13. bounds = RevObjects.makePrecise(bounds);
  14. assertEquals(expectedBounds, bounds);
  15. }

相关文章