当前位置: 首页>>代码示例>>Java>>正文


Java VoronoiDiagramBuilder.getDiagram方法代码示例

本文整理汇总了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()));
}
 
开发者ID:DataSystemsLab,项目名称:GeoSpark,代码行数:33,代码来源:VoronoiPartitioning.java

示例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;
}
 
开发者ID:gama-platform,项目名称:gama,代码行数:14,代码来源:GeometryUtils.java

示例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);
}
 
开发者ID:dr-jts,项目名称:jeql,代码行数:15,代码来源:VoronoiCommand.java

示例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]));
}
 
开发者ID:TheHortonMachine,项目名称:hortonmachine,代码行数:54,代码来源:OmsVoronoiDiagram.java


注:本文中的com.vividsolutions.jts.triangulate.VoronoiDiagramBuilder.getDiagram方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。