com.supermap.mapping

类 SnappedElement



  • public class SnappedElement
    extends 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

        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。
      • getSnappingMode

        @Deprecated
        public SnapMode getSnappingMode()
        已过时。 使用getSnapMode SnappedElement.getSnapMode()代替
        返回该对象是通过哪种捕捉模式来捕捉到的,即在捕捉过程中哪个捕捉方式捕捉到该对象。
        返回:
        该对象的捕捉模式。
      • 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 String toString()
        输出一个字符串,用来表达当前的被捕捉元素类对象,格式为:{GeometryID=,Layer=layerName,SnappingMode=,SnappedPoints=}。
        覆盖:
        toString 在类中 Object
        返回:
        一个表达当前被捕捉元素类对象的字符串。

Copyright © 2021–2024 SuperMap. All rights reserved.