public class TrackingLayer
extends com.supermap.data.InternalHandle
在 SuperMap 中,每个地图窗口都有一个跟踪图层,确切地说,每个地图显示时都有一个跟踪图层。 跟踪图层是一个空白的透明图层,总是在地图各图层的最上层,主要用于在一个处理或分析过程中,临时存放一些图形对象,以及一些文本等。 只要地图显示,跟踪图层就会存在,你不可以删除跟踪图层,也不可以改变其位置。
在 SuperMap 中跟踪图层的作用主要有以下方面:
请注意避免把跟踪图层作为存储大量临时几何对象的容器,如果有大量的临时数据,建议在本地计算机临时目录下(如:c:\temp)创建临时数据源,并在临时数据源中创建相应的临时数据集来保存临时数据。
你可以对跟踪图层进行控制,包括控制跟踪图层是否可显示以及符号是否随图缩放。跟普通图层不同的是,跟踪图层中的对象是不保存的,只是在地图显示时,临时存在内存中。当地图关闭后,跟踪图层中的对象依然存在,相应内存释放掉才会消失,当地图再次被打开后,跟踪图层又显示为一个空白而且透明的图层。
该类提供了对跟踪图层上的几何对象进行添加,删除等管理的方法。并且可以通过设置标签的方式对跟踪图层上的几何对象进行分类,你可以将标签理解为对几何对象的描述,相同用途的几何对象可以具有相同的标签。
限定符和类型 | 方法和说明 |
---|---|
int |
add(Geometry geometry,
String tag)
向当前跟踪图层中添加一个几何对象,并给出其标签信息。
|
boolean |
cancelBulkOperated()
取消本次批量更新并恢复到上次提交点编辑的内容,但可以继续进行批量编辑。
|
boolean |
cancleBulkOperated()
已过时。
|
void |
clear()
清空此跟踪图层中的所有几何对象。
|
boolean |
flushBulkEdit()
批量更新时强制刷新并保存本次批量编辑的数据。
|
Geometry |
get(int index)
返回此跟踪图层中指定索引的几何对象。
|
int |
getCount()
返回当前跟踪图层的几何对象的个数。
|
double |
getSymbolScale()
返回此跟踪图层的符号缩放基准比例尺。
|
String |
getTag(int index)
返回此跟踪图层中指定索引的几何对象的标签。
|
int |
hitTest(Point2D point,
double tolerance)
返回满足条件的几何对象的 ID。
|
int |
indexOf(String tag)
返回第一个与指定标签相同的几何对象所处的索引值。
|
boolean |
isAntialias()
返回一个布尔值指定是否反走样跟踪图层。
|
boolean |
isSymbolScalable()
返回跟踪图层的符号大小是否随图缩放。
|
boolean |
isVisible()
返回此跟踪图层是否可见。
|
boolean |
remove(int index)
在当前跟踪图层中删除指定索引的几何对象。
|
boolean |
set(int index,
Geometry geometry)
将跟踪图层中的指定的索引处的几何对象替换为指定的几何对象,若此索引处原先有其他几何对象,则会被删除。
|
void |
setAntialias(boolean value)
设置一个布尔值指定是否反走样跟踪图层。
|
boolean |
setEditBulk(boolean value)
设置批量更新标志。
|
void |
setSymbolScalable(boolean value)
设置跟踪图层的符号大小是否随图缩放。
|
void |
setSymbolScale(double value)
设置此跟踪图层的符号缩放基准比例尺。
|
boolean |
setTag(int index,
String tag)
设置此跟踪图层中指定索引的几何对象的标签。
|
void |
setVisible(boolean value)
设置此跟踪图层是否可见。
|
public int getCount()
public boolean isVisible()
public void setVisible(boolean value)
value
- 一个布尔值指示此图层是否可见。public boolean isSymbolScalable()
public void setSymbolScalable(boolean value)
value
- 一个布尔值指示跟踪图层的符号大小是否随图缩放。public double getSymbolScale()
更多信息请参见 Layer.getSymbolScale()
和 Layer.setSymbolScale()
方法。
public void setSymbolScale(double value)
更多信息请参见 Layer.getSymbolScale()
和 Layer.setSymbolScale()
方法。
value
- 此跟踪图层的符号缩放基准比例尺。public boolean isAntialias()
文本、线型被设置为反走样后,可以去除一些显示锯齿,使显示更加美观。如图分别为线型和文本反走样前和反走样后的效果对比。
public void setAntialias(boolean value)
文本、线型被设置为反走样后,可以去除一些显示锯齿,使显示更加美观。如图分别为线型和文本反走样前和反走样后的效果对比。
value
- 一个布尔值指定是否反走样跟踪图层。public int add(Geometry geometry, String tag)
geometry
- 要添加的几何对象。tag
- 要添加的几何对象的标签。TextStyle
的示例。public boolean remove(int index)
index
- 要删除的几何对象的索引。public Geometry get(int index)
index
- 要返回的几何对象的索引。public boolean set(int index, Geometry geometry)
index
- 要替换几何对象的索引。geometry
- 用来替换的新 Geometry
对象。public String getTag(int index)
index
- 要返回标签的几何对象的索引。public boolean setTag(int index, String tag)
index
- 要设置标签的几何对象的索引。tag
- 几何对象的新标签。public int indexOf(String tag)
tag
- 需要进行索引检查的标签。public boolean setEditBulk(boolean value)
value
- 批量更新标志public void editBulkTest() { // 建立与 mapControl 关联的工作空间 Workspace workspace = new Workspace(); MapControl mapControl = new MapControl(); //创建地图对象 Map map = mapControl.getMap(); map.setWorkspace(workspace); // 获取数据集 Datasets datasets = workspace.getDatasources().get(0).getDatasets(); DatasetVector dataset = (DatasetVector)datasets.get("ocean"); Recordset recordset = dataset.query("", CursorType.STATIC); //将记录位置移到第一位 recordset.moveFirst(); //将“Ocean”中的记录批量添加到跟踪层 //开始批量添加 map.getTrackingLayer().setEditBulk(true); while(!recordset.isEOF()) { Geometry geometry = recordset.getGeometry(); map.getTrackingLayer().add(geometry,""); geometry.dispose(); recordset.moveNext(); } //批量更新,将本次批量编辑的数据保存 map.getTrackingLayer().flushBulkEdit(); //结束批量添加 map.getTrackingLayer().setEditBulk(false); //释放记录集 recordset.dispose(); }
public boolean flushBulkEdit()
@Deprecated public boolean cancleBulkOperated()
public boolean cancelBulkOperated()
public void clear()
public int hitTest(Point2D point, double tolerance)
point2D
- 要测试的点。tolerance
- 指定的容限。Copyright © 2021–2024 SuperMap. All rights reserved.