本文整理汇总了Java中com.vividsolutions.jts.triangulate.VoronoiDiagramBuilder.getDiagram方法的典型用法代码示例。如果您正苦于以下问题:Java VoronoiDiagramBuilder.getDiagram方法的具体用法?Java VoronoiDiagramBuilder.getDiagram怎么用?Java VoronoiDiagramBuilder.getDiagram使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.vividsolutions.jts.triangulate.VoronoiDiagramBuilder
的用法示例。
在下文中一共展示了VoronoiDiagramBuilder.getDiagram方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: VoronoiPartitioning
import com.vividsolutions.jts.triangulate.VoronoiDiagramBuilder; //导入方法依赖的package包/类
/**
* Instantiates a new voronoi partitioning.
*
* @param samples the sample list
* @param partitions the partitions
* @throws Exception the exception
*/
public VoronoiPartitioning(List<Envelope> samples, int partitions) throws Exception
{
GeometryFactory fact = new GeometryFactory();
ArrayList<Point> subSampleList=new ArrayList<Point>();
MultiPoint mp;
//Take a subsample accoring to the partitions
for(int i=0;i<samples.size();i=i+samples.size()/partitions)
{
Envelope envelope = samples.get(i);
Coordinate coordinate = new Coordinate((envelope.getMinX()+envelope.getMaxX())/2.0,(envelope.getMinY()+envelope.getMaxY())/2.0);
subSampleList.add(fact.createPoint(coordinate));
}
mp=fact.createMultiPoint(subSampleList.toArray(new Point[subSampleList.size()]));
VoronoiDiagramBuilder voronoiBuilder = new VoronoiDiagramBuilder();
voronoiBuilder.setSites(mp);
Geometry voronoiDiagram=voronoiBuilder.getDiagram(fact);
for(int i=0;i<voronoiDiagram.getNumGeometries();i++)
{
Polygon poly=(Polygon)voronoiDiagram.getGeometryN(i);
grids.add(poly.getEnvelopeInternal());
}
//grids.add(new EnvelopeWithGrid(boundary,grids.size()));
}
示例2: voronoi
import com.vividsolutions.jts.triangulate.VoronoiDiagramBuilder; //导入方法依赖的package包/类
public static IList<IShape> voronoi(final IScope scope, final IList<GamaPoint> points) {
final IList<IShape> geoms = GamaListFactory.create(Types.GEOMETRY);
final VoronoiDiagramBuilder dtb = new VoronoiDiagramBuilder();
dtb.setClipEnvelope(scope.getSimulation().getEnvelope());
dtb.setSites(points);
final GeometryCollection g = (GeometryCollection) dtb.getDiagram(GEOMETRY_FACTORY);
final int nb = g.getNumGeometries();
for (int i = 0; i < nb; i++) {
final Geometry gg = g.getGeometryN(i);
geoms.add(new GamaShape(gg));
}
return geoms;
}
示例3: execute
import com.vividsolutions.jts.triangulate.VoronoiDiagramBuilder; //导入方法依赖的package包/类
public void execute(Scope scope)
throws Exception
{
int geomIndex = SchemaUtil.getColumnWithType(input.getRows().getSchema(), Geometry.class);
//TODO: handle no geometry case (return empty table)
List pts = extractCoordinates(input.getRows().iterator(), geomIndex);
VoronoiDiagramBuilder voronoiBuilder = new VoronoiDiagramBuilder();
voronoiBuilder.setSites(pts);
Geometry voronoi = voronoiBuilder.getDiagram(GeomFunction.geomFactory);
List polys = toListOfGeometry(voronoi);
result = createGeometryTable(polys);
}
示例4: process
import com.vividsolutions.jts.triangulate.VoronoiDiagramBuilder; //导入方法依赖的package包/类
@Execute
public void process() throws Exception {
checkNull(inMap);
if (!EGeometryType.isPoint(inMap.getSchema().getGeometryDescriptor())) {
throw new ModelsIllegalargumentException("The input geometry needs to be points.", this, pm);
}
if (fElev != null) {
fElev = FeatureUtilities.findAttributeName(inMap.getSchema(), fElev);
if (fElev == null) {
throw new ModelsIllegalargumentException("Couldn't find field: " + fElev, this);
}
}
CoordinateReferenceSystem crs = inMap.getBounds().getCoordinateReferenceSystem();
List<SimpleFeature> fList = FeatureUtilities.featureCollectionToList(inMap);
pm.beginTask("Processing...", fList.size());
VoronoiDiagramBuilder b = new VoronoiDiagramBuilder();
List<Coordinate> cList = new ArrayList<Coordinate>();
for( SimpleFeature f : fList ) {
Geometry geometry = (Geometry) f.getDefaultGeometry();
double elev = 0.0;
if (fElev != null)
elev = (Double) f.getAttribute(fElev);
Coordinate c = geometry.getCoordinate();
c.z = elev;
cList.add(c);
pm.worked(1);
}
pm.done();
b.setSites(cList);
List<Geometry> geosList = new ArrayList<Geometry>();
Geometry diagram = b.getDiagram(gf);
for( int i = 0; i < diagram.getNumGeometries(); i++ ) {
Geometry geometryN = diagram.getGeometryN(i);
Coordinate[] coordinates = geometryN.getCoordinates();
double min = Double.POSITIVE_INFINITY;
double max = Double.NEGATIVE_INFINITY;
for( Coordinate coordinate : coordinates ) {
min = Math.min(min, coordinate.z);
max = Math.max(max, coordinate.z);
}
geometryN.setUserData(new String[]{"" + min, "" + max});
geosList.add(geometryN);
}
outMap = FeatureUtilities.featureCollectionFromGeometry(crs, geosList.toArray(new Geometry[0]));
}