com.supermap.mapping
类 Layer

java.lang.Object
  继承者 com.supermap.mapping.Layer
直接已知子类:
LayerCache, LayerChart, LayerGridAggregation, LayerGroup, LayerHeatmap, LayerMosaic

public class Layer
extends java.lang.Object

图层类。

该类提供了图层显示和控制等的便于地图管理的一系列方法。当数据集被加载到地图窗口中显示时,就形成了一个图层,因此图层是数据集的可视化显示。一个图层是对一个数据集的引用或参考。通过对可视化的图层的编辑,可以对相应的数据集的要素进行编辑。一个图层或多个图层叠加显示则形成了地图。图层分为普通图层和专题图层,矢量的普通图层中所有要素采用相同的渲染风格,栅格图层采用颜色表来显示其像元;而专题图层的则采用指定类型的专题图风格来渲染其中的要素或像元。影像数据只对应普通图层。普通图层的风格通过 getAdditionalSetting()setAdditionalSetting() 方法来返回或设置,而专题图层的专题风格则通过 getTheme() 来返回。该类型提供了对图层的显示,选择,编辑,捕捉等状态的控制方法,同时也提供了图层显示的设置方法,如最大和最小显示比例尺以及过滤条件等。

该类的实例不可被创建,只可以通过在 Layers 类中的 add() 方法来创建。


构造方法摘要
Layer()
          构造一个新的Layer对象。
 
方法摘要
 void addElementDrawingListener(ElementDrawingListener l)
          添加一个用于接收元素绘制事件(ElementDrawingEvent)的监听器。
 int addGridFunction(GridFunctionType type, java.util.Map<java.lang.String,java.lang.String> args)
          对栅格图层的函数链中添加新的处理函数。
 void clearThemeElementPositions()
          清空所有的自定义位置,清空后专题图的绘制将按照默认的位置来完成。
 Layer findLayer(java.lang.String layerName)
          根据给定的图层名称获取图层。
 boolean fromXML(java.lang.String xml)
          根据指定的XML字符串创建图层对象。
 LayerSetting getAdditionalSetting()
          返回普通图层的风格设置。
 Rectangle2D getBounds()
          获取图层的范围。
 java.lang.String getCaption()
          返回图层的标题。
 GeoRegion getClipRegion()
          返回图层的裁剪区域。
 Dataset getDataset()
          返回此图层对应的数据集对象。
 int getDeduplicateThreshold()
          返回开启线面抽稀显示时的抽稀阈值,阈值表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。
 double getDeduplicateTolerance()
          返回开启线面抽稀显示时的抽稀容限,单位为像素。
 java.lang.String getDescription()
          返回此图层的描述信息。
 Layer getDisplayControledLayer()
          返回与当前图层建立绑定关系的图层对象。
 QueryParameter getDisplayFilter()
          返回图层显示过滤条件。
 java.lang.String getEndTimeField()
          启用时间的时态数据必须具有时间属性,用来表达数据观测的时间或者观测的起始和终止时间,该接口用来返回记录终止时间的字段。
 java.lang.String getExternalInfo()
          获取图层自定义信息。
 FieldValuesDisplayFilter getFieldValuesDisplayFilter()
          返回对图层通过字段值进行过滤显示的设置对象。
 FillMarkerOrderMode getFillMarkerOrder()
          返回图层的填充模式。
 double getMaxVisibleScale()
          返回此图层的最大可见比例尺。
 double getMinVisibleGeometrySize()
          返回几何对象的最小可见大小,以像素为单位,默认值为 0.4。
 double getMinVisibleScale()
          返回此图层的最小可见比例尺。
 java.lang.String getName()
          返回图层的名称。
 int getOpaqueRate()
          返回图层的不透明度。
 int getOverlapGeometryPixel()
          矢量数据绘制时,如果开启了过滤重叠小对象,该方法返回单位像素区域的大小。
 double getOverlapGeometryThreshold()
          矢量数据绘制时,如果开启了过滤重叠小对象,该方法返回参与过滤的对象的尺寸阈值。
 LayerGroup getParentGroup()
          返回当前图层所在图层分组。
 LayerSnapshot getParentSnapshot()
          返回地图中的被加入到快照图层中的图层对象所处的快照图层对象。
 java.lang.String getRepresentationField()
          返回存储制图表达信息的字段。
 Selection getSelection()
          返回此图层中的选择集对象。
 java.lang.String getStartTimeField()
          启用时间的时态数据必须具有时间属性,用来表达数据观测的时间或者观测的起始和终止时间,该接口用来返回记录起始时间的字段。
 double getSymbolScale()
          返回图层的符号缩放基准比例尺。
 Theme getTheme()
          返回专题图层的专题图对象,针对专题图层。
 Point2D getThemeElementPosition(int geometryID)
          根据给定的几何对象的 ID,获取该几何对象所对应的专题元素的自定义位置。
 java.util.Date getTimeFilterEnding()
          返回图层时间过滤条件的终止时间值。
 java.util.Date getTimeFilterStarting()
          返回图层时间过滤条件的起始时间值。
 TimeSpan getTimeStepInterval()
          返回时态数据的时间步长间隔。
 java.lang.String[] getValueExpressions()
          返回字段表达式定义的值。
 Selection hitTest(Point2D pt, double tolerance)
          返回选中的对象的集合。
 boolean hitTest(Point2D pt, double tolerance, java.util.ArrayList<GeoText> testResult)
          返回选中的专题元素。
 boolean hitTest(Point2D pt, double tolerance, java.lang.String resultExpression, java.util.ArrayList<GeoText> testResult)
          返回选中的专题元素。
 boolean hitTestGeoCompound(Point2D pt, double tolerance, java.lang.String resultExpression, java.util.ArrayList<GeoCompound> testResult)
          返回选中的专题元素。
 boolean isAntialias()
          返回图层是否开启反走样。
 boolean isClipRegionEnabled()
          返回裁剪区域是否有效。
 boolean isCompleteLineSymbolDisplayed()
          返回是否显示完整线型。
 boolean isCrossroadOptimized()
          返回是否进行十字路口优化。
 boolean isDeduplicateEnabled()
          返回是否启用线面绘制时去重复抽稀功能。
 boolean isDisposed()
          返回对象是否已被释放。
 boolean isEditable()
          返回图层是否处于可编辑状态。
 boolean isOverlapDisplayed()
          返回是否显示压盖对象。
 boolean isOverlapGeometryEnabled()
          返回矢量数据绘制时,是否过滤重叠小对象,默认值为false,表示不过滤。
 boolean isRepresentationEnabled()
          返回该图层是否采用制图表达。
 boolean isSelectable()
          返回图层中对象是否可以选择。
 boolean isSnapable()
          返回图层是否可捕捉。
 boolean isSymbolScalable()
          返回图层的符号大小是否随图缩放。
 boolean IsTimeFilterEnable()
          返回是否启用该图层的时间过滤显示功能,true表示启用,相关时间设置才有效。
 boolean isVisible()
          返回此图层是否可见。
 boolean isVisibleScale(double dScale)
          返回指定的比例尺是否为可视比例尺,即在设定的最小显示比例尺和最大显示比例尺之间。
 void removeElementDrawingListener(ElementDrawingListener l)
          移除一个用于接收元素绘制事件(ElementDrawingEvent)的监听器。
 boolean removeThemeElementPosition(int geometryID)
          根据给定的几何对象的 ID,清除该几何对象所对应的专题元素的自定义位置,清除后该专题元素采用默认的位置。
 void setAdditionalSetting(LayerSetting layerSetting)
          设置普通图层的风格。
 void setAntialias(boolean value)
          设置图层是否开启反走样。
 void setCaption(java.lang.String value)
          设置图层的标题。
 void setClipRegion(GeoRegion geoRegion)
          设置图层的裁剪区域。
 void setClipRegionEnabled(boolean value)
          设置裁剪区域是否有效。
 void setCompleteLineSymbolDisplayed(boolean value)
          设置是否显示完整线型。
 void setCrossroadOptimized(boolean value)
          设置是否进行十字路口优化 。
 void setDataset(Dataset dataset)
          设置此图层对应的数据集对象。
 void setDeduplicateEnabled(java.lang.Boolean value)
          设置是否启用线面绘制时去重复抽稀功能。
 void setDeduplicateThreshold(int value)
          设置开启线面抽稀显示时的抽稀阈值,阈值表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。
 void setDeduplicateTolerance(double value)
          设置开启线面抽稀显示时的抽稀容限,单位为像素。
 void setDescription(java.lang.String value)
          设置此图层的描述信息。
 boolean setDisplayControledLayer(Layer layer)
          设置被当前图层控制显示的图层,即指定图层与当前图层建立一种绑定关系,指定的图层将会与当前的图层显示相同的对象。
 void setDisplayFilter(QueryParameter queryParameter)
          设置图层显示过滤条件。
 void setEditable(boolean value)
          设置图层是否处于可编辑状态。
 void setEndTimeField(java.lang.String strField)
          启用时间的时态数据必须具有时间属性,用来表达数据观测的时间或者观测的起始和终止时间,该接口用来设置记录终止时间的字段。
 void setExternalInfo(java.lang.String value)
          设置图层自定义信息,用于通过用户自定义条件查找、筛选图层。
 void setFillMarkerOrder(FillMarkerOrderMode fillMarkerOrderMode)
          设置图层的填充模式。
 void setMaxVisibleScale(double value)
          设置此图层的最大可见比例尺。
 void setMinVisibleGeometrySize(double value)
          设置几何对象的最小可见大小,以像素为单位,默认值为0.4。
 void setMinVisibleScale(double value)
          设置此图层的最小可见比例尺。
 void setOpaqueRate(int value)
          设置图层的不透明度。
 void setOverlapDisplayed(boolean value)
          设置是否显示压盖对象。
 void setOverlapGeometryEnabled(java.lang.Boolean value)
          设置矢量数据绘制时,是否过滤重叠小对象,默认值为false,表示不过滤。
 void setOverlapGeometryPixel(int value)
          矢量数据绘制时,如果开启了过滤重叠小对象,该方法设置单位像素区域的大小。
 void setOverlapGeometryThreshold(double value)
          矢量数据绘制时,如果开启了过滤重叠小对象,该方法设置参与过滤的对象的尺寸阈值。
 void setRepresentationEnabled(boolean value)
          设置该图层是否采用制图表达。
 void setRepresentationField(java.lang.String value)
          设置存储制图表达信息的字段。
 void setSelectable(boolean value)
          设置图层中对象是否可以选择。
 void setSelection(Selection selection)
          设置此图层中的选择集对象。
 void setSnapable(boolean value)
          设置图层是否可捕捉。
 void setStartTimeField(java.lang.String strField)
          启用时间的时态数据必须具有时间属性,用来表达数据观测的时间或者观测的起始和终止时间,该接口用来设置记录起始时间的字段。
 void setSymbolScalable(boolean value)
          设置图层的符号大小是否随图缩放。
 void setSymbolScale(double value)
          设置图层的符号缩放基准比例尺。
 void setThemeElementPosition(int geometryID, Point2D position)
          根据给定的几何对象的 ID 和地理位置坐标,设置该几何对象所对应的专题元素的自定义位置。
 void setTimeFilterEnable(boolean bEnable)
          设置是否启用该图层的时间过滤显示功能,true表示启用,相关时间设置才有效。
 void setTimeFilterEnding(java.util.Date endTime)
          设置图层时间过滤条件的终止时间值。
 void setTimeFilterStarting(java.util.Date startTime)
          设置图层时间过滤条件的起始时间值。
 void setTimeStepInterval(TimeSpan timeSpan)
          设置时态数据的时间步长间隔。
 void setValueExpressions(java.lang.String[] value)
          设置字段表达式定义的值。
 void setVisible(boolean value)
          设置此图层是否可见。
 Geometry[] themeSymbolsToGeometries(Recordset recordset)
          将专题图的点符号转换为 Geometry 对象。
 DatasetVector themeToDatasetVector(Datasource datasource, java.lang.String datasetName)
          将专题图转换为 CAD 数据集。
 java.lang.String toXML()
          返回此图层对象的 XML字符串形式的描述。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Layer

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

方法详细信息

getName

public java.lang.String getName()
返回图层的名称。图层的名称在图层所在的地图中唯一标识此图层。该标识不区分大小写。

返回:
图层的名称。

getCaption

public java.lang.String getCaption()
返回图层的标题。图层的标题为图层的显示名称,例如在图例或排版制图时显示的图层的名称即为图层的标题。注意与图层的名称相区别。

返回:
图层的标题。

setCaption

public void setCaption(java.lang.String value)
设置图层的标题。图层的标题为图层的显示名称,例如在图例或排版制图时显示的图层的名称即为图层的标题。注意与图层的名称相区别。

参数:
value - 指定图层的标题。

getDescription

public java.lang.String getDescription()
返回此图层的描述信息。

返回:
此图层的描述信息。
默认值:
默认值为一个空字符串。

setDescription

public void setDescription(java.lang.String value)
设置此图层的描述信息。

参数:
value - 指定图层的描述信息。

getDataset

public Dataset getDataset()
返回此图层对应的数据集对象。图层是对数据集的引用,因而,一个图层与一个数据集相对应。

返回:
此图层对应的数据集对象。

setDataset

public void setDataset(Dataset dataset)
设置此图层对应的数据集对象。图层是对数据集的引用,因而,一个图层与一个数据集相对应。

当该方法设置为 null 时,抛出异常。

参数:
dataset - 此图层对应的数据集对象。

getDisplayFilter

public QueryParameter getDisplayFilter()
返回图层显示过滤条件。通过设置显示过滤条件,可以使图层中的一些要素显示,而另一些要素不显示,以便重点分析感兴趣的要素,而过滤掉其他要素。

注意:在空间查询中,该方法仅对属性数据起作用,对空间数据不起作用。

返回:
图层显示过滤条件。

setDisplayFilter

public void setDisplayFilter(QueryParameter queryParameter)
设置图层显示过滤条件。通过设置显示过滤条件,可以使图层中的一些要素显示,而另一些要素不显示,以便重点分析感兴趣的要素,而过滤掉其他要素。比如说通过连接(JoinItem)的方式将一个外部表的字段作为专题图的表达字段,在生成专题图后进行显示时,需要调用此方法,否则专题图将创建失败。

注意:在空间查询中,该方法仅对属性数据起作用,对空间数据不起作用。

参数:
queryParameter - 指定图层显示过滤条件。
示例:
以下代码示范了设置图层显示过滤条件并出图到 BMP 文件。
 private void setDisplayFilterTest() {
        // 打开数据源
        Workspace workspace = new Workspace();
        MapControl mapControl = new MapControl();
        mapControl.getMap().setWorkspace(workspace);
        DatasourceConnectionInfo datasourceConnectionInfo = new
                DatasourceConnectionInfo("G:/World/World.udb", "world", "");
        Datasource datasource = workspace.getDatasources().open(
                datasourceConnectionInfo);

        // 将数据集添加到图层
        Dataset dataset = datasource.getDatasets().get("World");
        Layer layer = mapControl.getMap().getLayers().add(dataset, true);

        // 设置图层显示过滤条件
        QueryParameter queryParameter = new QueryParameter();
        queryParameter.setAttributeFilter("SmID<50");
        layer.setDisplayFilter(queryParameter);

        // 输出地图到 BMP 文件
        mapControl.getMap().setImageSize(new java.awt.Dimension(500, 500));
        mapControl.getMap().outputMapToBMP("c:/temp/outFile.bmp");

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

getAdditionalSetting

public LayerSetting getAdditionalSetting()
返回普通图层的风格设置。普通图层风格的设置对矢量数据图层,栅格数据图层以及影像数据图层是不相同的。LayerSettingVectorLayerSettingGridLayerSettingImage 类分别用来对矢量数据图层,栅格数据图层和影像数据图层的风格进行设置和修改。

返回:
普通图层的风格设置。
示例:
以下代码示范了通过判断当前图层的类型,有针对性的制作专题图。
 private void getAdditionalSettingTest() {
        // 打开工作空间,并建立与 MapControl 的关联
        Workspace workspace = new Workspace();
        MapControl mapControl = new MapControl();
        mapControl.getMap().setWorkspace(workspace);

        // 打开数据源并获取数据集
        String path = "G:/world/World.udb";
        DatasourceConnectionInfo datasourceConnectionInfo = new
                DatasourceConnectionInfo(path, "World", "");
        Datasource datasource = workspace.getDatasources().open(
                datasourceConnectionInfo);
        Dataset dataset = datasource.getDatasets().get("world");

        // 将数据集加载到图层
        Layer layer = mapControl.getMap().getLayers().add(dataset, true);

        // 判断图层的风格设置类型
        // 针对矢量图层设置生成默认的单值专题图,并添加到图层显示
        if (layer.getAdditionalSetting().getType() == LayerSettingType.VECTOR) {
            ThemeUnique themeUnique = ThemeUnique.makeDefault((DatasetVector)
                    dataset, "SmID", ColorGradientType.PINKBLUE);
            Layer layer2 = mapControl.getMap().getLayers().add(dataset,
                    themeUnique, true);

        }
        // 针对栅格图层设置生成默认的栅格单值专题图,并添加到图层显示
        if (layer.getAdditionalSetting().getType() == LayerSettingType.GRID) {
            ThemeGridUnique themeGridUnique = ThemeGridUnique.makeDefault(
                    (DatasetGrid) dataset, ColorGradientType.PINKBLUE);
            Layer layer2 = mapControl.getMap().getLayers().add(dataset,
                    themeGridUnique, true);
        }

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

setAdditionalSetting

public void setAdditionalSetting(LayerSetting layerSetting)
设置普通图层的风格。普通图层风格的设置对矢量数据图层,栅格数据图层以及影像数据图层是不相同的。LayerSettingVectorLayerSettingGridLayerSettingImage 类分别用来对矢量数据图层,栅格数据图层和影像数据图层的风格进行设置和修改。

参数:
layerSetting - 普通图层的风格设置。

getTheme

public Theme getTheme()
返回专题图层的专题图对象,针对专题图层。图层的专题图类型是在添加数据集作为一个图层显示时指定,即通过 Layers.add() 方法指定,之后不可更改其专题图类型,只可以对其专题图风格进行修改。

返回:
专题图层的专题图对象。
示例:
以下代码示例从图层中获取一个单值专题图对象。
 private ThemeUnique getThemeTest() {
        // 返回工作空间连接信息
        WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo(
                "G:/world/world.sxw");

        // 实例化工作空间
        Workspace workspace = new Workspace();
        ThemeUnique theme = null;
        try {
            // 打开已有的工作空间并打开指定名称的地图
            workspace.open(connectionInfo);
            Map map = new Map(workspace);
            map.open("世界地图");

            // 获取当前地图所包含的图层集合对象
            Layer layer = map.getLayers().get("World@world#1");

            // 获取专题图层的单值专题图对象
            theme = (ThemeUnique) layer.getTheme();
        } finally {

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

        // 返回新的单值专题图对象
        return new ThemeUnique(theme);
    }
 

getSelection

public Selection getSelection()
返回此图层中的选择集对象。选择集是个集合,其中包含选择的图层中的一个或多个要素。在选择集中的要素才可以被编辑。注意选择集只适用于矢量数据集,栅格数据集和影像数据集没有选择集。

返回:
此图层中的选择集对象。

setSelection

public void setSelection(Selection selection)
设置此图层中的选择集对象。选择集是个集合,其中包含选择的图层中的一个或多个要素。在选择集中的要素才可以被编辑。注意选择集只适用于矢量数据集,栅格数据集和影像数据集没有选择集。

参数:
selection - 指定图层中的选择集对象。

isSelectable

public boolean isSelectable()
返回图层中对象是否可以选择。true 表示此图层中的对象可被选择,false 表示此图层中对象不可选。当需要对图层进行一些选择或查询时,需要将图层设置为可选择。当图层为可选择状态时,你可以选择感兴趣的要素,查询其相关属性及统计信息等。

返回:
图层中对象是否可以选择。
默认值:
默认值为 true,即图层中的对象可以选择。

setSelectable

public void setSelectable(boolean value)
设置图层中对象是否可以选择。true 表示此图层中的对象可被选择,false 表示此图层中对象不可选。当需要对图层进行一些选择或查询时,需要将图层设置为可选择。当图层为可选择状态时,你可以选择感兴趣的要素,查询其相关属性及统计信息等。

参数:
value - 指定图层中对象是否可以选择。

isSnapable

public boolean isSnapable()
返回图层是否可捕捉。true 表示此图层可被捕捉,false 表示此图层不可被捕捉。在对图层进行编辑时,可捕捉属性可以精确地捕捉所需要的要素或位置。

返回:
图层是否可捕捉。
默认值:
默认值为 true。即在图层中可以精确地捕捉所需要的要素或位置。

setSnapable

public void setSnapable(boolean value)
设置图层是否可捕捉。true 表示此图层可被捕捉,false 表示此图层不可被捕捉。在对图层进行编辑时,可捕捉属性可以精确地捕捉所需要的要素或位置。

参数:
value - 指定图层是否可捕捉。

isSymbolScalable

public boolean isSymbolScalable()
返回图层的符号大小是否随图缩放。默认为 false。true 表示当图层被放大或缩小时,符号也随之放大或缩小。

返回:
图层的符号大小是否随图缩放。
默认值:
默认值为 false。即图层的符号大小不可随图缩放。

setSymbolScalable

public void setSymbolScalable(boolean value)
设置图层的符号大小是否随图缩放。默认为 false。true 表示当图层被放大或缩小时,符号也随之放大或缩小。

参数:
value - 指定图层的符号大小是否随图缩放。

getSymbolScale

public double getSymbolScale()
返回图层的符号缩放基准比例尺。符号缩放基准比例尺在允许符号随图缩放时有效,指定了在随图缩放时,所设置的符号大小所对应的地图显示比例尺。如果当前地图的显示比例尺大于基准比例尺,则符号大小就会按相同的比例增大;反之,当前地图的显示比例尺小于基准比例尺时,符号大小就会按相同的比例减小。例如,设置符号缩放基准比例尺为1:50000,符号的大小为30,则当地图比例尺为1:10000时,符号的大小则为150。

返回:
图层的符号的比例。
默认值:
默认值为1。

setSymbolScale

public void setSymbolScale(double value)
设置图层的符号缩放基准比例尺。符号缩放基准比例尺在允许符号随图缩放时有效,指定了在随图缩放时,所设置的符号大小所对应的地图显示比例尺。如果当前地图的显示比例尺大于基准比例尺,则符号大小就会按相同的比例增大;反之,当前地图的显示比例尺小于基准比例尺时,符号大小就会按相同的比例减小。例如,设置符号缩放基准比例尺为1:50000,符号的大小为30,则当地图比例尺为1:10000时,符号的大小则为150。

参数:
value - 指定图层的符号的比例。

isVisible

public boolean isVisible()
返回此图层是否可见。true 表示此图层可见,false 表示图层不可见。当图层不可见时,其他所有的属性的设置将无效。

返回:
图层是否可见。
默认值:
默认值为 true。即图层可见。

setVisible

public void setVisible(boolean value)
设置此图层是否可见。true 表示此图层可见,false 表示图层不可见。当图层不可见时,其他所有的属性的设置将无效。

参数:
value - 指定图层是否可见。

getMaxVisibleScale

public double getMaxVisibleScale()
返回此图层的最大可见比例尺。最大可见比例尺不可为负,当地图的当前显示比例尺大于或等于图层最大可见比例尺时,此图层将不显示。

返回:
图层的最大可见比例尺。
默认值:
默认值为 0。

setMaxVisibleScale

public void setMaxVisibleScale(double value)
设置此图层的最大可见比例尺。最大可见比例尺不可为负,当地图的当前显示比例尺大于或等于图层最大可见比例尺时,此图层将不显示。

参数:
value - 指定图层的最大可见比例尺。

getMinVisibleScale

public double getMinVisibleScale()
返回此图层的最小可见比例尺。最小可见比例尺不可为负。当地图的当前显示比例尺小于图层最小可见比例尺时,此图层将不显示。

返回:
图层的最小可见比例尺。
默认值:
默认值为 0。

setMinVisibleScale

public void setMinVisibleScale(double value)
设置此图层的最小可见比例尺。最小可见比例尺不可为负。当地图的当前显示比例尺小于图层最小可见比例尺时,此图层将不显示。

参数:
value - 指定图层的最小可见比例尺。

getMinVisibleGeometrySize

public double getMinVisibleGeometrySize()
返回几何对象的最小可见大小,以像素为单位,默认值为 0.4。设置该方法后,当几何对象的最小外接矩形的宽度和高度之中的较大值小于此值时,该几何对象将不显示。返回的最小可见大小精确到十分位。

返回:
返回几何对象的最小可见大小,单位为 0.1 mm。
默认值:
默认值为 0.4。

setMinVisibleGeometrySize

public void setMinVisibleGeometrySize(double value)
设置几何对象的最小可见大小,以像素为单位,默认值为0.4。设置该方法后,当几何对象的最小外接矩形的宽度和高度之中的较大值小于此值时,该几何对象将不显示。设置的最小可见大小精确到十分位。

参数:
value - 指定几何对象的最小可见大小。

isCompleteLineSymbolDisplayed

public boolean isCompleteLineSymbolDisplayed()
返回是否显示完整线型。true 表示显示,false 表示不显示。

返回:
一个布尔值指定是否显示完整线型。

setCompleteLineSymbolDisplayed

public void setCompleteLineSymbolDisplayed(boolean value)
设置是否显示完整线型。true 表示显示,false 表示不显示。

参数:
value - 一个布尔值,指定是否显示完整线型。

isClipRegionEnabled

public boolean isClipRegionEnabled()
返回裁剪区域是否有效。

图层显示的裁剪区域与以下方法的返回值有关:Map.getClipRegion()Map.isClipRegionEnabled()Layer.getClipRegion()Layer.isClipRegionEnabled()

图层显示的裁剪区域是 Layer.getClipRegion()Map.getClipRegion() 的返回值的并集。 当然在 Map.isClipRegionEnabled() 或者 Layer.isClipRegionEnabled() 方法的返回值为 false 时, 对应的 Map.getClipRegion() 或者 Layer.getClipRegion() 返回值在参与并集计算时为空。

返回:
一个布尔值,指定裁剪区域是否有效。true 表示有效,false 表示无效。

setClipRegionEnabled

public void setClipRegionEnabled(boolean value)
设置裁剪区域是否有效。

参数:
value - 一个布尔值,指定裁剪区域是否有效,true 表示有效,false 表示无效。

isEditable

public boolean isEditable()
返回图层是否处于可编辑状态。该方法控制是否对图层所引用的数据进行修改。

当图层为可编辑时,意味着可以对图层所引用的数据进行修改和编辑,通过图层,可以对数据进行可视化的编辑。当你只希望对图层所引用的数据进行渲染或相关分析操作而不希望影响原数据时,建议将图层设置为不可编辑,以免不经意的操作修改了数据。

返回:
返回图层是否处于可编辑状态。

setEditable

public void setEditable(boolean value)
设置图层是否处于可编辑状态。该方法控制是否对图层所引用的数据进行修改。

当图层为可编辑时,意味着可以对图层所引用的数据进行修改和编辑,通过图层,可以对数据进行可视化的编辑。当你只希望对图层所引用的数据进行渲染或相关分析操作而不希望影响原数据时,建议将图层设置为不可编辑,以免不经意的操作修改了数据。

参数:
value - 图层是否处于可编辑状态。

getValueExpressions

public java.lang.String[] getValueExpressions()
返回字段表达式定义的值。 该值在触发元素绘制事件参数类(ElementDrawingEvent)时,由该事件参数类(ElementDrawingEvent)提取到的一系列字段表达式。通过 ElementDrawingEvent.getValues() 方法返回对应的字段值。

返回:
返回字段表达式定义的值。

setValueExpressions

public void setValueExpressions(java.lang.String[] value)
设置字段表达式定义的值。 该值在触发元素绘制事件参数类(ElementDrawingEvent)时,由该事件参数类(ElementDrawingEvent)提取到的一系列字段表达式。通过 ElementDrawingEvent.getValues() 方法返回对应的字段值。

注意:对于统计专题图层,该方法设置无效。

参数:
value - 指定的字段表达式定义的值。

getClipRegion

public GeoRegion getClipRegion()
返回图层的裁剪区域。

返回:
返回图层的裁剪区域。

setClipRegion

public void setClipRegion(GeoRegion geoRegion)
设置图层的裁剪区域。

参数:
geoRegion - 图层的裁剪区域。

getOpaqueRate

public int getOpaqueRate()
返回图层的不透明度。

返回:
图层的不透明度。

setOpaqueRate

public void setOpaqueRate(int value)
设置图层的不透明度。

参数:
value - 图层的不透明度。

getRepresentationField

public java.lang.String getRepresentationField()
返回存储制图表达信息的字段。

什么是制图表达?

制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。

设置矢量数据集中的几何对象的制图表达信息是通过 Recordset 类中的相关方法实现的,利用 Recordset 类中的相关方法可以将制图表达信息写入数据集中指定的用于存储制图表达信息的字段。

当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer 对象的 Layer.setRepresentationField() 方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息 。

返回:
返回存储制图表达信息的字段。

setRepresentationField

public void setRepresentationField(java.lang.String value)
设置存储制图表达信息的字段。

什么是制图表达?

制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。

设置矢量数据集中的几何对象的制图表达信息是通过 Recordset 类中的相关方法实现的,利用 Recordset 类中的相关方法可以将制图表达信息写入数据集中指定的用于存储制图表达信息的字段。

当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer 对象的 Layer.setRepresentationField() 方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息 。

参数:
value - 存储制图表达信息的字段。

isRepresentationEnabled

public boolean isRepresentationEnabled()
返回该图层是否采用制图表达。

返回:
该图层采用制图表达返回 true;否则返回 false。

setRepresentationEnabled

public void setRepresentationEnabled(boolean value)
设置该图层是否采用制图表达。

参数:
value - 一个布尔值指定该图层是否采用制图表达。

hitTest

public Selection hitTest(Point2D pt,
                         double tolerance)
返回选中的对象的集合。若指定的点与对象上最近点的距离在指定容限范围的范围内,则该对象被选中。如果地图上有多个重叠的对象都满足条件,则都被选中,并返回多个对象。支持所有专题图图层和矢量图层。

参数:
pt - 要测试的点。
tolerance - 指定的容限。
返回:
返回被选中的对象的集合。

isVisibleScale

public boolean isVisibleScale(double dScale)
返回指定的比例尺是否为可视比例尺,即在设定的最小显示比例尺和最大显示比例尺之间。

参数:
dScale - 指定的显示比例尺。
返回:
返回 true,表示指定的比例尺为可视比例尺;否则为 false。

themeToDatasetVector

public DatasetVector themeToDatasetVector(Datasource datasource,
                                          java.lang.String datasetName)
将专题图转换为 CAD 数据集。
  1. 如果没有专题图,该方法不起作用;
  2. Map.getScale() 方法的返回值为 0 时,该方法不起作用。

参数:
datasource - 表示转换后 CAD 数据集所在的数据源。
datasetName - 表示转换后 CAD 数据集的名称。
返回:
转换后的 CAD 数据集。
示例:
以下代码示范了如何将单值专题图层转换为数据集。
 private void themeToDatasetVectorTest() {
        // 打开数据源
        Workspace workspace = new Workspace();
        MapControl mapControl = new MapControl();
        mapControl.getMap().setWorkspace(workspace);
        String path = "G:/world/world.sxw";
        DatasourceConnectionInfo datasourceConnectionInfo = new
                DatasourceConnectionInfo(path, "World", "");
        Datasource datasource = workspace.getDatasources().open(
                datasourceConnectionInfo);

        // 生成单值专题图
        DatasetVector dataset = (DatasetVector) datasource.getDatasets().get(
                "world");
        ThemeUnique theme = ThemeUnique.makeDefault(dataset, "Country");

        // 将专题图层添加到图层
        Map map = mapControl.getMap();
        Layer layer = map.getLayers().add(dataset, theme, true);
        map.viewEntire();

        // 从该专题图层生成数据集
        String outDatasetName = datasource.getDatasets().
                                getAvailableDatasetName(
                                        "New_CAD");
        DatasetVector datasetCAD = layer.themeToDatasetVector(datasource,
                outDatasetName);

        // 释放资源
        mapControl.dispose();
        datasource.getWorkspace().dispose();
    }
 

clearThemeElementPositions

public void clearThemeElementPositions()
清空所有的自定义位置,清空后专题图的绘制将按照默认的位置来完成。


removeThemeElementPosition

public boolean removeThemeElementPosition(int geometryID)
根据给定的几何对象的 ID,清除该几何对象所对应的专题元素的自定义位置,清除后该专题元素采用默认的位置。目前,该方法只适用于标签专题图、统计专题图和等级符号专题图。

参数:
geometryID - 给定的几何对象的 ID。
返回:
成功返回 true,失败返回 false。

getThemeElementPosition

public Point2D getThemeElementPosition(int geometryID)
根据给定的几何对象的 ID,获取该几何对象所对应的专题元素的自定义位置。目前,该方法只适用于标签专题图、统计专题图和等级符号专题图。

参数:
geometryID - 给定的几何对象的 ID。
返回:
返回专题元素自定义位置的地理坐标,如果没有自定义,则返回 Point2D.getEMPTY(),即返回一个空的点对象。

setThemeElementPosition

public void setThemeElementPosition(int geometryID,
                                    Point2D position)
根据给定的几何对象的 ID 和地理位置坐标,设置该几何对象所对应的专题元素的自定义位置。目前,该方法只适用于标签专题图、统计专题图和等级符号专题图。

参数:
geometryID - 给定的几何对象的ID。
position - 自定义专题元素位置的地理坐标。
示例:
以下代码示范了设置标签专题图元素的自定义位置。
 private void setThemeElementPositionTest() {
        // 打开数据源
        String path = "G:/World/World.udb";
        DatasourceConnectionInfo datasourceConnectionInfo = new DatasourceConnectionInfo(path, "World", "");
        Workspace workspace = new Workspace();
        Datasource datasource = workspace.getDatasources().open(datasourceConnectionInfo);

        // 在地图中打开面数据集
        DatasetVector dataset = (DatasetVector) datasource.getDatasets().get(
                "World");

        // 为该数据集制作标签专题图,并添加到地图
        MapControl mapControl = new MapControl(workspace);
        Map map = mapControl.getMap();

        Layer layer = map.getLayers().add(dataset, true);
        ThemeLabel theme = ThemeLabel.makeDefault(dataset, "SmID",RangeMode.EQUALINTERVAL, 5);
        theme.setLabelExpression("Capital");
        Layer layertheme = map.getLayers().add(dataset, theme, true);

        // 将该标签专题图的专题图元素设定到指定位置
        layertheme.setThemeElementPosition(1, new Point2D(16000000, 10000000));

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

hitTest

public boolean hitTest(Point2D pt,
                       double tolerance,
                       java.util.ArrayList<GeoText> testResult)
返回选中的专题元素。若指定的点与专题元素上最近点的距离是在指定的容限范围,则该专题元素被选中。目前只支持标签专题图。

参数:
pt - 要测试的点。
tolerance - 指定的容限。
testResult - 用于存储该方法得到的专题图元素,在没有得到满足条件的对象时,该参数对象的长度为 0,该参数不能为 null。
返回:
返回是否得到了专题图元素,true 表示通过该方法得到了专题元素。
示例:
以下代码示范了获取选中的专题元素。
 private void hitTestTest() {
        // 打开数据源
        Workspace workspace = new Workspace();
        MapControl mapControl = new MapControl();
        mapControl.getMap().setWorkspace(workspace);
        DatasourceConnectionInfo datasourceConnectionInfo = new
                DatasourceConnectionInfo("G:/world/World.udb", "World", "");
        Datasource datasource = workspace.getDatasources().open(
                datasourceConnectionInfo);

        // 返回指定名称的数据集
        DatasetVector dataset = (DatasetVector) datasource.getDatasets().get(
                "World");

        // 制作标签专题图并将其添加到图层
        ThemeLabel themeLabel = ThemeLabel.makeDefault(dataset, "SmID",
                RangeMode.EQUALINTERVAL, 4);
        themeLabel.setLabelExpression("SmID");
        Layer layer = mapControl.getMap().getLayers().add(dataset, themeLabel, true);
        mapControl.getMap().viewEntire();

        // 通过给定的条件查询得到记录集
        int id = 217;
        Recordset recordset = dataset.query(new int[] {id}, CursorType.STATIC);
        recordset.moveFirst();

        // 设置要测试的点、容限和专题图元素
        Point2D hitPoint = recordset.getGeometry().getInnerPoint();
        double tolerance = 1000;
        java.util.ArrayList result = new java.util.ArrayList();

        // 返回选中的专题元素
        layer.hitTest(hitPoint, tolerance, result);

        // 释放资源
        mapControl.dispose();
        recordset.dispose();
        workspace.dispose();
    }
 

hitTest

public boolean hitTest(Point2D pt,
                       double tolerance,
                       java.lang.String resultExpression,
                       java.util.ArrayList<GeoText> testResult)
返回选中的专题元素。若指定的点与专题元素上最近点的距离是在指定的容限范围,则该专题元素被选中。目前只支持标签专题图,

参数:
pt - 要测试的点。
tolerance - 指定的容限。
resultExpression - 指定的字段表达式,设置该字段表达式之后可以,可以从结果中取到特定的专题元素对应的几何对象的相关数据。
testResult - 用于存储该方法得到的专题图元素,在没有得到满足条件的对象时,该参数对象的长度为 0,该参数不能为 null。
返回:
返回是否得到了专题图元素,true 表示通过该方法得到了专题元素。

hitTestGeoCompound

public boolean hitTestGeoCompound(Point2D pt,
                                  double tolerance,
                                  java.lang.String resultExpression,
                                  java.util.ArrayList<GeoCompound> testResult)
返回选中的专题元素。若指定的点与专题元素上最近点的距离是在指定的容限范围,则该专题元素被选中。目前支持统计,标签专题图。

参数:
pt - 要测试的点。
tolerance - 指定的容限。
resultExpression - 指定的字段表达式,设置该字段表达式之后可以,可以从结果中取到特定的专题元素对应的几何对象的相关数据。
testResult - 用于存储该方法得到的专题图元素,在没有得到满足条件的对象时,该参数对象的长度为 0,该参数不能为 null。
返回:
返回是否得到了专题图元素,true 表示通过该方法得到了专题元素。

addElementDrawingListener

public void addElementDrawingListener(ElementDrawingListener l)
添加一个用于接收元素绘制事件(ElementDrawingEvent)的监听器。

在绘制专题图的元素或绘制几何对象时会触发该事件,可以通过该事件来完成自定义专题图元素的绘制,或是修改图层的默认绘制。

参数:
l - 一个用于接收元素绘制事件的监听器。

removeElementDrawingListener

public void removeElementDrawingListener(ElementDrawingListener l)
移除一个用于接收元素绘制事件(ElementDrawingEvent)的监听器。

在绘制专题图的元素或绘制几何对象时会触发该事件,可以通过该事件来完成自定义专题图元素的绘制,或是修改图层的默认绘制。

参数:
l - 一个用于接收元素绘制事件的监听器。

isDisposed

public boolean isDisposed()
返回对象是否已被释放。若为 true时,操作该类的其他方法,都会抛出异常,意味着对象已被释放。

返回:
对象已经被释放,返回 true;否则返回 false。

getFillMarkerOrder

public FillMarkerOrderMode getFillMarkerOrder()
返回图层的填充模式。FillMarkerOrderMode.GEOMETRYTOPLEFT 表示从单个几何对象的左上角进行填充; FillMarkerOrderMode.LAYERTOPLEFT 表示从整个图层的左上角进行填充。

返回:
返回图层的填充模式。
默认值:
默认值为 FillMarkerOrderMode.GEOMETRYTOPLEFT

setFillMarkerOrder

public void setFillMarkerOrder(FillMarkerOrderMode fillMarkerOrderMode)
设置图层的填充模式。FillMarkerOrderMode.GEOMETRYTOPLEFT 表示从单个几何对象的左上角进行填充; FillMarkerOrderMode.LAYERTOPLEFT 表示从整个图层的左上角进行填充。

参数:
fillMarkerOrderMode - 图层的填充模式。

isCrossroadOptimized

public boolean isCrossroadOptimized()
返回是否进行十字路口优化。

返回:
一个布尔值,使用十字路口优化则返回true,否则返回false。
默认值:
默认值为 false。

setCrossroadOptimized

public void setCrossroadOptimized(boolean value)
设置是否进行十字路口优化 。

参数:
value - true 为使用十字路口优化,false 为不使用十字路口优化。

getBounds

public Rectangle2D getBounds()
获取图层的范围。


themeSymbolsToGeometries

public Geometry[] themeSymbolsToGeometries(Recordset recordset)
将专题图的点符号转换为 Geometry 对象。

参数:
recordset - 需要转换为 Geometry 对象的专题图点符号的记录集。
返回:
返回专题图的点符号转换为 Geometry 对象后的 Geometry 数组。

setExternalInfo

public void setExternalInfo(java.lang.String value)
设置图层自定义信息,用于通过用户自定义条件查找、筛选图层。

参数:
value - 自定义信息

getExternalInfo

public java.lang.String getExternalInfo()
获取图层自定义信息。


isAntialias

public boolean isAntialias()
返回图层是否开启反走样。

返回:
一个布尔值,指示图层是否开启反走样。true 为开启反走样,false 为不开启。
默认值:
默认值为 false,即不开启反走样。

setAntialias

public void setAntialias(boolean value)
设置图层是否开启反走样。

参数:
value - 一个布尔值,指示图层是否开启反走样。true 为开启反走样,false 为不开启。

setDisplayControledLayer

public boolean setDisplayControledLayer(Layer layer)
设置被当前图层控制显示的图层,即指定图层与当前图层建立一种绑定关系,指定的图层将会与当前的图层显示相同的对象。

参数:
layer - 被当前图层控制显示的图层,这里称为被绑定图层,被绑定的图层必须是以下类型的图层:标签专题图,统计专题图、点密度专题图、等级符号专题图。
返回:
一个布尔值,指示是否绑定成功,true表示成功;false表示失败。只有符合下面的条件才能绑定成功,被绑定的图层必须是标签专题图,统计专题图、点密度专题图或者等级符号专题图;当前图层必须是普通图层、单值专题图、分段专题图或者自定义专题图。

getDisplayControledLayer

public Layer getDisplayControledLayer()
返回与当前图层建立绑定关系的图层对象。

如果当前图层通过 setDisplayControledLayer() 方法与某个图层建立了绑定关系,那么指定的图层将会与当前的图层显示相同的对象。

返回:
与当前图层建立绑定关系的图层对象。

getParentGroup

public LayerGroup getParentGroup()
返回当前图层所在图层分组。

返回:

findLayer

public Layer findLayer(java.lang.String layerName)
根据给定的图层名称获取图层。

参数:
layerName - 图层名称。
返回:
返回指定图层名称的图层。

getFieldValuesDisplayFilter

public FieldValuesDisplayFilter getFieldValuesDisplayFilter()
返回对图层通过字段值进行过滤显示的设置对象。

根据图层对应数据集的指定字段,您可以通过FieldValuesDisplayFilter类提供的功能,指定一系列的字段值(值通过数组存储),那么可以控制与指定字段值匹配对象的显示模式。FieldValuesDisplayMode枚举值可以控制与指定字段值匹配对象的显示模式,,如果该枚举值为DISPLAY,表示,该图层中只有与指定字段值匹配的对象才显示;如果该枚举值为DISABLE,表示该图层中与指定字段值的匹配对象隐藏不显示。

返回:
返回对图层通过字段值进行过滤显示的设置对象。

getParentSnapshot

public LayerSnapshot getParentSnapshot()
返回地图中的被加入到快照图层中的图层对象所处的快照图层对象。

返回:
返回地图中的被加入到快照图层中的图层对象所处的快照图层对象。

fromXML

public boolean fromXML(java.lang.String xml)
根据指定的XML字符串创建图层对象。 任何图层都可以导出成xml字符串,而图层的xml字符串也可以导入成为一个图层来进行显示。图层的xml字符串中存储了关于图层的显示的设置以及关联的数据信息等对图层的所有的设置。可以将图层的xml字符串保存成一个xml文件。

参数:
xml - 用来创建图层的XML字符串。
返回:
创建成功则返回true,否则返回false。

toXML

public java.lang.String toXML()
返回此图层对象的 XML字符串形式的描述。 任何图层都可以导出成xml字符串,而图层的xml字符串也可以导入成为一个图层来进行显示。图层的xml字符串中存储了关于图层的显示的设置以及关联的数据信息等对图层的所有的设置。可以将图层的xml字符串保存成一个xml文件。

返回:
返回此图层对象的 XML字符串形式的描述。

IsTimeFilterEnable

public boolean IsTimeFilterEnable()
返回是否启用该图层的时间过滤显示功能,true表示启用,相关时间设置才有效。默认值为false,表示不启用。

图层的时间相关设置主要用于时态数据的播放显示,播放显示由Map对象实现。地图播放显示时态数据的实质是通过时间过滤条件过滤显示对象,具体参见下文。

首先,在Map对象中指定播放数据的时间范围(时间线起止时间)、时间步长间隔、时间窗,并可以根据这些设置参数计算获得当前地图播放时态数据的总帧数。

然后,确定地图当前帧显示的对象内容:

1.确定地图显示的当前帧(Map.getCurrentPlayerTick());

2.根据时间步长间隔(Map.getTimeStep())、时间窗(Map.getTimeWindow())、时间线起始时间(Map.getMapStartTime()Map.getMapEndTime()),计算当前帧的起止时间;

3.当前帧的起止时间传入启用时间的Layer对象,即分别赋值给Layer.setTimeFilterStarting()Layer.setTimeFilterEnding()

4.根据Layer对象的getTimeFilterStarting()getTimeFilterEnding()返回值,构成时间过滤条件(getTimeFilterStarting(),getTimeFilterEnding()]来过滤显示图层对象,具体为:判断图层对象时间值构成的时间区间[getStartTimeField(),getEndTimeField()]是否与查询时间条件有交集,若有对象显示,否则,对象不显示。

由此,实现Map对象按照某时间序列播放显示时态数据的效果,方便查看数据随时间推移而呈现出的模式或变化趋势。

地图中那些启用时间且可见的图层才能播放显示,并且相关参数的计算也基于这些图层。

返回:
一个布尔值,指示是否启用该图层的时间过滤显示功能,true表示启用,相关时间设置才有效。默认值为false,表示不启用。

setTimeFilterEnable

public void setTimeFilterEnable(boolean bEnable)
设置是否启用该图层的时间过滤显示功能,true表示启用,相关时间设置才有效。默认值为false,表示不启用。

参数:
bEnable - 一个布尔值,指示是否启用该图层的时间过滤显示功能,true表示启用,相关时间设置才有效。默认值为false,表示不启用。

getStartTimeField

public java.lang.String getStartTimeField()
启用时间的时态数据必须具有时间属性,用来表达数据观测的时间或者观测的起始和终止时间,该接口用来返回记录起始时间的字段。

返回:
返回记录起始时间的字段。

setStartTimeField

public void setStartTimeField(java.lang.String strField)
启用时间的时态数据必须具有时间属性,用来表达数据观测的时间或者观测的起始和终止时间,该接口用来设置记录起始时间的字段。

指定的字段必须是日期类型。

该接口用于在地图中播放显示时态数据的功能,具体参见:IsTimeFilterEnable接口备注说明。

如果图层只包含一个时间字段,表示对象的观测时间,那么,setStartTimeField()和setEndTimeField()方法传入的字段都是该字段。

参数:
strField - 记录起始时间的字段,且字段必须是日期类型。

getEndTimeField

public java.lang.String getEndTimeField()
启用时间的时态数据必须具有时间属性,用来表达数据观测的时间或者观测的起始和终止时间,该接口用来返回记录终止时间的字段。

返回:
返回记录终止时间的字段。

setEndTimeField

public void setEndTimeField(java.lang.String strField)
启用时间的时态数据必须具有时间属性,用来表达数据观测的时间或者观测的起始和终止时间,该接口用来设置记录终止时间的字段。

指定的字段必须是日期类型。

该接口用于在地图中播放显示时态数据的功能,具体参见:IsTimeFilterEnable接口备注说明。

如果图层只包含一个时间字段,表示对象的观测时间,那么,setStartTimeField()和setEndTimeField()方法传入的字段都是该字段。

参数:
strField - 记录终止时间的字段,且字段必须是日期类型。

getTimeFilterStarting

public java.util.Date getTimeFilterStarting()
返回图层时间过滤条件的起始时间值。

返回:
返回图层时间过滤条件的起始时间值。

setTimeFilterStarting

public void setTimeFilterStarting(java.util.Date startTime)
设置图层时间过滤条件的起始时间值。

图层时间过滤条件的起止时间值构成了过滤对象的时间范围,对象时间值在此范围内的显示,否则不显示,关于具体如何判断,请参见:IsTimeFilterEnable接口备注说明中第4条。

参数:
startTime -

getTimeFilterEnding

public java.util.Date getTimeFilterEnding()
返回图层时间过滤条件的终止时间值。

返回:
返回图层时间过滤条件的终止时间值。

setTimeFilterEnding

public void setTimeFilterEnding(java.util.Date endTime)
设置图层时间过滤条件的终止时间值。

图层时间过滤条件的起止时间值构成了过滤对象的时间范围,对象时间值在此范围内的显示,否则不显示,关于具体如何判断,请参见:IsTimeFilterEnable接口备注说明中第4条。

参数:
endTime -

getTimeStepInterval

public TimeSpan getTimeStepInterval()
返回时态数据的时间步长间隔。

返回:
返回时态数据的时间步长间隔。

setTimeStepInterval

public void setTimeStepInterval(TimeSpan timeSpan)
设置时态数据的时间步长间隔。

时态数据一般是以固定的时间间隔采集,如每小时或每天。时间步长间隔用于指定时态数据的时间间隔长度。

Layer.getTimeStepInterval()Map.getTimeStep()都表示时间步长间隔,两者的区别在于:

Map.getTimeStep()用于控制地图播放显示时态数据的时间间隔,不管地图中各图层的时间步长间隔(Layer.getTimeStepInterval())的值为多少。

Layer.getTimeStepInterval()可以描述图层对象的采集时间间隔;也可以计算Map.getTimeStep()默认值,计算由Map.getMinTimeStep()方法实现,具体为:若地图中包含多个启用时间的图层,并且各图层的时间步长间隔(Layer.getTimeStepInterval())值不同,Map.getMinTimeStep()方法返回最小的图层时间步长间隔。

参数:
timeSpan - 时态数据的时间步长间隔。

addGridFunction

public int addGridFunction(GridFunctionType type,
                           java.util.Map<java.lang.String,java.lang.String> args)
对栅格图层的函数链中添加新的处理函数。

参数:
type - 要添加的函数类型。
args - 对应函数的参数及参数的值,该参数为Map类型,键值对中键为参数的名称;值即为参数的值。
返回:
添加成功返回新添加的函数在函数链中的索引。索引从0开始计数。

通过栅格函数的方式,对栅格数据应用一些分析处理方式,在访问和查看栅格数据时,这些函数将动态应用到栅格数据,因此,可以快速地展现这些分析处理操作的结果;而通过相应的分析方法实现这些处理任务,处理时间长而且还会产生庞大的处理结果文件。

一个栅格图层数据可以应用多个函数进行处理,这些函数的集合,这里称为函数链,函数链内的函数按照其索引顺序依次作用于栅格图层上。

所支持的函数以及函数需要的参数,请参见:GridFunctionType中有关各函数的描述。


setOverlapGeometryEnabled

public void setOverlapGeometryEnabled(java.lang.Boolean value)
设置矢量数据绘制时,是否过滤重叠小对象,默认值为false,表示不过滤。

参数:
value - 一个布尔值,指示矢量数据绘制时,是否过滤重叠小对象,默认值为false,表示不过滤。
  • 什么是重叠小对象?

    对象的Bounds的长宽同时小于重叠小对象阈值(Layer.getOverlapGeometryThreshold),该对象被视为小对象。重叠小对象阈值的有效范围为[1,10],单位为像素。而重叠小对象是在指定的单位像素区域 (一个正方形区域,正方形边长等于Layer.getOverlapGeometryPixel返回值),若该区域内绘制了多个小对象(小对象Bounds的中心点在这个正方形区域,则认为该小对象绘制在了该区域内。),就认为这些小对象为重叠小对象。单位像素区域的有效范围为[1,10],单位为像素。

  • 过滤重叠小对象

    过滤重叠小对象,是指在绘制图层中的小对象时,单位像素区域只进行一次绘制,因此,该区域只会显示一个小对象,其他重叠小对象不显示。通过下面的示意图,可以帮助您理解过滤小对象功能。

    假设:重叠小对象阈值设置为8像素,Bounds长和宽都小于8像素的对象参与过滤;指定单位像素区域为边长8像素的正方形区域,单位像素区域的起算点为地图窗口左上角点。如图3所示,基于设定的单位像素区域,对地图窗口划分了规则的格网,以绘制图中第2行第2列区域的对象为例,假设标记紫色箭头的对象先于标记红色箭头对象绘制,当绘制紫色箭头所指对象时,判断该对象为小对象,中心点位于正方形区域内,并且判断该正方形区域没有绘制其他小对象,则该小对象保持显示,同时,标记该区域已绘制了小对象;当绘制红色箭头所指的对象时,该对象也为小对象,中心点在正方形区域内,但是该区域已经标记有小对象绘制,所以该对象不显示。

  • 图1 未过滤重叠小对象

    图2 过滤重叠小对象(重叠小对象阈值=8,单位像素区域=8

    图3 过滤重叠小对象的过程示意图

    过滤重叠小对象可以降低大量小对象在小比例尺下的显示耗时。过滤重叠小对象与通过对象最小尺寸来过滤小对象的区别在于:显示对象的最小尺寸设定后,所有小于这个最小尺寸的对象都将不显示,这会导致地图显示时,小对象集中的大片区域没有对象可显示;而过滤重叠小对象可以保证在单位像素区域内至少有一个小对象显示,避免了小对象集中的大片区域没有对象显示的问题。


isOverlapGeometryEnabled

public boolean isOverlapGeometryEnabled()
返回矢量数据绘制时,是否过滤重叠小对象,默认值为false,表示不过滤。

返回:
一个布尔值,指示矢量数据绘制时,是否过滤重叠小对象,默认值为false,表示不过滤。

关于过滤重叠小对象,请参见:Layer.setOverlapGeometryEnabled接口的备注说明。


setOverlapGeometryThreshold

public void setOverlapGeometryThreshold(double value)
矢量数据绘制时,如果开启了过滤重叠小对象,该方法设置参与过滤的对象的尺寸阈值。阈值的有效范围为[1,10]。

参数:
value - 参与过滤的对象的尺寸阈值。阈值的有效范围为[1,10]。

关于过滤重叠小对象,请参见:Layer.setOverlapGeometryEnabled接口的备注说明。


getOverlapGeometryThreshold

public double getOverlapGeometryThreshold()
矢量数据绘制时,如果开启了过滤重叠小对象,该方法返回参与过滤的对象的尺寸阈值。阈值的有效范围为[1,10]。

返回:
返回参与过滤的对象的尺寸阈值。

关于过滤重叠小对象,请参见:Layer.setOverlapGeometryEnabled接口的备注说明。


setOverlapGeometryPixel

public void setOverlapGeometryPixel(int value)
矢量数据绘制时,如果开启了过滤重叠小对象,该方法设置单位像素区域的大小。单位像素区域的有效范围为[1,10],单位像素区域的大小。

参数:
value - 指定单位像素区域的大小,该值得的有效范围为[1,10],单位像素区域的大小。

关于过滤重叠小对象,请参见:Layer.setOverlapGeometryEnabled接口的备注说明。


getOverlapGeometryPixel

public int getOverlapGeometryPixel()
矢量数据绘制时,如果开启了过滤重叠小对象,该方法返回单位像素区域的大小。单位像素区域的有效范围为[1,10],单位像素区域的大小。

返回:
返回单位像素区域的大小,该值得的有效范围为[1,10],单位像素区域的大小。

关于过滤重叠小对象,请参见:Layer.setOverlapGeometryEnabled接口的备注说明。


isOverlapDisplayed

public boolean isOverlapDisplayed()
返回是否显示压盖对象。true 为显示压盖对象,false 为不显示压盖对象。

返回:
一个布尔值,指示是否显示压盖对象。true 为显示压盖对象,false 为不显示压盖对象。

setOverlapDisplayed

public void setOverlapDisplayed(boolean value)
设置是否显示压盖对象。true 为显示压盖对象,false 为不显示压盖对象。

参数:
value - 一个布尔值,指示是否显示压盖对象。true 为显示压盖对象,false 为不显示压盖对象。

setDeduplicateThreshold

public void setDeduplicateThreshold(int value)
设置开启线面抽稀显示时的抽稀阈值,阈值表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。

参数:
value - 抽稀阈值,表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。

关于线面图层的抽稀显示,请参见:Layer.setDeduplicateEnabled接口的备注说明。


getDeduplicateThreshold

public int getDeduplicateThreshold()
返回开启线面抽稀显示时的抽稀阈值,阈值表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。

返回:
返回抽稀阈值。

关于线面图层的抽稀显示,请参见:Layer.setDeduplicateEnabled接口的备注说明。


setDeduplicateTolerance

public void setDeduplicateTolerance(double value)
设置开启线面抽稀显示时的抽稀容限,单位为像素。抽稀容限用来限定一个正方形像素区域,正方形边长等于2倍的抽稀容限。当开启抽稀显示时,正方形区域内将只保留显示一个有效节点。

参数:
value - 抽稀容限,单位为像素。抽稀容限用来限定一个正方形像素区域,正方形边长等于2倍的抽稀容限。当开启抽稀显示时,正方形区域内将只保留显示一个有效节点。

关于线面图层的抽稀显示,请参见:Layer.setDeduplicateEnabled接口的备注说明。


getDeduplicateTolerance

public double getDeduplicateTolerance()
返回开启线面抽稀显示时的抽稀容限,单位为像素。抽稀容限用来限定一个正方形像素区域,正方形边长等于2倍的抽稀容限。当开启抽稀显示时,正方形区域内将只保留显示一个有效节点。

返回:
返回抽稀容限,单位为像素。抽稀容限用来限定一个正方形像素区域,正方形边长等于2倍的抽稀容限。当开启抽稀显示时,正方形区域内将只保留显示一个有效节点。

关于线面图层的抽稀显示,请参见:Layer.setDeduplicateEnabled接口的备注说明。


setDeduplicateEnabled

public void setDeduplicateEnabled(java.lang.Boolean value)
设置是否启用线面绘制时去重复抽稀功能。

参数:
value - 一个布尔值,指示线面绘制时。是否启用去重复抽稀功能,true表示启用;false表示不启用。

小比例尺下的数据显示时,对于节点较多的对象,此时节点就显得过于密集,若能在不改变对象形状特征的前提下,降低节点密集度,在一定程度上可以显著提升地图的显示效率。抽稀显示(关联接口:Layer.setDeduplicateEnabled、Layer.setDeduplicateThreshold、Layer.setDeduplicateTolerance),可以在不改变原始数据的条件下,在显示时,对线面对象的节点进行抽稀,实现地图显示性能的提升。

  • 开启抽稀显示后,根据抽稀阈值和抽稀容限的设置(Layer.setDeduplicateThreshold和Layer.setDeduplicateTolerance)可以不同程度地提升图层的显示效率。
  • 抽稀阈值,表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。
  • 抽稀容限,控制对象的抽稀程度,单位为像素。抽稀容限用来限定一个正方形像素区域,正方形边长等于2倍的抽稀容限。当开启抽稀显示时,正方形区域内将只保留显示一个有效节点,具体抽稀流程如下:
  • 首先,以抽稀显示对象的第一个节点为中心,以2倍的抽稀容限(Layer.getDeduplicateTolerance)为边长确定正方形区域,如下图所示,只保留显示该节点,区域内的其他节点不显示;然后,找到下一个节点,再以该节点为中心,确定正方形区域,在该区域内的其他节点也将不显示,依次类推,完成对象的抽稀显示。

    请您根据图层显示比例尺的情况,合理设置抽稀容限,容限过大会产生明显的对象形变,容限过小又无法达到显示性能的提升。抽稀阈值默认为500,抽稀容限默认为0.5像素。


isDeduplicateEnabled

public boolean isDeduplicateEnabled()
返回是否启用线面绘制时去重复抽稀功能。

返回:
一个布尔值,指示线面绘制时。是否启用去重复抽稀功能,true表示启用;false表示不启用。

关于线面图层的抽稀显示,请参见:Layer.setDeduplicateEnabled接口的备注说明。