As per the Javadoc for the QuadEdgeSubdivision.getVoronoiCellPolygon [1],
the original site Coordinate is returned as the userData of the cell
polygons. So you should be able to use a simple Hashmap to look up the
polygon for a site.
If that doesn't work, let me know...
[1]
http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/triangulate/quadedge/QuadEdgeSubdivision.html#getVoronoiCellPolygon(com.vividsolutions.jts.triangulate.quadedge.QuadEdge,
com.vividsolutions.jts.geom.GeometryFactory)
On Tue, Nov 19, 2013 at 3:17 PM, Dutrow, Daniel A. <[email protected]
> wrote:
> I have a data structure which is basically a list of records that contain
> coordinates and labeling/coloring data. I would like to convert these
> records to a FeaturedGeometry object which contains the Thiessen polygon
> and labeling/coloring data.
>
>
>
> Consider these classes (simplified for the purpose of this demonstration).
>
>
>
> public class Record {
>
> String label;
>
> Coordinate coordinate;
>
> int color;
>
> }
>
>
>
> public class FeaturedGeometry{
>
> String label;
>
> Geometry geometry;
>
> int color;
>
> }
>
>
>
> To produce that Voronoi diagram, I loop through all records and add the
> Coordinate to a list of points.
>
>
>
> List<Coordinate> points = *new* ArrayList<Coordinate>(listRecords.size());
>
> *for* (Record record : listRecords) {
>
> points.add(record.coordinate);
>
> //label???
>
> //color???
>
> }
>
>
>
> DelaunayTriangulationBuilder builder = *new*DelaunayTriangulationBuilder();
>
> builder.setTolerance(0.001);
>
> builder.setSites(points);
>
> List<Geometry> subdivisions =
> builder.getSubdivision().getVoronoiCellPolygons(geometryFactory);
>
>
>
> *for* (Geometry polygon : subdivisions) {
>
> FeaturedGeometry f = new FeaturedGeometry();
>
> f.geometry = polygon;
>
> f.label = “???”;
>
> f.color = 0;
>
>
>
> }
>
>
>
> What is the best way to associate the geometry with the original point? I
> would hate to have to check every combination of Record and subdivision
> Geometry to test for intersection. Is there any chance I could use the
> “setUserData” method to import and export the metadata?
>
>
>
> Thanks,
> Dan
>
>
> ------------------------------------------------------------------------------
> Shape the Mobile Experience: Free Subscription
> Software experts and developers: Be at the forefront of tech innovation.
> Intel(R) Software Adrenaline delivers strategic insight and game-changing
> conversations that shape the rapidly evolving mobile landscape. Sign up
> now.
> http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
> _______________________________________________
> Jts-topo-suite-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jts-topo-suite-user
>
>
------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing
conversations that shape the rapidly evolving mobile landscape. Sign up now.
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Jts-topo-suite-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jts-topo-suite-user