com.supermap.mapping
类 SnappedElement

java.lang.Object
  继承者 com.supermap.mapping.SnappedElement

public class SnappedElement
extends java.lang.Object

被捕捉元素类。

该类用于提供被捕捉元素的信息。被捕捉的对象可以是已经存在的几何对象,也可以是正在绘制的对象。

示例:
以下代码示例如何构造一个 SnappedElement 对象并输出其对应的字符串形式。

假设打开了一个工作空间 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()
          返回该元素相应的点集合。
 java.lang.String toString()
          输出一个字符串,用来表达当前的被捕捉元素类对象,格式为:{GeometryID=,Layer=layerName,SnappingMode=,SnappedPoints=}。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

SnappedElement

public SnappedElement(Layer layer,
                      int geometryID,
                      SnapMode snappingMode,
                      Point2D[] snappedPoints)
根据下列参数构造一个 SnappedElement 类的新实例:当前元素所属的图层、所对应几何对象的 ID、所采取的捕捉模式、所对应的点集合。

参数:
layer - 当前元素所属的图层。
geometryID - 当前元素所对应几何对象的 ID。
snappingMode - 当前元素所采取的捕捉模式。
snappedPoints - 当前元素所对应的点集合。
方法详细信息

getLayer

public Layer getLayer()
返回当前元素所属的图层。

返回:
当前元素所属的图层。

getGeometryID

public int getGeometryID()
返回当前元素所对应几何对象的 ID。

当绘制对象自身被捕捉时,返回-1。例如:在绘制 polyline 时,若捕捉对象为其自身的一个线段,则此时返回的 ID 为-1。

返回:
当前元素所对应几何对象的 ID。

getSnapMode

public SnapMode getSnapMode()
返回该对象是通过哪种捕捉模式来捕捉到的,即在捕捉过程中哪个捕捉方式捕捉到该对象。

返回:
该对象的捕捉模式。

getSnappedPoints

public Point2D[] getSnappedPoints()
返回该元素相应的点集合。
  1. 当捕捉模式(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;
  2. 当捕捉模式(SnapMode)为:LINE_WITH_FIXED_ANGLE,LINE_WITH_FIXED_LENGTH,LINE_WITH_PARALLEL,LINE_WITH_PERPENDICULAR 时,长度为2;
  3. 当捕捉模式(SnapMode)为:POINT_ON_LINE,POINT_ON_MIDPOINT,POINT_ON_EXTENSION 时,长度为3。

返回:
该元素相应的点集合。

toString

public java.lang.String toString()
输出一个字符串,用来表达当前的被捕捉元素类对象,格式为:{GeometryID=,Layer=layerName,SnappingMode=,SnappedPoints=}。

覆盖:
java.lang.Object 中的 toString
返回:
一个表达当前被捕捉元素类对象的字符串。