org.locationtech.jts.geom.GeometryFactory.toGeometry()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(7.1k)|赞(0)|评价(0)|浏览(339)

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

GeometryFactory.toGeometry介绍

[英]Creates a Geometry with the same extent as the given envelope. The Geometry returned is guaranteed to be valid. To provide this behaviour, the following cases occur:

If the Envelope is:

  • null : returns an empty Point
  • a point : returns a non-empty Point
  • a line : returns a two-point LineString
  • a rectangle : returns a Polygon whose points are (minx, miny), (minx, maxy), (maxx, maxy), (maxx, miny), (minx, miny).
    [中]创建与给定封套具有相同范围的几何图形。返回的几何图形保证有效。为了提供这种行为,出现以下情况:
    如果Envelope为:
    *null:返回一个空点
    *点:返回一个非空点
    *线:返回两点线字符串
    *矩形:返回点为(minx,miny)、(minx,maxy)、(maxx,maxy)、(maxx,miny)、(minx,miny)的多边形。

代码示例

代码示例来源:origin: com.h2database/h2

/**
 * Get the union.
 *
 * @param r the other geometry
 * @return the union of this geometry envelope and another geometry envelope
 */
public Value getEnvelopeUnion(ValueGeometry r) {
  GeometryFactory gf = new GeometryFactory();
  Envelope mergedEnvelope = new Envelope(getGeometryNoCopy().getEnvelopeInternal());
  mergedEnvelope.expandToInclude(r.getGeometryNoCopy().getEnvelopeInternal());
  return get(gf.toGeometry(mergedEnvelope));
}

代码示例来源:origin: geotools/geotools

/** {@inheritDoc} */
public Geometry toGeometry() {
  return geomFactory.toGeometry(envelope);
}

代码示例来源:origin: geotools/geotools

public Geometry toGeometry(Envelope envelope) {
  return delegate.toGeometry(envelope);
}

代码示例来源:origin: geotools/geotools

public DBObject toObject(Envelope envelope) {
  return toObject(geometryFactory.toGeometry(envelope));
}

代码示例来源:origin: geotools/geotools

List<Polygon> polys = new ArrayList<Polygon>(); // points that are
Geometry displayGeometry = gf.toGeometry(toEnvelope(displayArea));

代码示例来源:origin: geotools/geotools

@Override
  public void handleGranule(
      Object source,
      GridCoverage2DReader inputReader,
      SimpleFeature targetFeature,
      SimpleFeatureType targetFeatureType,
      SimpleFeature feature,
      SimpleFeatureType inputFeatureType,
      MosaicConfigurationBean mosaicConfiguration) {

    if (inputReader instanceof StructuredGridCoverage2DReader) {
      handleStructuredGranule(
          source,
          inputReader,
          targetFeature,
          targetFeatureType,
          feature,
          inputFeatureType,
          mosaicConfiguration);
    } else {
      Envelope coverageEnvelope = inputReader.getOriginalEnvelope();
      targetFeature.setAttribute(
          targetFeatureType.getGeometryDescriptor().getLocalName(),
          GEOM_FACTORY.toGeometry(new ReferencedEnvelope(coverageEnvelope)));
    }
  }
}

代码示例来源:origin: geotools/geotools

extentGeometry = (new GeometryFactory()).toGeometry(extent);

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

/**
 * This "pages" through standard geo boundaries offset by multiples of 360
 * longitudinally that intersect geom, and the intersecting results of a page
 * and the geom are shifted into the standard -180 to +180 and added to a new
 * geometry that is returned.
 */
private static Geometry cutUnwrappedGeomInto360(Geometry geom) {
 Envelope geomEnv = geom.getEnvelopeInternal();
 if (geomEnv.getMinX() >= -180 && geomEnv.getMaxX() <= 180)
  return geom;
 assert geom.isValid() : "geom";
 //TODO opt: support geom's that start at negative pages --
 // ... will avoid need to previously shift in unwrapDateline(geom).
 List<Geometry> geomList = new ArrayList<Geometry>();
 //page 0 is the standard -180 to 180 range
 for (int page = 0; true; page++) {
  double minX = -180 + page * 360;
  if (geomEnv.getMaxX() <= minX)
   break;
  Geometry rect = geom.getFactory().toGeometry(new Envelope(minX, minX + 360, -90, 90));
  assert rect.isValid() : "rect";
  Geometry pageGeom = rect.intersection(geom);//JTS is doing some hard work
  assert pageGeom.isValid() : "pageGeom";
  shiftGeomByX(pageGeom, page * -360);
  geomList.add(pageGeom);
 }
 return UnaryUnionOp.union(geomList);
}

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

if (r.getCrossesDateLine()) {
 Collection<Geometry> pair = new ArrayList<>(2);
 pair.add(geometryFactory.toGeometry(new Envelope(
     r.getMinX(), ctx.getWorldBounds().getMaxX(), r.getMinY(), r.getMaxY())));
 pair.add(geometryFactory.toGeometry(new Envelope(
     ctx.getWorldBounds().getMinX(), r.getMaxX(), r.getMinY(), r.getMaxY())));
 return geometryFactory.buildGeometry(pair);//a MultiPolygon or MultiLineString
} else {
 return geometryFactory.toGeometry(new Envelope(r.getMinX(), r.getMaxX(), r.getMinY(), r.getMaxY()));

代码示例来源:origin: geotools/geotools

feature.setAttribute(
    CoverageSlice.Attributes.GEOMETRY,
    NetCDFCRSUtilities.GEOM_FACTORY.toGeometry(
        reader.georeferencing.getBoundingBox(variableDS.getShortName())));
feature.setAttribute(CoverageSlice.Attributes.INDEX, imageIndex);

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

private PreparedGeometry getEnvelopeGeometry(GeometryFactory geomFactory) {
  if (envPrepGeom == null) {
   Geometry envGeom = geomFactory.toGeometry(env);
   envPrepGeom = PreparedGeometryFactory.prepare(envGeom);
  }
  return envPrepGeom;
 }
}

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

private static void addBounds(Boundable bnd, List bounds,
  GeometryFactory factory) {
 // don't include bounds of leaf nodes
 if (! (bnd instanceof AbstractNode)) return;
 
 Envelope env = (Envelope) bnd.getBounds();
 bounds.add(factory.toGeometry(env));
 if (bnd instanceof AbstractNode) {
  AbstractNode node = (AbstractNode) bnd;
  List children = node.getChildBoundables();
  for (Iterator i = children.iterator(); i.hasNext(); ) {
   Boundable child = (Boundable) i.next();
   addBounds(child, bounds, factory);
  }
 }
}

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

protected Geometry getBox()
{
 return JTSTestBuilder.getGeometryFactory().toGeometry(getEnvelope());
}

代码示例来源:origin: orbisgis/h2gis

@Override
  public Geometry getResult() throws SQLException {
    if(aggregatedEnvelope.isNull()) {
      return null;
    } else {
      return new GeometryFactory().toGeometry(aggregatedEnvelope);
    }
  }
}

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

private void getBoxGeom() {
 geom = new GeometryFactory().toGeometry(new Envelope(west, east, south, north));
}

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

/**
 * 
 * @see org.locationtech.jts.generator.GeometryGenerator#create()
 * 
 * @throws NoSuchElementException when all the grids have been created (@see #create())
 * @throws NullPointerException when either the Geometry Factory, or the Bounding Box are undefined.
 */
public Geometry create() {
  return geometryFactory.toGeometry(createEnv());
}
/**

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

private Geometry createAOI(Coordinate queryPt, double tolerance)
{
 Envelope env = new Envelope(queryPt);
 env.expandBy(2 * tolerance);
 return parentGeom.getFactory().toGeometry(env);
}

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

public Geometry composeGeometry(final CoordinateReferenceSystem system) {
 final Envelope bounds = new Envelope(getMinX(), getMaxX(), getMinY(), getMaxY());
 return new GeometryFactory().toGeometry(bounds);
}

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

public Geometry getGeometry()
{
  int level = recursionLevelForSize(numPts);
  LineSegment baseLine = getSquareBaseLine();
  Coordinate origin = baseLine.getCoordinate(0);
  LinearRing[] holes = getHoles(level, origin.x, origin.y, getDiameter());
  LinearRing shell = ((Polygon) geomFactory.toGeometry(getSquareExtent())).getExteriorRing();
  return geomFactory.createPolygon(
      shell, holes);
}

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

void checkExpectedEnvelopeGeometry(String wktInput, String wktEnvGeomExpected)
  throws ParseException
{
  Geometry input = reader.read(wktInput);
  Geometry envGeomExpected = reader.read(wktEnvGeomExpected);
  
  Envelope env = input.getEnvelopeInternal();
  Geometry envGeomActual = geometryFactory.toGeometry(env);
  boolean isEqual = envGeomActual.equalsNorm(envGeomExpected);
  assertTrue(isEqual);
}

相关文章