com.supermap.mapping
类 SnapSetting

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

public class SnapSetting
extends java.lang.Object

捕捉设置类。

地图捕捉可以将节点精确捕捉到与其呈特定空间关系且在捕捉容限内的对象上。地图捕捉多用在栅格矢量化、矢量图层编辑等。设置合理的捕捉容限,可以消除悬线、断线等数字化以及图形编辑过程中容易产生的错误。

注意:捕捉模式的优先级由捕捉模式在该对象中的先后顺序来决定,即,捕捉模式的 ID 值,ID 值越小优先级越高。


构造方法摘要
SnapSetting()
          构造一个捕捉设置类的新对象。
SnapSetting(SnapSetting setting)
          根据指定的捕捉设置对象构造一个与其相同的新对象。
 
方法摘要
 void dispose()
          释放该对象所占用的资源。
 boolean exchange(int index1, int index2)
          交换两个指定索引处的捕捉模式的先后顺序。
 boolean exchange(SnapMode mode1, SnapMode mode2)
          交换两个指定的捕捉模式的先后顺序。
 boolean get(SnapMode mode)
          返回指定的捕捉模式是否有效。
 SnapMode getAt(int index)
          返回指定索引值的捕捉模式。
 double getFixedAngle()
          返回按固定角度画线时的角度,默认为 90 度。
 double getFixedLength()
          返回按固定长度画线时的长度,单位为地图单位,默认为 1000。
 int getMaxSnappedCount()
          返回一个可捕捉图层内,最多可以捕捉的对象数。
 int getMinSnappedLength()
          返回捕捉线的最小长度,当线性图素的长度小于该值时,不再捕捉,单位是像素。
 int getTolerance()
          返回捕捉时光标定位点的容限,单位是像素。
 int indexOf(SnapMode mode)
          返回指定模式的索引值。
 boolean isEnable()
          返回捕捉是否可用,true表示开启捕捉,false表示关闭捕捉功能。
 boolean isSnappedLineBroken()
          返回是否打断被捕捉的线。
 boolean moveTo(SnapMode mode, int targetIndex)
          移动指定的捕捉模式到指定的索引处。
 void set(SnapMode mode, boolean value)
          设置指定的捕捉模式是否有效。
 void setEnable(boolean value)
          设置捕捉是否可用,true表示开启捕捉,false表示关闭捕捉功能。
 void setFixedAngle(double value)
          设置按固定角度画线时的角度,默认为 90 度。
 void setFixedLength(double value)
          设置按固定长度画线时的长度,单位为地图单位,默认为 1000。
 void setMaxSnappedCount(int value)
          设置一个可捕捉图层内,最多可以捕捉的对象数。
 void setMinSnappedLength(int value)
          设置捕捉线的最小长度,当线性图素的长度小于该值时,不再捕捉,单位是像素。
 void setSnappedLineBroken(boolean value)
          设置是否打断被捕捉的线。
 void setTolerance(int value)
          设置捕捉时光标定位点的容限,单位是像素。
 java.lang.String toString()
          输出一个字符串来表示当前的捕捉设置类对象。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

SnapSetting

public SnapSetting()
构造一个捕捉设置类的新对象。


SnapSetting

public SnapSetting(SnapSetting setting)
根据指定的捕捉设置对象构造一个与其相同的新对象。

参数:
setting - 指定的捕捉设置对象。
方法详细信息

getTolerance

public int getTolerance()
返回捕捉时光标定位点的容限,单位是像素。

返回:
捕捉时光标定位点的容限。

setTolerance

public void setTolerance(int value)
设置捕捉时光标定位点的容限,单位是像素。

参数:
value - 捕捉时光标定位点的容限。

getMinSnappedLength

public int getMinSnappedLength()
返回捕捉线的最小长度,当线性图素的长度小于该值时,不再捕捉,单位是像素。

返回:
捕捉线的最小长度。

setMinSnappedLength

public void setMinSnappedLength(int value)
设置捕捉线的最小长度,当线性图素的长度小于该值时,不再捕捉,单位是像素。

参数:
value - 捕捉线的最小长度。

getFixedAngle

public double getFixedAngle()
返回按固定角度画线时的角度,默认为 90 度。

返回:
按固定角度画线时的角度。
默认值:
默认为 90 度。

setFixedAngle

public void setFixedAngle(double value)
设置按固定角度画线时的角度,默认为 90 度。

参数:
value - 按固定角度画线时的角度。

getFixedLength

public double getFixedLength()
返回按固定长度画线时的长度,单位为地图单位,默认为 1000。

返回:
按固定长度画线时的长度。
默认值:
默认为 1000。

setFixedLength

public void setFixedLength(double value)
设置按固定长度画线时的长度,单位为地图单位,默认为 1000。

参数:
value - 按固定长度画线时的长度。

getMaxSnappedCount

public int getMaxSnappedCount()
返回一个可捕捉图层内,最多可以捕捉的对象数。缺省为 500 个。 如果可捕捉图层在当前地图窗口范围内的对象数目超过这个最大对象数,就不捕捉该图层对象。

返回:
一个可捕捉图层内最多可以捕捉的对象数。
默认值:
默认值为 500 个。

setMaxSnappedCount

public void setMaxSnappedCount(int value)
设置一个可捕捉图层内,最多可以捕捉的对象数。缺省为 500 个。 如果可捕捉图层在当前地图窗口范围内的对象数目超过这个最大对象数,就不捕捉该图层对象。

参数:
value - 可捕捉图层内最多可以捕捉的对象数。

isSnappedLineBroken

public boolean isSnappedLineBroken()
返回是否打断被捕捉的线。

返回:
一个布尔值,若为 true,表示打断被捕捉的线;否则,返回 false。

setSnappedLineBroken

public void setSnappedLineBroken(boolean value)
设置是否打断被捕捉的线。

参数:
value - 返回一个布尔值,用于指定是否打断被捕捉的线。

get

public boolean get(SnapMode mode)
返回指定的捕捉模式是否有效。

参数:
mode - 指定的捕捉模式。
返回:
一个布尔值,若为 true,表示指定的捕捉模式有效;否则返回 false。

set

public void set(SnapMode mode,
                boolean value)
设置指定的捕捉模式是否有效。

参数:
mode - 指定的捕捉模式。
value - 返回一个布尔值,用于指定该捕捉模式是否有效。

indexOf

public int indexOf(SnapMode mode)
返回指定模式的索引值。

参数:
mode - 指定的捕捉模式。
返回:
指定模式的索引值。
示例:
请参见 SnapSetting.exchange(int,int) 方法的示例。

getAt

public SnapMode getAt(int index)
返回指定索引值的捕捉模式。

参数:
index - 指定的索引值。
返回:
指定索引值所处的捕捉模式。
示例:
下列示范返回指定索引值的捕捉模式。
 public void getATTest() {

        // 实例化一个捕捉设置类对象 setting,并进行相应设置
        SnapSetting setting = new SnapSetting();
        setting.setFixedLength(3000.0);
        setting.setTolerance(20);
        setting.setFixedAngle(360);
        setting.setSnappedLineBroken(true);
        setting.setMaxSnappedCount(520);
        setting.setMinSnappedLength(22);
        setting.set(SnapMode.POINT_ON_LINE, true);

        // 返回给定索引值的捕捉模式
        int index = 0;
        SnapMode actual = setting.getAt(index);
    }
 

exchange

public boolean exchange(SnapMode mode1,
                        SnapMode mode2)
交换两个指定的捕捉模式的先后顺序。

参数:
mode1 - 指定的一个待交换位置的捕捉模式。
mode2 - 指定的另一个待交换位置的捕捉模式。
返回:
成功交换位置返回 true;否则返回 false。
示例:
请参见 SnapSetting.exchange(int,int) 方法的示例。

exchange

public boolean exchange(int index1,
                        int index2)
交换两个指定索引处的捕捉模式的先后顺序。

参数:
index1 - 指定的一个待交换位置的捕捉模式的索引值。
index2 - 指定的另一个待交换位置的捕捉模式的索引值。
返回:
成功交换位置返回 true;否则返回 false。
示例:
以下代码示范了如何交换两个指定索引处的捕捉模式的先后顺序以及如何交互两个指定的捕捉模式的先后顺序。
 public void exchangeTest() {
        // 实例化一个捕捉设置类对象 setting,并进行相应设置
        SnapSetting setting = new SnapSetting();
        setting.setFixedLength(3000.0);
        setting.setTolerance(20);
        setting.setFixedAngle(360);
        setting.setSnappedLineBroken(true);
        setting.setMaxSnappedCount(520);
        setting.setMinSnappedLength(22);

        // 返回指定捕捉模式的索引值
        int index1 = setting.indexOf(SnapMode.POINT_ON_POINT);
        int index2 = setting.indexOf(SnapMode.LINE_WITH_FIXED_ANGLE);

        // 交换两个指定索引处的捕捉模式的先后顺序
        setting.exchange(index1, index2);

        //==================== 以下代码是交换指定捕捉模式的先后顺序
        // 指定捕捉模式
        SnapMode mode1 = SnapMode.LINE_WITH_FIXED_ANGLE;
        SnapMode mode2 = SnapMode.POINT_ON_LINE;

        // 交互两个指定的捕捉模式的先后顺序
        setting.exchange(mode1, mode2);
    }
 

moveTo

public boolean moveTo(SnapMode mode,
                      int targetIndex)
移动指定的捕捉模式到指定的索引处。

参数:
mode - 指定的捕捉模式。
targetIndex - 指定的索引值。
返回:
移动成功返回 true;否则返回 false。
示例:
以下代码示范了如何移动指定的捕捉模式到指定的索引处。
 public void moveToTest() {
        // 实例化一个捕捉设置类对象setting
        SnapSetting setting = new SnapSetting();

        // 指定捕捉模式
        SnapMode mode = SnapMode.POINT_ON_ENDPOINT;

        // 指定索引值
        int targetIndex = 5;

        // 移动捕捉模式到指定的索引处
        setting.moveTo(mode, targetIndex);
    }
 

toString

public java.lang.String toString()
输出一个字符串来表示当前的捕捉设置类对象。格式如下:{ FixedAngle=,FixedLength=,IsSnapedLineBroen=,MaxSnappedCount=,MinLength=,Tolerance= ,EnableSnapModes=,}。

覆盖:
java.lang.Object 中的 toString
返回:
一个描述当前捕捉设置类对象的字符串。

dispose

public void dispose()
释放该对象所占用的资源。当调用该方法之后,此对象不再可用。


isEnable

public boolean isEnable()
返回捕捉是否可用,true表示开启捕捉,false表示关闭捕捉功能。

返回:
一个布尔值,指示捕捉是否可用,true表示开启捕捉,false表示关闭捕捉功能。

setEnable

public void setEnable(boolean value)
设置捕捉是否可用,true表示开启捕捉,false表示关闭捕捉功能。

参数:
value - 一个布尔值,指示捕捉是否可用,true表示开启捕捉,false表示关闭捕捉功能。