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

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

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

private Geometry crudeProjectedBuffer(Point pt, double distanceMeters) {
  final double mPerDegreeLat = 111111.111111;
  double lat = pt.getY();
  double lonScale = Math.cos(Math.PI * lat / 180);
  double latExpand = distanceMeters / mPerDegreeLat;
  double lonExpand = latExpand / lonScale;
  Envelope env = pt.getEnvelopeInternal();
  env.expandBy(lonExpand, latExpand);
  return gf.toGeometry(env);
}

代码示例来源:origin: com.vividsolutions/jts

private static Geometry clipGeometryCollection(Geometry geom, Envelope clipEnv)
  {
    Geometry clipPoly = geom.getFactory().toGeometry(clipEnv);
    List clipped = new ArrayList();
    for (int i = 0; i < geom.getNumGeometries(); i++) {
      Geometry g = geom.getGeometryN(i);
      Geometry result = null;
      // don't clip unless necessary
      if (clipEnv.contains(g.getEnvelopeInternal()))
          result = g;
      else if (clipEnv.intersects(g.getEnvelopeInternal())) {
        result = clipPoly.intersection(g);
        // keep vertex key info
        result.setUserData(g.getUserData());
      }

      if (result != null && ! result.isEmpty()) {
        clipped.add(result);
      }
    }
    return geom.getFactory().createGeometryCollection(GeometryFactory.toGeometryArray(clipped));
  }
}

代码示例来源:origin: osmandapp/Osmand

IGeometryFilter filter) {
final Geometry tileEnvelopeGeom = geomFactory.toGeometry(tileEnvelope);

代码示例来源:origin: com.vividsolutions/jts

/**
 *  Gets a Geometry representing the envelope (bounding box) of 
 *  this <code>Geometry</code>. 
 *  <p>
 *  If this <code>Geometry</code> is:
 *  <ul>
 *  <li>empty, returns an empty <code>Point</code>. 
 *  <li>a point, returns a <code>Point</code>.
 *  <li>a line parallel to an axis, a two-vertex <code>LineString</code> 
 *  <li>otherwise, returns a
 *  <code>Polygon</code> whose vertices are (minx miny, maxx miny, 
 *  maxx maxy, minx maxy, minx miny).
 *  </ul>
 *
 *@return a Geometry representing the envelope of this Geometry
 *      
 * @see GeometryFactory#toGeometry(Envelope) 
 */
public Geometry getEnvelope() {
 return getFactory().toGeometry(getEnvelopeInternal());
}

代码示例来源:origin: com.vividsolutions/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 = (LinearRing) ((Polygon) geomFactory.toGeometry(getSquareExtent())).getExteriorRing();
  return geomFactory.createPolygon(
      shell, holes);
}

代码示例来源:origin: org.opengis.cite/ets-kml2

/**
 * Builds a Polygon from the given envelope.
 * 
 * @param env
 *            A JTS envelope defining some spatial extent.
 * @return A rectangular polygon that covers the same extent as the
 *         envelope.
 */
public Polygon buildPolygon(Envelope env) {
  return (Polygon) this.geomFactory.toGeometry(env);
}

代码示例来源:origin: com.vividsolutions/jts

private void checkEnvelope()
{
  if (distance < 0.0) return;
  
  double padding = distance * MAX_ENV_DIFF_FRAC;
  if (padding == 0.0) padding = 0.001;
  Envelope expectedEnv = new Envelope(input.getEnvelopeInternal());
  expectedEnv.expandBy(distance);
  
  Envelope bufEnv = new Envelope(result.getEnvelopeInternal());
  bufEnv.expandBy(padding);
  if (! bufEnv.contains(expectedEnv)) {
    isValid = false;
    errorMsg = "Buffer envelope is incorrect";
    errorIndicator = input.getFactory().toGeometry(bufEnv);
  }
 report("Envelope");
}

代码示例来源:origin: org.orbisgis/mapeditor

private EnvelopeFilter(Envelope envelope) {
  GeometryFactory factory = new GeometryFactory();
  this.envelope = factory.toGeometry(envelope);
}

代码示例来源:origin: org.orbisgis/h2gis-functions

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

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

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

代码示例来源:origin: org.geotools/gt-shapefile-renderer

private Envelope intersectionWithNotEnvelope(Envelope bbox) {
    Geometry notGeom = factory.toGeometry(notEnvelope);
    Geometry andGeom = factory.toGeometry(bbox);
    
    Envelope envelopeInternal = andGeom.difference(notGeom).getEnvelopeInternal();
    bbox = envelopeInternal;
    return bbox;
  }
//

代码示例来源:origin: org.geotools/gt2-shapefile-renderer

private Envelope intersectionWithNotEnvelope(Envelope bbox) {
    Geometry notGeom = factory.toGeometry(notEnvelope);
    Geometry andGeom = factory.toGeometry(bbox);
    
    Envelope envelopeInternal = andGeom.difference(notGeom).getEnvelopeInternal();
    bbox = envelopeInternal;
    return bbox;
  }
//

代码示例来源:origin: com.conveyal/gtfs-lib

/**
 * The Dutch island of Texel. The Netherlands data set includes a crazy all-to-all representation of Texel's
 * on-demand transit service.
 */
public static Geometry getTexel() {
  return geometryFactory.toGeometry(new Envelope(4.702663, 4.933548, 52.98069, 53.192047));
}

代码示例来源:origin: org.n52.series-api/proxy-dao

protected SpatialFilter createSpatialFilter(Envelope envelope, int srid) {
    if (envelope == null) {
      return null;
    } else {
      Geometry geom = new GeometryFactory(new PrecisionModel(PrecisionModel.FLOATING), srid).toGeometry(envelope);
      String valueReference = Sos2Constants.VALUE_REFERENCE_SPATIAL_FILTERING_PROFILE;
      return new SpatialFilter(SpatialOperator.BBOX, JTSGeometryConverter.convert(geom), valueReference);
    }
  }
}

代码示例来源:origin: org.orbisgis/core-map

public static Geometry clipToExtent(Geometry theGeom, Envelope extent) {
    GeometryFactory geometryFactory = new GeometryFactory();

    Envelope incExtent = new Envelope(extent);

    incExtent.expandBy(extent.getWidth() / 10, extent.getHeight() / 10);

    Geometry geometry = theGeom.intersection(geometryFactory.toGeometry(extent));

    if (geometry.isEmpty()) {
      return null;
    } else {
      return geometry;
    }
  }
}

代码示例来源:origin: com.eventsourcing/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: org.wowtools/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: bcdev/beam

private Geometry getTileGeometry(int tileX, int tileY, Dimension tileSize) {
  int tileWidth = tileSize.width;
  int tileHeight = tileSize.height;
  double x1 = tileXToDegree(tileX, tileWidth);
  double x2 = tileXToDegree(tileX + 1, tileWidth);
  double y1 = tileYToDegree(tileY, tileHeight);
  double y2 = tileYToDegree(tileY + 1, tileHeight);
  return geometryFactory.toGeometry(new Envelope(x1, x2, y1, y2));
}

代码示例来源:origin: com.vividsolutions/jts-core

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 = (LinearRing) ((Polygon) geomFactory.toGeometry(getSquareExtent())).getExteriorRing();
  return geomFactory.createPolygon(
      shell, holes);
}

代码示例来源:origin: org.integratedmodelling/klab-engine

public Geometry setBounds(IGrid grid, boolean swapAxis) {
  xInterval = ((Grid)grid).getEWExtent() / width;
  yInterval = ((Grid)grid).getNSExtent() / height;
  Envelope env = swapAxis
      ? new Envelope(((Grid)grid).getSouth(), ((Grid)grid).getNorth(), ((Grid)grid).getWest(), ((Grid)grid).getEast())
      : new Envelope(((Grid)grid).getWest(), ((Grid)grid).getEast(), ((Grid)grid).getSouth(), ((Grid)grid).getNorth());
  return geoFactory.toGeometry(env);
}

相关文章