com.supermap.mapping
类 MapOverlapDisplayedOptions

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

public class MapOverlapDisplayedOptions
extends java.lang.Object

地图压盖过滤显示选项类,在文本或专题图元素显示较密集的区域,文本之间或专题元素之间会发生相互压盖的现象,该类可以分别控制各种类型的对象的压盖显示情况,进而很好地处理地图中各种类型对象的压盖显示问题。

示例:
以下代码示范如何运用该类处理地图中各种类型对象的压盖显示问题。
 public void MapOverlapDisplayedOptionsTest(){

        // 打开工作空间 
        String path = "../world";
        Workspace workspace = new Workspace();
        WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(path + "/world.sxw");
        workspace.open(workspaceConnectionInfo);

        //获取数据源,获取给定的数据集
        Datasource datasource = workspace.getDatasources().get("world");
        DatasetVector dataset = (DatasetVector) datasource.getDatasets().get("Capital");

        MapControl m_mapcontrol = new MapControl(workspace);
        Map map = m_mapcontrol.getMap();

        //添加数据集Capital到地图中
        map.getLayers().add(dataset, true);

        //设置重叠时不显示对象
        map.setOverlapDisplayed(false);

        //构造地图压盖过滤显示选项类 
        MapOverlapDisplayedOptions mapOverlapDisplayedOptions = map.getOverlapDisplayedOptions();

        //设置点和点压盖时不显示压盖的点对象
        mapOverlapDisplayedOptions.setAllowPointOverlap(false);
        //设置各对象之间的压盖间距
        mapOverlapDisplayedOptions.setOverlappedSpaceSize(new Size2D(40, 40));
        //设置地图的压盖过滤显示选项
        map.setOverlapDisplayedOptions(mapOverlapDisplayedOptions);

        //释放资源
        m_mapcontrol.dispose();
        workspace.close();
        workspace.dispose();
    }

 

构造方法摘要
MapOverlapDisplayedOptions()
          构造一个新的 MapOverlapDisplayedOptions 对象。
 
方法摘要
 void dispose()
          释放对象所占用的资源。
 boolean getAllowPointOverlap()
          返回点和点压盖时是否显示压盖的点对象。
 boolean getAllowPointWithTextDisplay()
          返回标签和相应普通图层上的点是否一起过滤显示,如果过滤显示,只以图层集合中对应数据集的索引最小的图层的点风格来绘制点。
 boolean getAllowTextAndPointOverlap()
          返回文本和点压盖时是否显示压盖的文本或点对象(此属性不处理文本之间的压盖和点之间的压盖)。
 boolean getAllowTextOverlap()
          返回文本压盖时是否显示压盖的文本对象。
 boolean getAllowThemeGraduatedSymbolOverlap()
          返回等级符号元素压盖时是否显示压盖的等级符号元素。
 boolean getAllowThemeGraphOverlap()
          返回统计专题图元素压盖时是否显示压盖的统计专题图元素。
 Size2D getOverlappedSpaceSize()
          返回两个对象之间的压盖间距,为正数时表示两个对象之间的距离,为负数时表示两个对象的压盖距离。
 boolean isObliqueRectEnabled()
          是否精确计算文本对象的范围。
 void setAllowPointOverlap(boolean value)
          设置点和点压盖时是否显示压盖的点对象。
 void setAllowPointWithTextDisplay(boolean value)
          设置标签和相应普通图层上的点是否一起过滤显示,如果过滤显示,只以图层集合中对应数据集的索引最小的图层的点风格来绘制点。
 void setAllowTextAndPointOverlap(boolean value)
          设置 文本和点压盖时是否显示压盖的文本或点对象(此属性不处理文本之间的压盖和点之间的压盖)。
 void setAllowTextOverlap(boolean value)
          设置文本压盖时是否显示压盖的文本对象。
 void setAllowThemeGraduatedSymbolOverlap(boolean value)
          设置等级符号元素压盖时是否显示压盖的等级符号元素。
 void setAllowThemeGraphOverlap(boolean value)
          设置统计专题图元素压盖时是否显示压盖的统计专题图元素。
 void setObliqueRectEnabled(boolean value)
          设置是否精确计算文本对象的范围。
 void setOverlappedSpaceSize(Size2D value)
          设置两个对象之间的压盖间距,为正数时表示两个对象之间的距离,为负数时表示两个对象的压盖距离。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

MapOverlapDisplayedOptions

public MapOverlapDisplayedOptions()
构造一个新的 MapOverlapDisplayedOptions 对象。

方法详细信息

getAllowTextOverlap

public boolean getAllowTextOverlap()
返回文本压盖时是否显示压盖的文本对象。

返回:
返回false时,不显示压盖的文本对象,否则返回true。
默认值:
默认值为 false。

setAllowTextOverlap

public void setAllowTextOverlap(boolean value)
设置文本压盖时是否显示压盖的文本对象。

参数:
value - 一个布尔值,用于指定是否显示压盖的文本对象,true,表示显示压盖的文本对象;false,表示不显示压盖的文本对象。

getAllowTextAndPointOverlap

public boolean getAllowTextAndPointOverlap()
返回文本和点压盖时是否显示压盖的文本或点对象(此属性不处理文本之间的压盖和点之间的压盖)。

返回:
返回false时,不显示压盖的对象,否则返回true。
默认值:
默认值为 true。

setAllowTextAndPointOverlap

public void setAllowTextAndPointOverlap(boolean value)
设置 文本和点压盖时是否显示压盖的文本或点对象(此属性不处理文本之间的压盖和点之间的压盖)。

参数:
value - 一个布尔值,用于指定是否显示压盖的文本或点对象,true,表示显示压盖的对象;false,表示不显示压盖的对象。

getAllowPointOverlap

public boolean getAllowPointOverlap()
返回点和点压盖时是否显示压盖的点对象。

返回:
返回false时,不显示压盖的点对象,否则返回true。
默认值:
默认值为 true。

setAllowPointOverlap

public void setAllowPointOverlap(boolean value)
设置点和点压盖时是否显示压盖的点对象。

参数:
value - 一个布尔值,用于指定是否显示压盖的点对象,true,表示显示压盖的点对象;false,表示不显示压盖的点对象。

getAllowPointWithTextDisplay

public boolean getAllowPointWithTextDisplay()
返回标签和相应普通图层上的点是否一起过滤显示,如果过滤显示,只以图层集合中对应数据集的索引最小的图层的点风格来绘制点。

注意,这里的普通图层包括相应点数据集的所有普通图层和单值、分段、自定义专题图图层。

如果该方法的返回值为true时,对于点图层的标签专题图存在这样的现象,如果该标签专题图使用了过滤表达式,那么地图中该点数据集(该标签专题图基于的点数据集)对应的其他图层都将采用该标签专题图的过滤表达式进行显示;如果实际应用中不需要这样的过滤显示效果,而是需要该点数据集所对应的图层采用各自的过滤表达式,那么需要通过 setAllowPointWithTextDisplay()方法传入 false参数值。

当一个点数据集被多次添加到一幅地图中,并且设置了不同的点符号风格,且基于这些图层制作了各自风格的标签专题图,同时,各个点图层还设置了不同的过滤显示条件,基于上述情况,如果 getAllowPointWithTextDisplay 方法返回值为 true,则上述这些点图层将以其中位于最上层的点图层风格进行绘制,而这些点图层的标签专题图仍按各自设置的风格进行绘制。

返回:
标签和相应普通图层上的点一起过滤显示返回true,否则返回false。
默认值:
默认值为 true。

setAllowPointWithTextDisplay

public void setAllowPointWithTextDisplay(boolean value)
设置标签和相应普通图层上的点是否一起过滤显示,如果过滤显示,只以图层集合中对应数据集的索引最小的图层的点风格来绘制点。

注意,这里的普通图层包括相应点数据集的所有普通图层和单值、分段、自定义专题图图层。

如果 setAllowPointWithTextDisplay()方法传入 的参数值为true时,对于点图层的标签专题图存在这样的现象,如果该标签专题图使用了过滤表达式,那么地图中该点数据集(该标签专题图基于的点数据集)对应的其他图层都将采用该标签专题图的过滤表达式进行显示;如果实际应用中不需要这样的过滤显示效果,而是需要该点数据集对应的图层采用各自的过滤表达式,那么需要通过 setAllowPointWithTextDisplay()方法传入 false参数值。

当一个点数据集被多次添加到一幅地图中,并且设置了不同的点符号风格,且基于这些图层制作了各自风格的标签专题图,同时,各个点图层还设置了不同的过滤显示条件,基于上述情况,如果通过 setAllowPointWithTextDisplay() 方法设置了标签随点对象一起过滤显示(即该方法传入参数 true),则上述这些点图层将以其中位于最上层的点图层风格进行绘制,而这些点图层的标签专题图仍按各自设置的风格进行绘制。

参数:
value - 一个布尔值,用于指定标签和相应普通图层上的点是否一起过滤显示,true,表示标签和相应普通图层上的点一起过滤显示;false,表示标签和相应普通图层上的点不一起过滤显示。

getAllowThemeGraduatedSymbolOverlap

public boolean getAllowThemeGraduatedSymbolOverlap()
返回等级符号元素压盖时是否显示压盖的等级符号元素。

返回:
等级符号元素压盖时显示压盖的等级符号元素返回true,否则返回false。
默认值:
默认值为 false。

setAllowThemeGraduatedSymbolOverlap

public void setAllowThemeGraduatedSymbolOverlap(boolean value)
设置等级符号元素压盖时是否显示压盖的等级符号元素。

参数:
value - 一个布尔值,用于指定等级符号元素压盖时是否显示压盖的等级符号元素,true,表示显示压盖的等级符号元素;false,表示不显示压盖的等级符号元素。

getAllowThemeGraphOverlap

public boolean getAllowThemeGraphOverlap()
返回统计专题图元素压盖时是否显示压盖的统计专题图元素。

返回:
统计专题图元素压盖时显示压盖的统计专题图元素返回true,否则返回false。
默认值:
默认值为 false。

setAllowThemeGraphOverlap

public void setAllowThemeGraphOverlap(boolean value)
设置统计专题图元素压盖时是否显示压盖的统计专题图元素。

参数:
value - 一个布尔值,用于指定统计专题图元素压盖时是否显示压盖的统计专题图元素,true,表示显示压盖的统计专题图元素;false,表示不显示压盖的统计专题图元素。

getOverlappedSpaceSize

public Size2D getOverlappedSpaceSize()
返回两个对象之间的压盖间距,为正数时表示两个对象之间的距离,为负数时表示两个对象的压盖距离。

压盖间距的单位为0.1毫米。压盖间距为正数时表示两个对象之间的距离,超出距离时显示,小于等于该距离时不显示;为负数时表示两个对象的压盖距离,小于该距离的绝对值时显示,大于等于该距离的绝对值时不显示。

返回:
两个对象之间的重叠间距。
默认值:
默认值为 (0,0)。

setOverlappedSpaceSize

public void setOverlappedSpaceSize(Size2D value)
设置两个对象之间的压盖间距,为正数时表示两个对象之间的距离,为负数时表示两个对象的压盖距离。

压盖间距的单位为0.1毫米。压盖间距为正数时表示两个对象之间的距离,超出距离的显示,小于等于该距离的不显示;为负数时表示两个对象的压盖距离,小于该距离的绝对值时显示,大于等于该距离的绝对值时不显示。

参数:
value - 两个对象之间的压盖间距。

dispose

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


isObliqueRectEnabled

public boolean isObliqueRectEnabled()
是否精确计算文本对象的范围。为 true时,支持精确计算文本数据集图层中具有旋转角度的文本对象的范围,避免不合理的文本压盖情况,从而显示更多的文本对象。 精确计算文本对象的范围,会对地图绘制性能有一定的影响,用户可根据实际数据情况确认是否启用精确计算文本对象范围。

下图示意了未精确计算文本对象范围与精确计算文本对象范围下,文本对象的范围(Bounds)情况。

返回:
一个布尔值,指示是否精确计算文本数据集图层中具有旋转角度的文本对象的范围。

setObliqueRectEnabled

public void setObliqueRectEnabled(boolean value)
设置是否精确计算文本对象的范围。当设置为 true时,支持精确计算文本数据集图层中具有旋转角度的文本对象的范围,避免不合理的文本压盖情况,从而显示更多的文本对象。 当设置为true时,将精确计算文本对象的范围,所以地图绘制性能会有一定的影响,因此,此设置默认值为false,用户可根据实际数据情况确认是否启用精确计算文本对象范围。

下图示意了未精确计算文本对象范围与精确计算文本对象范围下,文本对象的范围(Bounds)情况。

参数:
value - 一个布尔值,指示是否精确计算文本数据集图层中具有旋转角度的文本对象的范围。