类 Layer
- java.lang.Object
-
- com.supermap.data.InternalHandle
-
- com.supermap.mapping.Layer
-
- 直接已知子类:
- LayerCache, LayerChart, LayerChartS102, LayerChartSub, LayerDynamicAggregation, LayerEPS, LayerExtensionBase, LayerGridAggregation, LayerGroup, LayerHeatmap, LayerMaritimeS100Vector, LayerMaritimeS100VectorGroup, LayerMosaic, LayerRegionalAggregation
public class Layer extends com.supermap.data.InternalHandle图层类。
该类提供了图层显示和控制等的便于地图管理的一系列方法。当数据集被加载到地图窗口中显示时,就形成了一个图层,因此图层是数据集的可视化显示。一个图层是对一个数据集的引用或参考。通过对可视化的图层的编辑,可以对相应的数据集的要素进行编辑。一个图层或多个图层叠加显示则形成了地图。图层分为普通图层和专题图层,矢量的普通图层中所有要素采用相同的渲染风格,栅格图层采用颜色表来显示其像元;而专题图层的则采用指定类型的专题图风格来渲染其中的要素或像元。影像数据只对应普通图层。普通图层的风格通过
getAdditionalSetting()和setAdditionalSetting()方法来返回或设置,而专题图层的专题风格则通过getTheme()来返回。该类型提供了对图层的显示,选择,编辑,捕捉等状态的控制方法,同时也提供了图层显示的设置方法,如最大和最小显示比例尺以及过滤条件等。
-
-
构造器概要
构造器 构造器和说明 Layer()构造一个新的Layer对象。
-
方法概要
所有方法 静态方法 实例方法 具体方法 已过时的方法 限定符和类型 方法和说明 voidaddCaptionChangedListener(LayerCaptionChangedListener l)已过时。voidaddEditableChangedListener(LayerEditableChangedListener l)已过时。voidaddElementDrawingListener(ElementDrawingListener l)添加一个用于接收元素绘制事件(ElementDrawingEvent)的监听器。intaddGridFunction(GridFunctionType type, Map<String,String> args)对栅格图层的函数链中添加新的处理函数。voidaddSelectableChangedListener(LayerSelectableChangedListener l)已过时。voidaddSnapableChangedListener(LayerSnapableChangedListener l)已过时。voidaddVisibleChangedListener(LayerVisibleChangedListener l)已过时。static LayerTypecheckLayerSubType(Dataset dataset)voidclearThemeElementPositions()清空所有的自定义位置,清空后专题图的绘制将按照默认的位置来完成。LayerfindLayer(String layerName)根据给定的图层名称获取图层。booleanfromXML(String xml)根据指定的XML字符串创建图层对象。LayerSettinggetAdditionalSetting()返回普通图层的风格设置。BlendModegetBlendMode()Rectangle2DgetBounds()获取图层的范围。StringgetCaption()返回图层的标题。GeoRegiongetClipRegion()返回图层的裁剪区域。DatasetgetDataset()返回此图层对应的数据集对象。intgetDeduplicateThreshold()返回开启线面抽稀显示时的抽稀阈值,阈值表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。doublegetDeduplicateTolerance()返回开启线面抽稀显示时的抽稀容限,单位为像素。StringgetDescription()返回此图层的描述信息。LayergetDisplayControledLayer()返回与当前图层建立绑定关系的图层对象。QueryParametergetDisplayFilter()返回图层显示过滤条件。StringgetDisplayFilterStr()获取用于显示的图层过滤表达式原始字符串(仅用于显示,不影响过滤)LayerExtensionPlugingetExtensionPlugin()Map<String,Object>getExtensionUserInfo()StringgetExternalInfo()获取图层自定义信息(JSON 格式),根级键为公司名.产品名(如 {"supermap.idesktopx":{}}),其中 supermap.idesktopx是SuperMap iDesktopX专用根级键,hiddenFields为SuperMap iDesktopX 用于存储关键信息的其他根级键,均不可修改。FieldValuesDisplayFiltergetFieldValuesDisplayFilter()返回对图层通过字段值进行过滤显示的设置对象。FillMarkerOrderModegetFillMarkerOrder()返回图层的填充模式。Map<String,String>getGridFunctionArgs(int index)GridFunctionTypegetGridFunctionType(int index)intgetGridFunctonCount()intgetLayerWeight()获取图层权重。MapgetMap()doublegetMaxVisibleScale()返回此图层的最大可见比例尺。doublegetMinVisibleGeometrySize()返回几何对象的最小可见大小,以像素为单位,默认值为 0.4。doublegetMinVisibleScale()返回此图层的最小可见比例尺。StringgetName()返回图层的名称。intgetOpaqueRate()返回图层的不透明度。intgetOverlapGeometryPixel()矢量数据绘制时,如果开启了过滤重叠小对象,该方法返回单位像素区域的大小。doublegetOverlapGeometryThreshold()矢量数据绘制时,如果开启了过滤重叠小对象,该方法返回参与过滤的对象的尺寸阈值。LayerGroupgetParentGroup()返回当前图层所在图层分组。LayerSnapshotgetParentSnapshot()返回地图中的被加入到快照图层中的图层对象所处的快照图层对象。StringgetRepresentationField()返回存储制图表达信息的字段。SelectiongetSelection()返回此图层中的选择集对象。DatasourceConnectionInfogetSource()LayerTypegetSubLayerType()static LayerTypegetSubType(long layerHndle)SymbolLayerDrawinggetSymbolLayerDrawing()获取图层的符号图层绘制方案,即图层分层渲染几何对象符号的方案。doublegetSymbolScale()返回图层的符号缩放基准比例尺。ThemegetTheme()返回专题图层的专题图对象,针对专题图层。Point2DgetThemeElementPosition(int geometryID)根据给定的几何对象的 ID,获取该几何对象所对应的专题元素的自定义位置。StringgetTimeEndField()DategetTimeFilterEnding()返回图层时间过滤条件的终止时间值。DategetTimeFilterStarting()返回图层时间过滤条件的起始时间值。StringgetTimeStartField()TimeSpangetTimeStepInterval()返回时态数据的时间步长间隔。String[]getValueExpressions()返回字段表达式定义的值。SelectionhitTest(Point2D point, double tolerance)返回选中的对象的集合。booleanhitTest(Point2D pt, double tolerance, ArrayList<GeoText> testResult)返回选中的专题元素。booleanhitTest(Point2D pt, double tolerance, String resultExpression, ArrayList<GeoText> testResult)返回选中的专题元素。booleanhitTestGeoCompound(Point2D pt, double tolerance, String resultExpression, ArrayList<GeoCompound> testResult)返回选中的专题元素。booleanisAntialias()返回图层是否开启反走样。booleanisClipRegionEnabled()返回裁剪区域是否有效。booleanisCompleteLineSymbolDisplayed()返回是否显示完整线型。booleanisCrossroadOptimized()返回是否进行十字路口优化。BooleanisDeduplicateEnabled()返回是否启用线面绘制时去重复抽稀功能。booleanisDiposed()已过时。booleanisDisposed()返回对象是否已被释放。booleanisEditable()返回图层是否处于可编辑状态。booleanisFullLabelEnabled()booleanisInteroperable()已过时。booleanisLayerCacheEnabled()booleanisModified()booleanisOverlapDisplayed()返回是否显示压盖对象。BooleanisOverlapGeometryEnabled()返回矢量数据绘制时,是否过滤重叠小对象,默认值为false,表示不过滤。booleanisRepresentationEnabled()返回该图层是否采用制图表达。booleanisSelectable()返回图层中对象是否可以选择。booleanisSnapable()返回图层是否可捕捉。booleanisSuperAndSubScript()BooleanisSwipeEnabled()booleanisSymbolScalable()返回图层的符号大小是否随图缩放。booleanIsTimeFilterEnable()返回是否启用该图层的时间过滤显示功能,true表示启用,相关时间设置才有效。booleanisVisible()返回此图层是否可见。booleanisVisibleScale(double dScale)返回指定的比例尺是否为可视比例尺,即在设定的最小显示比例尺和最大显示比例尺之间。voidremoveCaptionChangedListener(LayerCaptionChangedListener l)已过时。voidremoveEditableChangedListener(LayerEditableChangedListener l)已过时。voidremoveElementDrawingListener(ElementDrawingListener l)移除一个用于接收元素绘制事件(ElementDrawingEvent)的监听器。voidremoveGridFunction(int index)voidremoveSelectableChangedListener(LayerSelectableChangedListener l)已过时。voidremoveSnapableChangedListener(LayerSnapableChangedListener l)已过时。booleanremoveThemeElementPosition(int geometryID)根据给定的几何对象的 ID,清除该几何对象所对应的专题元素的自定义位置,清除后该专题元素采用默认的位置。voidremoveVisibleChangedListener(LayerVisibleChangedListener l)已过时。booleanresetSymbolLayerDrawingGroups()重置图层的符号图层绘制方案为初始化方案,关于符号图层绘制初始化方案,请参见SymbolLayerDrawing类描述。voidsetAdditionalSetting(LayerSetting layerSetting)设置普通图层的风格。voidsetAntialias(boolean value)设置图层是否开启反走样。voidsetBlendMode(BlendMode mode)voidsetCaption(String value)设置图层的标题。voidsetClipRegion(GeoRegion geoRegion)设置图层的裁剪区域。voidsetClipRegionEnabled(boolean value)设置裁剪区域是否有效。voidsetCompleteLineSymbolDisplayed(boolean value)设置是否显示完整线型。voidsetCrossroadOptimized(boolean value)设置是否进行十字路口优化 。voidsetDataset(Dataset dataset)设置此图层对应的数据集对象。voidsetDeduplicateEnabled(Boolean value)设置是否启用线面绘制时去重复抽稀功能。voidsetDeduplicateThreshold(int value)设置开启线面抽稀显示时的抽稀阈值,阈值表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。voidsetDeduplicateTolerance(double value)设置开启线面抽稀显示时的抽稀容限,单位为像素。voidsetDescription(String value)设置此图层的描述信息。booleansetDisplayControledLayer(Layer layer)设置被当前图层控制显示的图层,即指定图层与当前图层建立一种绑定关系,指定的图层将会与当前的图层显示相同的对象。voidsetDisplayFilter(QueryParameter queryParameter)设置图层显示过滤条件。voidsetDisplayFilterStr(String value)设置用于显示的图层过滤表达式原始字符串(仅用于显示,不影响过滤)voidsetEditable(boolean value)设置图层是否处于可编辑状态。voidsetExtensionUserInfo(Map<String,Object> map)voidsetExternalInfo(String value)设置图层自定义信息(JSON 格式)。voidsetFillMarkerOrder(FillMarkerOrderMode value)设置图层的填充模式。voidsetFullLabelEnabled(boolean value)voidsetInteroperable(boolean isInteroperable)已过时。voidSetLayerCacheEnabled(boolean value)voidSetLayerCacheRefresh()voidsetLayerWeight(int value)设置图层权重。voidsetMaxVisibleScale(double value)设置此图层的最大可见比例尺。voidsetMinVisibleGeometrySize(double value)设置几何对象的最小可见大小,以像素为单位,默认值为0.4。voidsetMinVisibleScale(double value)设置此图层的最小可见比例尺。voidsetModified(boolean value)voidsetOpaqueRate(int value)设置图层的不透明度。voidsetOverlapDisplayed(boolean value)设置是否显示压盖对象。voidsetOverlapGeometryEnabled(Boolean value)设置矢量数据绘制时,是否过滤重叠小对象,默认值为false,表示不过滤。voidsetOverlapGeometryPixel(int value)矢量数据绘制时,如果开启了过滤重叠小对象,该方法设置单位像素区域的大小。voidsetOverlapGeometryThreshold(double value)矢量数据绘制时,如果开启了过滤重叠小对象,该方法设置参与过滤的对象的尺寸阈值。voidsetRepresentationEnabled(boolean value)设置该图层是否采用制图表达。voidsetRepresentationField(String value)设置存储制图表达信息的字段。voidsetSelectable(boolean value)设置图层中对象是否可以选择。voidsetSelection(Selection selection)设置此图层中的选择集对象。voidsetSnapable(boolean value)设置图层是否可捕捉。voidsetSource(DatasourceConnectionInfo info, String datasetName)根据数据集连接信息设置此图层对应的数据集对象。voidsetSource(String filePath, Map<String,String> imageReaderParameter, ElevationData elevationData, String rpcPath, boolean isObjectSpace)根据影像文件设置此图层对应的数据集对象。voidsetSuperAndSubScript(boolean value)voidsetSwipeEnabled(Boolean value)voidsetSymbolScalable(boolean value)设置图层的符号大小是否随图缩放。voidsetSymbolScale(double value)设置图层的符号缩放基准比例尺。voidsetThemeElementPosition(int geometryID, Point2D position)根据给定的几何对象的 ID 和地理位置坐标,设置该几何对象所对应的专题元素的自定义位置。voidsetTimeEndField(String strField)voidsetTimeFilterEnable(boolean bEnable)设置是否启用该图层的时间过滤显示功能,true表示启用,相关时间设置才有效。voidsetTimeFilterEnding(Date endTime)设置图层时间过滤条件的终止时间值。voidsetTimeFilterStarting(Date startTime)设置图层时间过滤条件的起始时间值。voidsetTimeStartField(String strField)voidsetTimeStepInterval(TimeSpan timeSpan)设置时态数据的时间步长间隔。voidsetValueExpressions(String[] value)设置字段表达式定义的值。voidsetVisible(boolean value)设置此图层是否可见。Geometry[]themeSymbolsToGeometries(Recordset recordset)将专题图的点符号转换为 Geometry 对象。Geometry[]themeSymbolsToGeometrys(Recordset recordset)已过时。DatasetVectorthemeToDatasetVector(Datasource datasource, String datasetName)将专题图转换为 CAD 数据集。StringtoXML()返回此图层对象的 XML字符串形式的描述。
-
-
-
方法详细资料
-
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 表示无效。
-
getName
public String getName()
返回图层的名称。图层的名称在图层所在的地图中唯一标识此图层。该标识不区分大小写。- 返回:
- 图层的名称。
-
getCaption
public String getCaption()
返回图层的标题。图层的标题为图层的显示名称,例如在图例或排版制图时显示的图层的名称即为图层的标题。注意与图层的名称相区别。- 返回:
- 图层的标题。
-
setCaption
public void setCaption(String value)
设置图层的标题。图层的标题为图层的显示名称,例如在图例或排版制图时显示的图层的名称即为图层的标题。注意与图层的名称相区别。- 参数:
value- 指定图层的标题。
-
getDescription
public String getDescription()
返回此图层的描述信息。- 返回:
- 此图层的描述信息。
- 默认值:
- 默认值为一个空字符串。
-
setDescription
public void setDescription(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()
返回普通图层的风格设置。普通图层风格的设置对矢量数据图层,栅格数据图层以及影像数据图层是不相同的。LayerSettingVector,LayerSettingGrid,LayerSettingImage类分别用来对矢量数据图层,栅格数据图层和影像数据图层的风格进行设置和修改。- 返回:
- 普通图层的风格设置。
- 示范代码:
- 以下代码示范了通过判断当前图层的类型,有针对性的制作专题图。
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)
设置普通图层的风格。普通图层风格的设置对矢量数据图层,栅格数据图层以及影像数据图层是不相同的。LayerSettingVector,LayerSettingGrid,LayerSettingImage类分别用来对矢量数据图层,栅格数据图层和影像数据图层的风格进行设置和修改。- 参数:
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- 指定图层是否可见。
-
isAntialias
public boolean isAntialias()
返回图层是否开启反走样。- 返回:
- 一个布尔值,指示图层是否开启反走样。true 为开启反走样,false 为不开启。
- 默认值:
- 默认值为 false,即不开启反走样。
-
setAntialias
public void setAntialias(boolean value)
设置图层是否开启反走样。- 参数:
value- 一个布尔值,指示图层是否开启反走样。true 为开启反走样,false 为不开启。
-
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- 指定几何对象的最小可见大小。
-
isEditable
public boolean isEditable()
返回图层是否处于可编辑状态。该方法控制是否对图层所引用的数据进行修改。当图层为可编辑时,意味着可以对图层所引用的数据进行修改和编辑,通过图层,可以对数据进行可视化的编辑。当你只希望对图层所引用的数据进行渲染或相关分析操作而不希望影响原数据时,建议将图层设置为不可编辑,以免不经意的操作修改了数据。
- 返回:
- 返回图层是否处于可编辑状态。
-
setEditable
public void setEditable(boolean value)
设置图层是否处于可编辑状态。该方法控制是否对图层所引用的数据进行修改。当图层为可编辑时,意味着可以对图层所引用的数据进行修改和编辑,通过图层,可以对数据进行可视化的编辑。当你只希望对图层所引用的数据进行渲染或相关分析操作而不希望影响原数据时,建议将图层设置为不可编辑,以免不经意的操作修改了数据。
- 参数:
value- 图层是否处于可编辑状态。
-
getValueExpressions
public String[] getValueExpressions()
返回字段表达式定义的值。 该值在触发元素绘制事件参数类(ElementDrawingEvent)时,由该事件参数类(ElementDrawingEvent)提取到的一系列字段表达式。通过ElementDrawingEvent.getValues()方法返回对应的字段值。- 返回:
- 返回字段表达式定义的值。
-
setValueExpressions
public void setValueExpressions(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- 图层的不透明度。
-
setFillMarkerOrder
public void setFillMarkerOrder(FillMarkerOrderMode value)
设置图层的填充模式。FillMarkerOrderMode.GeometryTopLeft表示从单个几何对象的左上角进行填充;FillMarkerOrderMode.LayerTopLeft表示从整个图层的左上角进行填充。- 参数:
value- 图层的填充模式。
-
getFillMarkerOrder
public FillMarkerOrderMode getFillMarkerOrder()
返回图层的填充模式。FillMarkerOrderMode.GeometryTopLeft表示从单个几何对象的左上角进行填充;FillMarkerOrderMode.LayerTopLeft表示从整个图层的左上角进行填充。- 返回:
- 返回图层的填充模式。
- 默认值:
- 默认值为
FillMarkerOrderMode.GeometryTopLeft。
-
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(); }
-
getBounds
public Rectangle2D getBounds()
获取图层的范围。
-
clearThemeElementPositions
public void clearThemeElementPositions()
清空所有的自定义位置,清空后专题图的绘制将按照默认的位置来完成。
-
hitTest
public boolean hitTest(Point2D pt, double tolerance, 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.ArrayListresult = new java.util.ArrayList (); // 返回选中的专题元素 layer.hitTest(hitPoint, tolerance, result); // 释放资源 mapControl.dispose(); recordset.dispose(); workspace.dispose(); }
-
hitTest
public boolean hitTest(Point2D pt, double tolerance, String resultExpression, ArrayList<GeoText> testResult)
返回选中的专题元素。若指定的点与专题元素上最近点的距离是在指定的容限范围,则该专题元素被选中。目前只支持标签专题图,- 参数:
pt- 要测试的点。tolerance- 指定的容限。resultExpression- 指定的字段表达式,设置该字段表达式之后可以,可以从结果中取到特定的专题元素对应的几何对象的相关数据。testResult- 用于存储该方法得到的专题图元素,在没有得到满足条件的对象时,该参数对象的长度为 0,该参数不能为 null。- 返回:
- 返回是否得到了专题图元素,true 表示通过该方法得到了专题元素。
-
hitTestGeoCompound
public boolean hitTestGeoCompound(Point2D pt, double tolerance, String resultExpression, ArrayList<GeoCompound> testResult)
返回选中的专题元素。若指定的点与专题元素上最近点的距离是在指定的容限范围,则该专题元素被选中。目前支持统计,标签专题图。- 参数:
pt- 要测试的点。tolerance- 指定的容限。resultExpression- 指定的字段表达式,设置该字段表达式之后可以,可以从结果中取到特定的专题元素对应的几何对象的相关数据。testResult- 用于存储该方法得到的专题图元素,在没有得到满足条件的对象时,该参数对象的长度为 0,该参数不能为 null。- 返回:
- 返回是否得到了专题图元素,true 表示通过该方法得到了专题元素。
-
hitTest
public Selection hitTest(Point2D point, double tolerance)
返回选中的对象的集合。若指定的点与对象上最近点的距离在指定容限范围的范围内,则该对象被选中。如果地图上有多个重叠的对象都满足条件,则都被选中,并返回多个对象。支持所有专题图图层和矢量图层。- 参数:
point- 要测试的点。tolerance- 指定的容限。- 返回:
- 返回被选中的对象的集合。
-
isVisibleScale
public boolean isVisibleScale(double dScale)
返回指定的比例尺是否为可视比例尺,即在设定的最小显示比例尺和最大显示比例尺之间。- 参数:
dScale- 指定的显示比例尺。- 返回:
- 返回 true,表示指定的比例尺为可视比例尺;否则为 false。
-
getRepresentationField
public String getRepresentationField()
返回存储制图表达信息的字段。什么是制图表达?
制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。
设置矢量数据集中的几何对象的制图表达信息是通过
Recordset类中的相关方法实现的,利用Recordset类中的相关方法可以将制图表达信息写入数据集中指定的用于存储制图表达信息的字段。当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer 对象的
Layer.setRepresentationField()方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息 。- 返回:
- 返回存储制图表达信息的字段。
-
setRepresentationField
public void setRepresentationField(String value)
设置存储制图表达信息的字段。什么是制图表达?
制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。
设置矢量数据集中的几何对象的制图表达信息是通过
Recordset类中的相关方法实现的,利用Recordset类中的相关方法可以将制图表达信息写入数据集中指定的用于存储制图表达信息的字段。当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer 对象的
Layer.setRepresentationField()方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息 。- 参数:
value- 存储制图表达信息的字段。
-
isRepresentationEnabled
public boolean isRepresentationEnabled()
返回该图层是否采用制图表达。- 返回:
- 该图层采用制图表达返回 true;否则返回 false。
-
setRepresentationEnabled
public void setRepresentationEnabled(boolean value)
设置该图层是否采用制图表达。- 参数:
value- 一个布尔值指定该图层是否采用制图表达。
-
themeToDatasetVector
public DatasetVector themeToDatasetVector(Datasource datasource, String datasetName)
将专题图转换为 CAD 数据集。- 如果没有专题图,该方法不起作用;
- 当
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(); }
-
themeSymbolsToGeometrys
@Deprecated public Geometry[] themeSymbolsToGeometrys(Recordset recordset)
已过时。
-
themeSymbolsToGeometries
public Geometry[] themeSymbolsToGeometries(Recordset recordset)
将专题图的点符号转换为 Geometry 对象。- 参数:
recordset- 需要转换为 Geometry 对象的专题图点符号的记录集。- 返回:
- 返回专题图的点符号转换为 Geometry 对象后的 Geometry 数组。
-
isDiposed
@Deprecated public boolean isDiposed()
已过时。
-
isDisposed
public boolean isDisposed()
返回对象是否已被释放。若为 true时,操作该类的其他方法,都会抛出异常,意味着对象已被释放。- 返回:
- 对象已经被释放,返回 true;否则返回 false。
-
addElementDrawingListener
public void addElementDrawingListener(ElementDrawingListener l)
添加一个用于接收元素绘制事件(ElementDrawingEvent)的监听器。在绘制专题图的元素或绘制几何对象时会触发该事件,可以通过该事件来完成自定义专题图元素的绘制,或是修改图层的默认绘制。
- 参数:
l- 一个用于接收元素绘制事件的监听器。
-
removeElementDrawingListener
public void removeElementDrawingListener(ElementDrawingListener l)
移除一个用于接收元素绘制事件(ElementDrawingEvent)的监听器。在绘制专题图的元素或绘制几何对象时会触发该事件,可以通过该事件来完成自定义专题图元素的绘制,或是修改图层的默认绘制。
- 参数:
l- 一个用于接收元素绘制事件的监听器。
-
addCaptionChangedListener
@Deprecated public void addCaptionChangedListener(LayerCaptionChangedListener l)
已过时。
-
removeCaptionChangedListener
@Deprecated public void removeCaptionChangedListener(LayerCaptionChangedListener l)
已过时。
-
addSelectableChangedListener
@Deprecated public void addSelectableChangedListener(LayerSelectableChangedListener l)
已过时。
-
removeSelectableChangedListener
@Deprecated public void removeSelectableChangedListener(LayerSelectableChangedListener l)
已过时。
-
addEditableChangedListener
@Deprecated public void addEditableChangedListener(LayerEditableChangedListener l)
已过时。
-
removeEditableChangedListener
@Deprecated public void removeEditableChangedListener(LayerEditableChangedListener l)
已过时。
-
addVisibleChangedListener
@Deprecated public void addVisibleChangedListener(LayerVisibleChangedListener l)
已过时。
-
removeVisibleChangedListener
@Deprecated public void removeVisibleChangedListener(LayerVisibleChangedListener l)
已过时。
-
addSnapableChangedListener
@Deprecated public void addSnapableChangedListener(LayerSnapableChangedListener l)
已过时。
-
removeSnapableChangedListener
@Deprecated public void removeSnapableChangedListener(LayerSnapableChangedListener l)
已过时。
-
isCrossroadOptimized
public boolean isCrossroadOptimized()
返回是否进行十字路口优化。- 返回:
- 一个布尔值,使用十字路口优化则返回true,否则返回false。
- 默认值:
- 默认值为 false。
-
setCrossroadOptimized
public void setCrossroadOptimized(boolean value)
设置是否进行十字路口优化 。- 参数:
value- true 为使用十字路口优化,false 为不使用十字路口优化。
-
setExternalInfo
public void setExternalInfo(String value)
设置图层自定义信息(JSON 格式)。- 参数:
value- 自定义信息(JSON 格式),根级键为公司名.产品名(如 {"supermap.idesktopx":{}}),其中 supermap.idesktopx是SuperMap iDesktopX专用根级键,hiddenFields为SuperMap iDesktopX 用于存储关键信息的其他根级键,均不可修改。
-
getExternalInfo
public String getExternalInfo()
获取图层自定义信息(JSON 格式),根级键为公司名.产品名(如 {"supermap.idesktopx":{}}),其中 supermap.idesktopx是SuperMap iDesktopX专用根级键,hiddenFields为SuperMap iDesktopX 用于存储关键信息的其他根级键,均不可修改。
-
getParentGroup
public LayerGroup getParentGroup()
返回当前图层所在图层分组。- 返回:
-
getParentSnapshot
public LayerSnapshot getParentSnapshot()
返回地图中的被加入到快照图层中的图层对象所处的快照图层对象。- 返回:
- 返回地图中的被加入到快照图层中的图层对象所处的快照图层对象。
-
setDisplayControledLayer
public boolean setDisplayControledLayer(Layer layer)
设置被当前图层控制显示的图层,即指定图层与当前图层建立一种绑定关系,指定的图层将会与当前的图层显示相同的对象。- 参数:
layer- 被当前图层控制显示的图层,这里称为被绑定图层,被绑定的图层必须是以下类型的图层:标签专题图,统计专题图、点密度专题图、等级符号专题图。- 返回:
- 一个布尔值,指示是否绑定成功,true表示成功;false表示失败。只有符合下面的条件才能绑定成功,被绑定的图层必须是标签专题图,统计专题图、点密度专题图或者等级符号专题图;当前图层必须是普通图层、单值专题图、分段专题图或者自定义专题图。
-
getDisplayControledLayer
public Layer getDisplayControledLayer()
返回与当前图层建立绑定关系的图层对象。如果当前图层通过 setDisplayControledLayer() 方法与某个图层建立了绑定关系,那么指定的图层将会与当前的图层显示相同的对象。
- 返回:
- 与当前图层建立绑定关系的图层对象。
-
findLayer
public Layer findLayer(String layerName)
根据给定的图层名称获取图层。- 参数:
layerName- 图层名称。- 返回:
- 返回指定图层名称的图层。
-
getFieldValuesDisplayFilter
public FieldValuesDisplayFilter getFieldValuesDisplayFilter()
返回对图层通过字段值进行过滤显示的设置对象。根据图层对应数据集的指定字段,您可以通过FieldValuesDisplayFilter类提供的功能,指定一系列的字段值(值通过数组存储),那么可以控制与指定字段值匹配对象的显示模式。FieldValuesDisplayMode枚举值可以控制与指定字段值匹配对象的显示模式,,如果该枚举值为DISPLAY,表示,该图层中只有与指定字段值匹配的对象才显示;如果该枚举值为DISABLE,表示该图层中与指定字段值的匹配对象隐藏不显示。
- 返回:
- 返回对图层通过字段值进行过滤显示的设置对象。
-
getSubLayerType
public LayerType getSubLayerType()
-
fromXML
public boolean fromXML(String xml)
根据指定的XML字符串创建图层对象。 任何图层都可以导出成xml字符串,而图层的xml字符串也可以导入成为一个图层来进行显示。图层的xml字符串中存储了关于图层的显示的设置以及关联的数据信息等对图层的所有的设置。可以将图层的xml字符串保存成一个xml文件。- 参数:
xml- 用来创建图层的XML字符串。- 返回:
- 创建成功则返回true,否则返回false。
-
toXML
public String toXML()
返回此图层对象的 XML字符串形式的描述。 任何图层都可以导出成xml字符串,而图层的xml字符串也可以导入成为一个图层来进行显示。图层的xml字符串中存储了关于图层的显示的设置以及关联的数据信息等对图层的所有的设置。可以将图层的xml字符串保存成一个xml文件。- 返回:
- 返回此图层对象的 XML字符串形式的描述。
-
getSubType
public static LayerType getSubType(long layerHndle)
-
addGridFunction
public int addGridFunction(GridFunctionType type, Map<String,String> args)
对栅格图层的函数链中添加新的处理函数。- 参数:
type- 要添加的函数类型。args- 对应函数的参数及参数的值,该参数为Map类型,键值对中键为参数的名称;值即为参数的值。- 返回:
- 添加成功返回新添加的函数在函数链中的索引。索引从0开始计数。
通过栅格函数的方式,对栅格数据应用一些分析处理方式,在访问和查看栅格数据时,这些函数将动态应用到栅格数据,因此,可以快速地展现这些分析处理操作的结果;而通过相应的分析方法实现这些处理任务,处理时间长而且还会产生庞大的处理结果文件。
一个栅格图层数据可以应用多个函数进行处理,这些函数的集合,这里称为函数链,函数链内的函数按照其索引顺序依次作用于栅格图层上。所支持的函数以及函数需要的参数,请参见:
GridFunctionType中有关各函数的描述。
-
removeGridFunction
public void removeGridFunction(int index)
-
getGridFunctionType
public GridFunctionType getGridFunctionType(int index)
-
getGridFunctonCount
public int getGridFunctonCount()
-
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,表示不启用。
-
getTimeStartField
public String getTimeStartField()
-
setTimeStartField
public void setTimeStartField(String strField)
-
getTimeEndField
public String getTimeEndField()
-
setTimeEndField
public void setTimeEndField(String strField)
-
getTimeFilterStarting
public Date getTimeFilterStarting()
返回图层时间过滤条件的起始时间值。- 返回:
- 返回图层时间过滤条件的起始时间值。
-
setTimeFilterStarting
public void setTimeFilterStarting(Date startTime)
设置图层时间过滤条件的起始时间值。图层时间过滤条件的起止时间值构成了过滤对象的时间范围,对象时间值在此范围内的显示,否则不显示,关于具体如何判断,请参见:
IsTimeFilterEnable接口备注说明中第4条。- 参数:
startTime-
-
getTimeFilterEnding
public Date getTimeFilterEnding()
返回图层时间过滤条件的终止时间值。- 返回:
- 返回图层时间过滤条件的终止时间值。
-
setTimeFilterEnding
public void setTimeFilterEnding(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- 时态数据的时间步长间隔。
-
setSwipeEnabled
public void setSwipeEnabled(Boolean value)
-
isSwipeEnabled
public Boolean isSwipeEnabled()
-
setDeduplicateEnabled
public void setDeduplicateEnabled(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接口的备注说明。
-
setDeduplicateTolerance
public void setDeduplicateTolerance(double value)
设置开启线面抽稀显示时的抽稀容限,单位为像素。抽稀容限用来限定一个正方形像素区域,正方形边长等于2倍的抽稀容限。当开启抽稀显示时,正方形区域内将只保留显示一个有效节点。- 参数:
value- 抽稀容限,单位为像素。抽稀容限用来限定一个正方形像素区域,正方形边长等于2倍的抽稀容限。当开启抽稀显示时,正方形区域内将只保留显示一个有效节点。关于线面图层的抽稀显示,请参见:
Layer.setDeduplicateEnabled接口的备注说明。
-
getDeduplicateTolerance
public double getDeduplicateTolerance()
返回开启线面抽稀显示时的抽稀容限,单位为像素。抽稀容限用来限定一个正方形像素区域,正方形边长等于2倍的抽稀容限。当开启抽稀显示时,正方形区域内将只保留显示一个有效节点。- 返回:
- 返回抽稀容限,单位为像素。抽稀容限用来限定一个正方形像素区域,正方形边长等于2倍的抽稀容限。当开启抽稀显示时,正方形区域内将只保留显示一个有效节点。
关于线面图层的抽稀显示,请参见:
Layer.setDeduplicateEnabled接口的备注说明。
-
setDeduplicateThreshold
public void setDeduplicateThreshold(int value)
设置开启线面抽稀显示时的抽稀阈值,阈值表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。- 参数:
value- 抽稀阈值,表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。关于线面图层的抽稀显示,请参见:
Layer.setDeduplicateEnabled接口的备注说明。
-
getDeduplicateThreshold
public int getDeduplicateThreshold()
返回开启线面抽稀显示时的抽稀阈值,阈值表示单个对象的节点数目,当对象的节点数目大于抽稀阈值时进行抽稀显示。- 返回:
- 返回抽稀阈值。
关于线面图层的抽稀显示,请参见:
Layer.setDeduplicateEnabled接口的备注说明。
-
isOverlapDisplayed
public boolean isOverlapDisplayed()
返回是否显示压盖对象。true 为显示压盖对象,false 为不显示压盖对象。- 返回:
- 一个布尔值,指示是否显示压盖对象。true 为显示压盖对象,false 为不显示压盖对象。
-
setOverlapDisplayed
public void setOverlapDisplayed(boolean value)
设置是否显示压盖对象。true 为显示压盖对象,false 为不显示压盖对象。- 参数:
value- 一个布尔值,指示是否显示压盖对象。true 为显示压盖对象,false 为不显示压盖对象。
-
setOverlapGeometryEnabled
public void setOverlapGeometryEnabled(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接口的备注说明。
-
getExtensionPlugin
public LayerExtensionPlugin getExtensionPlugin()
-
isLayerCacheEnabled
public boolean isLayerCacheEnabled()
-
SetLayerCacheEnabled
public void SetLayerCacheEnabled(boolean value)
-
SetLayerCacheRefresh
public void SetLayerCacheRefresh()
-
isModified
public boolean isModified()
-
setModified
public void setModified(boolean value)
-
isFullLabelEnabled
public boolean isFullLabelEnabled()
-
setFullLabelEnabled
public void setFullLabelEnabled(boolean value)
-
getSource
public DatasourceConnectionInfo getSource()
-
setSource
public void setSource(DatasourceConnectionInfo info, String datasetName)
根据数据集连接信息设置此图层对应的数据集对象。- 参数:
info- 数据源连接信息datasetName- 数据集名称- 抛出:
IllegalStateException- 当Layer已经释放时,再次调用该接口时抛出 IllegalStateException 异常。IllegalArgumentException- 当数据源连接信息为空时,或数据源连接信息已经释放时抛出 IllegalArgumentException 异常。- 从以下版本开始:
- 11.2.0
-
setSource
public void setSource(String filePath, Map<String,String> imageReaderParameter, ElevationData elevationData, String rpcPath, boolean isObjectSpace)
根据影像文件设置此图层对应的数据集对象。- 参数:
filePath- 影像文件imageReaderParameter- 影像读取参数elevationData- 高程数据rpcPath- RPC文件, 可以设置RPC文件或RPC文件所在文件夹。isObjectSpace- 是否物方显示. 当设置为True时,则使用 WGS_1984 坐标系下的正射影像显示。设置为false时,则在 平面坐标系 下显示像方影像。- 抛出:
IllegalStateException- 当Layer已经释放时,再次调用该接口时抛出 IllegalStateException 异常。IllegalArgumentException- 当影像文件为空时,或文件不存在时抛出 IllegalArgumentException 异常。NullPointerException- 当影像读取参数为空时抛出 NullPointerException 异常。IllegalArgumentException- 当输入了RPC文件路径时,且RPC文件不存在时抛出 IllegalArgumentException 异常。IllegalArgumentException- 当根据输入的参数构建影像数据集失败时,抛出 IllegalArgumentException 异常。- 从以下版本开始:
- 11.2.0
-
getMap
public Map getMap()
-
getLayerWeight
public int getLayerWeight()
获取图层权重。- 返回:
- 返回权重值。
- 抛出:
IllegalStateException- 当Layer已经释放时,再次调用该接口时抛出 IllegalStateException 异常。
-
setLayerWeight
public void setLayerWeight(int value)
设置图层权重。- 参数:
value- 权重值,范围:[0, 1000]。- 抛出:
IllegalStateException- 当Layer已经释放时,再次调用该接口时抛出 IllegalStateException 异常。
-
setSuperAndSubScript
public void setSuperAndSubScript(boolean value)
-
isSuperAndSubScript
public boolean isSuperAndSubScript()
-
setDisplayFilterStr
public void setDisplayFilterStr(String value)
设置用于显示的图层过滤表达式原始字符串(仅用于显示,不影响过滤)- 参数:
value- 图层过滤表达式原始字符串- 抛出:
IllegalStateException- 当前对象已被释放- 从以下版本开始:
- 11.2
-
getDisplayFilterStr
public String getDisplayFilterStr()
获取用于显示的图层过滤表达式原始字符串(仅用于显示,不影响过滤)- 返回:
- 图层过滤表达式原始字符串
- 抛出:
IllegalStateException- 当前对象已被释放- 从以下版本开始:
- 11.2
-
setBlendMode
public void setBlendMode(BlendMode mode)
-
getBlendMode
public BlendMode getBlendMode()
-
setInteroperable
@Deprecated public void setInteroperable(boolean isInteroperable)
已过时。- 参数:
isInteroperable-- 从以下版本开始:
- 11.3.0
ChartSetting.setS98InteroperableEnable(boolean)
-
isInteroperable
@Deprecated public boolean isInteroperable()
已过时。- 从以下版本开始:
- 11.3.0
ChartSetting.isS98InteroperableEnable()
-
getSymbolLayerDrawing
public SymbolLayerDrawing getSymbolLayerDrawing()
获取图层的符号图层绘制方案,即图层分层渲染几何对象符号的方案。第一次调用该方法将初始化一个符号图层绘制方案并由SymbolLayerDrawing对象返回。
关于符号图层绘制初始化方案,请参见SymbolLayerDrawing类描述。
12.0.0 版本仅线图层支持符号图层绘制,并仅限统一风格图层、单值和分段专题图层。- 返回:
- 返回符号图层绘制方案对象。
- 抛出:
IllegalStateException- 当图层对象已释放。- 从以下版本开始:
- 12.0.0
-
resetSymbolLayerDrawingGroups
public boolean resetSymbolLayerDrawingGroups()
重置图层的符号图层绘制方案为初始化方案,关于符号图层绘制初始化方案,请参见SymbolLayerDrawing类描述。- 返回:
- 如果重置成功返回true,否则返回false。
- 抛出:
IllegalStateException- 当图层对象已释放。- 从以下版本开始:
- 12.0.0
-
-
Copyright © 2021–2025 SuperMap. All rights reserved.