代码如下,截取自GeoTools文档
public enum Geometries
extends Enum<Geometries>
Constants to identify JTS geometry types, reducing the need for boiler-plate code such as this...
if (Polygon.class.isAssignableFrom(myObject.getClass()) ||
MultiPolygon.class.isAssignableFrom(myObject.getClass())) {
// do polygon thing
...
} else if (LineString.class.isAssignableFrom(myObject.getClass()) ||
MultiLineString.class.isAssignableFrom(myObject.getClass())) {
// do line thing
....
} else {
// do point thing
....
}
Instead you can do this...
Geometries geomType = Geometries.get(myObject);
switch (geomType) {
case POLYGON:
case MULTIPOLYGON:
// do polygon thing
break;
case LINESTRING:
case MULTILINESTRING:
// do line thing
break;
case POINT:
case MULTIPOINT:
// do point thing
break;
default:
// e.g. unspecified Geometry, GeometryCollection
break;
}
You can also work with Class objects...
Class aClas = ...
Geometries type = Geometries.getForBinding( aClass );
本文介绍如何使用GeoTools中的Geometries枚举来简化对不同几何类型的判断过程,如Polygon、LineString和Point等,通过示例代码展示了如何避免冗长的类型检查,提高代码的可读性和维护性。
5548





