public class SnappedElement extends Object
该类用于提供被捕捉元素的信息。被捕捉的对象可以是已经存在的几何对象,也可以是正在绘制的对象。
假设打开了一个工作空间 workspace
对象,工作空间中存在一幅地图。
public void snappedElementTest() { // 返回地图集合 Maps maps = workspace.getMaps(); // 返回地图中的第一幅地图,假设此地图中含有面数据集 String mapName = maps.get(0); Map map = new Map(workspace); map.open(mapName); // 返回地图中的第一个含面数据集的图层 Layer layer = null; for (int i = 0; i < map.getLayers().getCount(); i++) { layer = map.getLayers().get(i); if (layer.getDataset().getType() == DatasetType.REGION) { break; } } // 得到图层对应的数据集 DatasetVector dataset = (DatasetVector) layer.getDataset(); // 查询得到数据集中 SmID=10 的记录并得到其对应的几何对象 Recordset recordset = dataset.query("SmID=10", CursorType.STATIC); Geometry geometry = recordset.getGeometry(); // 返回几何对象的 ID 号并构造一个 Point2D[] 数组对象 int geometryID = geometry.getID(); Point2D[] point2Ds = new Point2D[] {new Point2D(50, 50), new Point2D(150, 150)}; // 构造 SnappedElement 对象并输出其对应的字符串形式 SnappedElement snappedElement = new SnappedElement(layer, geometryID, SnapMode.POINT_ON_ENDPOINT, point2Ds); System.out.println(snappedElement.toString()); // 释放资源 recordset.dispose(); workspaceConnectionInfo.dispose(); workspace.dispose(); }
构造器和说明 |
---|
SnappedElement(Layer layer,
int geometryID,
SnapMode snappingMode,
Point2D[] snappedPoints)
根据下列参数构造一个
SnappedElement 类的新实例:当前元素所属的图层、所对应几何对象的 ID、所采取的捕捉模式、所对应的点集合。 |
限定符和类型 | 方法和说明 |
---|---|
int |
getGeometryID()
返回当前元素所对应几何对象的 ID。
|
Layer |
getLayer()
返回当前元素所属的图层。
|
SnapMode |
getSnapMode()
返回该对象是通过哪种捕捉模式来捕捉到的,即在捕捉过程中哪个捕捉方式捕捉到该对象。
|
Point2D[] |
getSnappedPoints()
返回该元素相应的点集合。
|
SnapMode |
getSnappingMode()
已过时。
使用getSnapMode
SnappedElement.getSnapMode() 代替 |
String |
toString()
输出一个字符串,用来表达当前的被捕捉元素类对象,格式为:{GeometryID=,Layer=layerName,SnappingMode=,SnappedPoints=}。
|
public SnappedElement(Layer layer, int geometryID, SnapMode snappingMode, Point2D[] snappedPoints)
SnappedElement
类的新实例:当前元素所属的图层、所对应几何对象的 ID、所采取的捕捉模式、所对应的点集合。layer
- 当前元素所属的图层。geometryID
- 当前元素所对应几何对象的 ID。snappingMode
- 当前元素所采取的捕捉模式。snappedPoints
- 当前元素所对应的点集合。public Layer getLayer()
public int getGeometryID()
当绘制对象自身被捕捉时,返回-1。例如:在绘制 polyline 时,若捕捉对象为其自身的一个线段,则此时返回的 ID 为-1。
@Deprecated public SnapMode getSnappingMode()
SnappedElement.getSnapMode()
代替public SnapMode getSnapMode()
public Point2D[] getSnappedPoints()
SnapMode
)为:POINT_ON_POINT,POINT_ON_ENDPOINT,POINT_WITH_HORIZONTAL_OR_VERTICAL,LINE_WITH_HORIZONTAL_OR_VERTICAL,LINE_WITH_INTERSECTION,POINT_ON_RASTER_MIDDLE,POINT_ON_RASTER_EDGE 时,该方法返回的数组长度为1;SnapMode
)为:LINE_WITH_FIXED_ANGLE,LINE_WITH_FIXED_LENGTH,LINE_WITH_PARALLEL,LINE_WITH_PERPENDICULAR 时,长度为2;SnapMode
)为:POINT_ON_LINE,POINT_ON_MIDPOINT,POINT_ON_EXTENSION 时,长度为3。Copyright © 2021–2024 SuperMap. All rights reserved.