本文整理匯總了Java中com.vividsolutions.jts.geom.Geometry.getCentroid方法的典型用法代碼示例。如果您正苦於以下問題:Java Geometry.getCentroid方法的具體用法?Java Geometry.getCentroid怎麽用?Java Geometry.getCentroid使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類com.vividsolutions.jts.geom.Geometry
的用法示例。
在下文中一共展示了Geometry.getCentroid方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: clusterizeGeometry
import com.vividsolutions.jts.geom.Geometry; //導入方法依賴的package包/類
private static Geometry clusterizeGeometry(final Geometry geometry,
final double distance_ratio)
{
if (geometry == null)
{
return null;
}
int number_geometries = geometry.getNumGeometries();
if (number_geometries > 1)
{
Geometry [] clustered_geometries =
new Geometry [number_geometries];
for (int igeom=0; igeom<number_geometries-1; igeom++)
{
Geometry current_geometry = geometry.getGeometryN(igeom);
Point current_centroid = current_geometry.getCentroid();
if ((current_geometry == null) ||
(current_centroid == null))
{
// TODO Warning
continue;
}
ArrayList<Geometry> current_cluster = new ArrayList<Geometry>();
current_cluster.add(current_geometry);
for (int jgeom=igeom+1; jgeom<number_geometries; jgeom++)
{
Geometry next_geometry = geometry.getGeometryN(jgeom);
Point next_centroid = next_geometry.getCentroid();
if ((next_geometry == null) ||
(next_centroid == null))
{
// TODO Warning
continue;
}
double distance = current_geometry.distance(next_geometry);
double centroids_distance =
current_centroid.distance(next_centroid);
if (distance < (centroids_distance * distance_ratio))
{
current_cluster.add(next_geometry);
}
}
Geometry [] current_cluster_array =
new Geometry [current_cluster.size()];
clustered_geometries[igeom] =
geometry.getFactory().createGeometryCollection(
current_cluster.toArray(current_cluster_array));
}
clustered_geometries[number_geometries-1] =
geometry.getGeometryN(number_geometries-1);
return convexHullOneLevel(
geometry.getFactory().createGeometryCollection(
clustered_geometries)).union();
}
else
{
return geometry;
}
}
示例2: geometry
import com.vividsolutions.jts.geom.Geometry; //導入方法依賴的package包/類
@Override
public void geometry(Geometry arg0) {
if (arg0 == null || arg0.getArea() < 80)
return;
// TODO Auto-generated method stub
if (count != 0) {
System.out.println(arg0.getGeometryType());
try {
Point cen = arg0.getCentroid();
Coordinate latLong = new Coordinate();
JTS.transform(cen.getCoordinate(), latLong, transform);
System.out.println(" ************************* " + count + " " + featureName);
System.out.println("in EPSG:27700 " + cen);
System.out.println("lat long " + latLong);
URL url = new URL("https://maps.googleapis.com/maps/api/staticmap?center="+latLong.x+","+latLong.y+"&zoom=20&size=640x640&maptype=satellite&format=png32&key=AIzaSyDYAQH5nMlF0vEfdIg0seTiGUIcRbLNeI4");
URLConnection connection = url.openConnection();
InputStream is = connection.getInputStream();
//
BufferedImage image = ImageIO.read(is);// new BufferedImage( 640,640, BufferedImage.TYPE_3BYTE_BGR );
// BufferedImage image = new BufferedImage( 640,640, BufferedImage.TYPE_3BYTE_BGR );
Graphics2D g2 = (Graphics2D) image.getGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
double scale = 11f;
int imageCenX = image.getWidth () >> 1,
imageCenY = image.getHeight() >> 1;
g2.setColor(Color.red);
g2.setStroke(new BasicStroke(2f));
for (Pair<Coordinate, Coordinate> pair : new ConsecutivePairs<Coordinate>( Arrays.asList( arg0.getCoordinates() ), true)) {
double
x1 = pair.first().x - cen.getCoordinate().x,
y1 = pair.first().y - cen.getCoordinate().y,
x2 = pair.second().x - cen.getCoordinate().x,
y2 = pair.second().y - cen.getCoordinate().y;
x1 *= scale; x2 *= scale; y1 *= scale; y2 *= scale;
g2.draw( new Line2D.Double(x1 + imageCenX, - y1 + imageCenY, x2 + imageCenX, - y2 +imageCenY) );
}
g2.drawString( HeightsToRedis.getHeight(featureName) +"m below roof", 5, 15 );
g2.drawString( HeightsToRedis.getRoof(featureName) +"m including roof", 5, 30 );
g2.drawString( latLong.x + ", " + latLong.y + " location ", 5, 45 );
g2.dispose();
ImageIO.write(image, "png", new FileOutputStream ( String.format( "/home/twak/data/footprints/center%04d.png", count )) );
is.close();
if (count > 1000)
System.exit(0);
} catch (Throwable e) {
e.printStackTrace();
System.exit(0);
}
}
count++;
featureName = "?";
}