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

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

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

GeometryFactory.createMultiLineString介绍

[英]Creates a MultiLineString using the given LineStrings; a null or empty array will create an empty MultiLineString.
[中]使用给定的线字符串创建多行线;空数组或空数组将创建空的多重字符串。

代码示例

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

return geoms.size() == 1 ? geoms.get(0) : geomFactory.createMultiLineString(geoms.toArray(new LineString[geoms.size()]));

代码示例来源:origin: opentripplanner/OpenTripPlanner

edges[k++] = ls;
  LOG.debug("create multilinestring from {} geoms", edges.length);
  mls = gf.createMultiLineString(edges);
  LOG.debug("write geom");
  geometryJSON.write(mls, sw);
  k++;
Geometry mls = gf.createMultiLineString(edges);
LOG.debug("write debug geom");
geometryJSON.write(mls, sw);

代码示例来源:origin: opentripplanner/OpenTripPlanner

jtsLineStrings[i++] = (LineString) convertGeoJsonToJtsGeometry(geoJsonLineString);
return gf.createMultiLineString(jtsLineStrings);

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

public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
    // one child, either a coord
    // or a coordinate sequence
    
    if(arg.children.size()<1)
      throw new SAXException("Cannot create a multi-linestring without atleast one linestring");
    int srid = getSrid(arg.attrs,gf.getSRID());
    
    LineString[] lns = (LineString[]) arg.children.toArray(new LineString[arg.children.size()]);
    
    MultiLineString mp = gf.createMultiLineString(lns);
    
    if(mp.getSRID()!=srid)
      mp.setSRID(srid);
    
    return mp;
  }
});

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

/**
 *  Creates a <code>MultiLineString</code> using the next token in the stream.
 *
 *@param  tokenizer        tokenizer over a stream of text in Well-known Text
 *      format. The next tokens must form a &lt;MultiLineString Text&gt;.
 *@return                  a <code>MultiLineString</code> specified by the
 *      next token in the stream
 *@throws  IOException     if an I/O error occurs
 *@throws  ParseException  if an unexpected token was encountered
 */
private com.vividsolutions.jts.geom.MultiLineString readMultiLineStringText() throws IOException, ParseException {
 String nextToken = getNextEmptyOrOpener();
 if (nextToken.equals(EMPTY)) {
  return geometryFactory.createMultiLineString(new LineString[]{});
 }
 ArrayList lineStrings = new ArrayList();
 LineString lineString = readLineStringText();
 lineStrings.add(lineString);
 nextToken = getNextCloserOrComma();
 while (nextToken.equals(COMMA)) {
  lineString = readLineStringText();
  lineStrings.add(lineString);
  nextToken = getNextCloserOrComma();
 }
 LineString[] array = new LineString[lineStrings.size()];
 return geometryFactory.createMultiLineString((LineString[]) lineStrings.toArray(array));
}

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

/**
 * Creates a {@link MultiLineString} in the reverse
 * order to this object.
 * Both the order of the component LineStrings
 * and the order of their coordinate sequences
 * are reversed.
 *
 * @return a {@link MultiLineString} in the reverse order
 */
public Geometry reverse()
{
 int nLines = geometries.length;
 LineString[] revLines = new LineString[nLines];
 for (int i = 0; i < geometries.length; i++) {
  revLines[nLines - 1 - i] = (LineString)geometries[i].reverse();
 }
 return getFactory().createMultiLineString(revLines);
}

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

/**
 * Computes the boundary of this geometry
 *
 * @return a lineal geometry (which may be empty)
 * @see Geometry#getBoundary
 */
public Geometry getBoundary() {
 if (isEmpty()) {
  return getFactory().createMultiLineString(null);
 }
 ArrayList allRings = new ArrayList();
 for (int i = 0; i < geometries.length; i++) {
  Polygon polygon = (Polygon) geometries[i];
  Geometry rings = polygon.getBoundary();
  for (int j = 0; j < rings.getNumGeometries(); j++) {
   allRings.add(rings.getGeometryN(j));
  }
 }
 LineString[] allRingsArray = new LineString[allRings.size()];
 return getFactory().createMultiLineString((LineString[]) allRings.toArray(allRingsArray));
}

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

private MultiLineString readMultiLineString() throws IOException, ParseException
{
 int numGeom = dis.readInt();
 LineString[] geoms = new LineString[numGeom];
 for (int i = 0; i < numGeom; i++) {
  Geometry g = readGeometry();
  if (! (g instanceof LineString))
   throw new ParseException(INVALID_GEOM_TYPE_MSG + "MultiLineString");
  geoms[i] = (LineString) g;
 }
 return factory.createMultiLineString(geoms);
}

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

/**
 * Builds a geometry ({@link LineString} or {@link MultiLineString} )
 * representing the sequence.
 *
 * @param sequences a List of Lists of DirectedEdges with
 *   LineMergeEdges as their parent edges.
 * @return the sequenced geometry, or <code>null</code> if no sequence exists
 */
private Geometry buildSequencedGeometry(List sequences)
{
 List lines = new ArrayList();
 for (Iterator i1 = sequences.iterator(); i1.hasNext(); ) {
  List seq = (List) i1.next();
  for (Iterator i2 = seq.iterator(); i2.hasNext(); ) {
   DirectedEdge de = (DirectedEdge) i2.next();
   LineMergeEdge e = (LineMergeEdge) de.getEdge();
   LineString line = e.getLine();
   LineString lineToAdd = line;
   if (! de.getEdgeDirection() && ! line.isClosed())
    lineToAdd = reverse(line);
   lines.add(lineToAdd);
  }
 }
 if (lines.size() == 0)
  return factory.createMultiLineString(new LineString[0]);
 return factory.buildGeometry(lines);
}

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

/**
 * Gets the geometry for the edges in the subdivision as a {@link MultiLineString}
 * containing 2-point lines.
 * 
 * @param geomFact the GeometryFactory to use
 * @return a MultiLineString
 */
public Geometry getEdges(GeometryFactory geomFact) {
  List quadEdges = getPrimaryEdges(false);
  LineString[] edges = new LineString[quadEdges.size()];
  int i = 0;
  for (Iterator it = quadEdges.iterator(); it.hasNext();) {
    QuadEdge qe = (QuadEdge) it.next();
    edges[i++] = geomFact.createLineString(new Coordinate[] {
        qe.orig().getCoordinate(), qe.dest().getCoordinate() });
  }
  return geomFact.createMultiLineString(edges);
}

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

return factory.createMultiLineString((LineString[]) geometries.toArray(
   new LineString[] {  }));

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

/**
 * Computes the boundary of this geometry
 *
 * @return a lineal geometry (which may be empty)
 * @see Geometry#getBoundary
 */
public Geometry getBoundary() {
 if (isEmpty()) {
  return getFactory().createMultiLineString(null);
 }
 LinearRing[] rings = new LinearRing[holes.length + 1];
 rings[0] = shell;
 for (int i = 0; i < holes.length; i++) {
  rings[i + 1] = holes[i];
 }
 // create LineString or MultiLineString as appropriate
 if (rings.length <= 1)
  return getFactory().createLinearRing(rings[0].getCoordinateSequence());
 return getFactory().createMultiLineString(rings);
}

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

return createMultiLineString(toLineStringArray(geomList));

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

/**
 * Extracts linework for polygonal components.
 * 
 * @param g the geometry from which to extract
 * @return a lineal geometry containing the extracted linework
 */
private MultiLineString extractLinework(Geometry g)
{
  PolygonalLineworkExtracter extracter = new PolygonalLineworkExtracter();
  g.apply(extracter);
  List linework = extracter.getLinework();
  LineString[] lines = GeometryFactory.toLineStringArray(linework);
  return g.getFactory().createMultiLineString(lines);
}

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

/**
 * Creates a MultiLineString from a set of LineStrings
 * 
 * @param lines the component LineStrings
 * @return a MultiLineString
 */
public MultiLineString multiLineString(LineString... lines) {
  return geomFact.createMultiLineString(lines);
}

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

/**
 * Creates a multiline from the specified (<var>x</var>,<var>y</var>) coordinates.
 */
public MultiLineString lines(int[][] xy) {
  LineString[] lines = new LineString[xy.length];
  for (int i = 0; i < xy.length; i++) {
    lines[i] = line(xy[i]);
  }
  return gf.createMultiLineString(lines);
}

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

/**
 * Makes a {@link #MultiLineString} geometry using the {@link LineString} presents 
 * in the result stack.
 */
@Override
public Geometry build(int linestringtextNode) throws CQLException {
  List<Geometry> lineList = popGeometry(linestringtextNode);
  LineString[] lineStrings = lineList.toArray(new LineString[lineList.size()]) ;
  
  MultiLineString multiLineString= getGeometryFactory().createMultiLineString(lineStrings);
  return multiLineString;

}

代码示例来源:origin: org.n52.sensorweb/timeseries-io

protected MultiLineString decodeMultiLineString(JsonNode node,
    GeometryFactory fac) throws GeoJSONException {
  JsonNode coordinates = requireCoordinates(node);
  LineString[] lineStrings = new LineString[coordinates.size()];
  for (int i = 0; i < coordinates.size(); ++i) {
    JsonNode coords = coordinates.get(i);
    lineStrings[i] = fac.createLineString(decodeCoordinates(coords));
  }
  return fac.createMultiLineString(lineStrings);
}

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

private MultiLineString readMultiLineString() throws IOException, ParseException
{
 int numGeom = dis.readInt();
 LineString[] geoms = new LineString[numGeom];
 for (int i = 0; i < numGeom; i++) {
  Geometry g = readGeometry();
  if (! (g instanceof LineString))
   throw new ParseException(INVALID_GEOM_TYPE_MSG + "MultiLineString");
  geoms[i] = (LineString) g;
 }
 return factory.createMultiLineString(geoms);
}

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

protected static Geometry transformMultiLineString(CoordinateTransform ct,
                          MultiLineString multiLineString) {
  LineString[] lineString = new LineString[multiLineString.getNumGeometries()];
  for (int i = 0; i < lineString.length; ++i) {
    lineString[i] = multiLineString.getFactory()
        .createLineString(transformCoordinates(ct,
            multiLineString.getGeometryN(i).getCoordinates()));
  }
  return multiLineString.getFactory().createMultiLineString(lineString);
}

相关文章