public class Layer3Ds
extends com.supermap.data.InternalHandle
该类对一个三维场景中的所有三维图层进行管理。
一个三维场景窗口对应一个三维场景,即一个三维场景窗口中只能显示一个三维场景,一个三维场景相应的有一个三维图层集合, 由三维图层集合负责管理三维场景中显示的所有三维图层。
三维图层集合类提供了三维图层的添加,删除,移动,查找等方法,可以实现向三维场景中添加各种类型的三维图层,将不需要显示在三维场景中的三维图层移除, 查找三维场景中是否包含指定名称的三维图层以及调整三维场景中各个三维图层的叠放次序等。
public void AddLayer3Ds() { // 返回captial、world、ocean矢量数据集 Workspace workspace = new Workspace(); DatasourceConnectionInfo datasourceConnectInfo = new DatasourceConnectionInfo( "D:\\SampleData\\World\\World.udb", "world", ""); Datasource datasource = workspace.getDatasources().open( datasourceConnectInfo); Dataset dataset0 = datasource.getDatasets().get("capital"); Dataset dataset1 = datasource.getDatasets().get("world"); Dataset dataset2 = datasource.getDatasets().get("ocean"); //返回三维场景对象 SceneControl sceneControl = new SceneControl(); sceneControl.getScene().setWorkspace(workspace); //返回三维图层集合对象 Layer3Ds layer3Ds = sceneControl.getScene().getLayers(); //构造三维矢量图层设置对象并进行设置 Layer3DSettingVector layer3DSettingVector = new Layer3DSettingVector(); GeoStyle3D style = new GeoStyle3D(); style.setFillForeColor(Color.PINK); layer3DSettingVector.setStyle(style); //向三维图层集合中添加数据集类型的三维图层 layer3Ds.clear(); layer3Ds.add(dataset0, layer3DSettingVector, true); layer3Ds.add(dataset1, layer3DSettingVector, true); //向三维图层集合中指定位置处插入数据集类型的三维图层 Layer3DDataset layer3DDataset = layer3Ds.insert(2, dataset2, layer3DSettingVector, layer3DType.DATASET); layer3DDataset.updateData(); sceneControl.getScene().refresh(); //释放占用的资源 sceneControl.dispose(); workspace.dispose(); }
限定符和类型 | 方法和说明 |
---|---|
Layer3DDataset |
add(Dataset dataset,
Layer3DSetting layer3DSetting,
boolean addToHead)
向三维图层集合中添加数据集类型的三维图层。
|
Layer3DDataset |
add(Dataset dataset,
Layer3DSetting layer3DSetting,
boolean addToHead,
String layerName)
向三维图层集合中添加数据集类型的三维图层。
|
Layer3DDataset |
add(Dataset dataset,
Theme3D theme3D,
boolean addToHead)
向三维图层集合中添加数据集类型的图层,并以三维专题图的方式显示。
|
Layer3DDataset |
add(Dataset dataset,
Theme3D theme3D,
boolean addToHead,
String layerName)
向三维图层集合中添加数据集类型的图层,并以三维专题图的方式显示。
|
void |
add(Layer3D layer)
将图层添加到当前分组,如果图层属于其他分组,则将从原分组移动到当前分组。
|
Layer3DDatasetTile |
add(Layer3DDatasetTileSetting setting,
boolean addToHead) |
Layer3D |
add(String dataName,
Layer3DType layerType,
boolean addToHead)
向三维图层集合中添加Model、KML、Map或ImageFile 类型的三维图层。
|
Layer3D |
add(String dataName,
Layer3DType layerType,
boolean addToHead,
String layerName)
向三维图层集合中添加Model、KML、Map或ImageFile 类型的三维图层。
|
Layer3D |
add(String dataName,
Layer3DType layerType,
boolean addToHead,
String layerName,
String password)
向3D图层集合中添加 Model,KML,ImageFile,VectorFile 类型的图层,且加载时需要输入生成缓存时指定的密码。
|
Layer3D |
add(String iserverURL,
Layer3DType layerType,
String layerName,
boolean addToHead)
通过iServer数据服务向三维图层集合中添加三维图层对象。
|
Layer3D |
add(String layerName,
Layer3DType layerType,
String userName,
String passWord,
boolean addToHead)
添加在线公共地图。
|
Layer3D |
add(String iserverURL,
Layer3DType layerType,
String sceneName,
String layerName,
String dataName,
boolean addToHead)
通过iServer图层服务向三维图层集合中添加三维图层对象。
|
Layer3D |
add(String iserverURL,
String layerName,
boolean addToHead)
打开Arcgis服务图层。
|
Layer3D |
add(String iserverURL,
String layerName,
String dataName,
double dDPI,
ImageFormatType imageType,
boolean addToHead)
打开天地图服务图层。
|
void |
addLayer3DAddedListener(Layer3DAddedListener l)
添加一个用于接收三维图层添加事件(
Layer3DAddedEvent )的监听器。 |
void |
addLayer3DAlwaysRenderChangedListener(Layer3DAlwaysRenderChangedListener l)
添加一个用于接收三维图层持续渲染状态改变事件(
Layer3DAlwaysRenderChangedEvent )的监听器。 |
void |
addLayer3DCaptionChangedListener(Layer3DCaptionChangedListener l)
添加一个用于接收三维图层标题改变事件(
Layer3DCaptionChangedEvent )的监听器。 |
void |
addLayer3DEditableChangedListener(Layer3DEditableChangedListener l)
添加一个用于接收三维图层可编辑设置改变事件(
Layer3DEditableChangedEvent )的监听器。 |
void |
addLayer3DRemovedListener(Layer3DRemovedListener l)
添加一个用于接收三维图层被删除事件(
Layer3DRemovedEvent )的监听器。 |
void |
addLayer3DSelectableChangedListener(Layer3DSelectableChangedListener l)
添加一个用于接收三维图层可选择设置变化事件(
Layer3DSelectableChangedEvent )的监听器。 |
void |
addLayer3DVisibleChangedListener(Layer3DVisibleChangedListener l)
添加一个用于接收三维图层可视状态改变事件(
Layer3DVisibleChangedEvent )的监听器。 |
Layer3DDataset |
addLayerAR(Dataset dataset,
Layer3DSetting layer3DSetting,
boolean addToHead) |
Layer3DDataset |
addVideo(Dataset dataset,
Layer3DSetting layer3DSetting,
boolean addToHead) |
void |
clear()
从三维图层集中删除所有三维图层。
|
boolean |
contains(String name)
返回此三维图层集合对象是否包含指定名称的三维图层。
|
Layer3D |
get(int index)
返回三维图层集合中指定索引的三维图层对象。
|
Layer3D |
get(String name)
返回三维图层集合中指定名称的三维图层对象。
|
int |
getCount()
返回给定的三维图层集合中三维图层对象的总数。
|
int |
indexOf(String name)
返回此三维图层集合中指定名称的三维图层的索引。
|
Layer3DDataset |
insert(int index,
Dataset dataset,
Layer3DSetting layer3DSetting)
向三维图层集合中指定位置处插入数据集类型的三维图层。
|
Layer3DDataset |
insert(int index,
Dataset dataset,
Layer3DSetting layer3DSetting,
String layerName)
向三维图层集合中指定位置处插入数据集类型的三维图层。
|
Layer3DDataset |
insert(int index,
Dataset dataset,
Theme3D theme3D)
向三维图层集合中指定位置处插入数据集类型的图层,并以三维专题图的方式显示。
|
Layer3DDataset |
insert(int index,
Dataset dataset,
Theme3D theme3D,
String layerName)
向三维图层集合中指定位置处插入数据集类型的图层,并以三维专题图的方式显示。
|
void |
insert(int index,
Layer3D layer)
向三维图层集合中指定位置处插入创建好的三维图层。
|
Layer3D |
insert(int index,
String dataName,
Layer3DType layerType)
向三维图层集合中指定位置处插入 Model、KML、Map 或 ImageFile 类型的三维图层。
|
Layer3D |
insert(int index,
String dataName,
String layerName,
Layer3DType layerType)
向三维图层集合中指定位置处插入 Model、KML、Map 或 ImageFile 类型的三维图层。
|
Layer3D |
insert(int index,
String dataName,
String layerName,
Layer3DType layerType,
String password)
向3D图层集合指定位置插入 Model,KML,ImageFile 或 VectorFile 类型的图层。
|
Layer3DDataset |
insertAR(int index,
Dataset dataset,
Theme3D theme3D) |
boolean |
moveDown(int index)
用于将三维图层集合中指定索引的三维图层往下移动一层。
|
boolean |
moveTo(int sourceIndex,
int targetIndex)
用于将此三维图层集合中的指定索引的三维图层移动到指定的目标索引。
|
boolean |
moveToBottom(int index)
用于将三维图层集合中指定的三维图层移动到最顶层。
|
boolean |
moveToTop(int index)
用于将三维图层集合中指定的三维图层移动到最顶层。
|
boolean |
moveUp(int index)
用于将三维图层集合中指定索引的三维图层往上移动一层。
|
boolean |
remove(int index)
用于从三维图层集合中删除一个指定索引的三维图层。
|
boolean |
remove(String name)
用于从三维图层集合中删除一个指定名称的三维图层。
|
void |
removeLayer3DAddedListener(Layer3DAddedListener l)
删除一个用于接收三维图层添加事件(
Layer3DAddedEvent )的监听器。 |
void |
removeLayer3DAlwaysRenderChangedListener(Layer3DAlwaysRenderChangedListener l)
删除一个用于接收三维图层持续渲染状态改变事件(
Layer3DAlwaysRenderChangedEvent )的监听器。 |
void |
removeLayer3DCaptionChangedListener(Layer3DCaptionChangedListener l)
删除一个用于接收三维图层标题改变事件(
Layer3DCaptionChangedEvent )的监听器。 |
void |
removeLayer3DEditableChangedListener(Layer3DEditableChangedListener l)
删除一个用于接收三维图层可编辑设置改变事件(
Layer3DEditableChangedEvent )的监听器。 |
void |
removeLayer3DRemovedListener(Layer3DRemovedListener l)
删除一个用于接收三维图层被删除事件(
Layer3DRemovedEvent )的监听器。 |
void |
removeLayer3DSelectableChangedListener(Layer3DSelectableChangedListener l)
删除一个用于接收三维图层可选择设置变化事件(
Layer3DSelectableChangedEvent )的监听器。 |
void |
removeLayer3DVisibleChangedListener(Layer3DVisibleChangedListener l)
删除一个用于接收三维图层可视状态改变事件(
Layer3DVisibleChangedEvent )的监听器。 |
public int getCount()
public Layer3D get(int index)
index
- 要查找的三维图层对象的索引。public Layer3D get(String name)
name
- 要查找的三维图层对象的名称。public Layer3DDataset addLayerAR(Dataset dataset, Layer3DSetting layer3DSetting, boolean addToHead)
public Layer3DDataset addVideo(Dataset dataset, Layer3DSetting layer3DSetting, boolean addToHead)
public Layer3DDatasetTile add(Layer3DDatasetTileSetting setting, boolean addToHead)
public Layer3DDataset add(Dataset dataset, Layer3DSetting layer3DSetting, boolean addToHead)
dataset
- 给定的数据集。layer3DSetting
- 指定的三维图层设置对象。addToHead
- 是否将新添加的三维图层加到最上面。Layer3Ds类的示范代码。
public Layer3DDataset add(Dataset dataset, Theme3D theme3D, boolean addToHead)
注意:在使用 UDB 数据制作三维专题图时,在将制作好的三维专题图加入到三维场景中后,需要调用该三维专题图层的
Layer3DDataset.updateData()
方法,才能显示制作的三维专题图。
dataset
- 给定的数据集。theme3D
- 三维专题图。addToHead
- 是否将新添加的三维图层加到最上面。Layer3Ds类的示范代码。
public Layer3DDataset insert(int index, Dataset dataset, Layer3DSetting layer3DSetting)
index
- 插入图层的位置。dataset
- 给定的数据集。layer3DSetting
- 指定的三维图层设置对象。Layer3Ds类的示范代码。
public Layer3D insert(int index, String dataName, Layer3DType layerType)
index
- 插入图层的位置。dataName
- Model、KML、Map 或 ImageFile 类型图层所对应的数据全路径。layerType
- 图层的类型。如果添加的数据名称与图层类型不匹配,则添加失败。Layer3Ds类的示范代码。
public Layer3DDataset insertAR(int index, Dataset dataset, Theme3D theme3D)
public Layer3DDataset insert(int index, Dataset dataset, Theme3D theme3D)
index
- 插入图层的位置。dataset
- 给定的数据集。theme3D
- 三维专题图。Layer3Ds类的示范代码。
public Layer3DDataset add(Dataset dataset, Layer3DSetting layer3DSetting, boolean addToHead, String layerName)
dataset
- 给定的数据集。layer3DSetting
- 指定的三维图层设置对象。addToHead
- 是否将新添加的三维图层加到最上面。layerName
- 指定新添加的三维图层的名称,不区分大小写。如果图层名称已存在,则抛出异常。Layer3Ds类的示范代码。
public Layer3D add(String dataName, Layer3DType layerType, boolean addToHead)
dataName
- Model、KML、Map或ImageFile 类型图层所对应的数据全路径。layerType
- 图层的类型。如果添加的数据名称与图层类型不匹配,则添加失败。addToHead
- 是否将新添加的三维图层加到最上面。Layer3Ds类的示范代码。
public Layer3D add(String dataName, Layer3DType layerType, boolean addToHead, String layerName)
dataName
- Model、KML、Map或ImageFile 类型图层所对应的数据全路径。layerType
- 图层的类型。如果添加的数据名称与图层类型不匹配,则添加失败。addToHead
- 是否将新添加的三维图层加到最上面。layerName
- 指定新添加的三维图层的名称,不区分大小写。如果图层名称已存在,则抛出异常。Layer3Ds类的示范代码。
public Layer3DDataset add(Dataset dataset, Theme3D theme3D, boolean addToHead, String layerName)
注意:在使用 UDB 数据制作三维专题图时,在将制作好的三维专题图加入到三维场景中后,需要调用该三维专题图层的
Layer3DDataset.updateData()
方法,才能显示制作的三维专题图。
此处向三维图层添加的数据集类型必须是 Point、Line、Region、Text、LinkTable 和 Network 类型,否则将会抛出异常。
dataset
- 给定的数据集。theme3D
- 三维专题图。addToHead
- 是否将新添加的三维图层加到最上面。layerName
- 指定新添加的三维图层的名称,不区分大小写。如果图层名称已存在,则抛出异常。Layer3Ds类的示范代码
public void add(Layer3D layer)
layer
- 指定的三维图层。public Layer3D add(String dataName, Layer3DType layerType, boolean addToHead, String layerName, String password)
dataName
- Model、KML、Map 或 ImageFile 类型图层所对应的数据全路径。layerType
- 图层的类型。如果添加的数据名称与图层类型不匹配,则添加失败。addToHead
- 是否将新加载的图层加到最上面。layerName
- 指定新添加三维图层的名称,如果已存在会抛出异常,不区分大小写。password
- 加载三维数据需要的密码,该密码是生产缓存时指定的密码。public Layer3D add(String iserverURL, Layer3DType layerType, String layerName, boolean addToHead)
iserverURL
- iServer数据服务的URL。layerType
- 三维图层类型。layerName
- 用户指定的三维图层名称。addToHead
- 是否将添加的三维图层置顶。public Layer3D add(String iserverURL, String layerName, boolean addToHead)
iserverURL
- Arcgis服务图层的URL。layerName
- 图层名称。addToHead
- 是否将添加的图层置顶。public Layer3D add(String iserverURL, String layerName, String dataName, double dDPI, ImageFormatType imageType, boolean addToHead)
iserverURL
- 天地图服务地址。layerName
- 图层名字。dataName
- 数据名称。dDPI
- DPI。imageType
- 网络服务图片类型。addToHead
- 是否将添加的图层置顶。public Layer3D add(String layerName, Layer3DType layerType, String userName, String passWord, boolean addToHead)
layerName
- 图层名称。layerType
- 指定的图层类型。区分在线地图类型。userName
- 用户账号。passWord
- 账号密码。addToHead
- 是否添加到最顶部。public Layer3D add(String iserverURL, Layer3DType layerType, String sceneName, String layerName, String dataName, boolean addToHead)
iserverURL
- iServer图层服务的URL。layerType
- 三维图层类型。sceneName
- 用户指定的场景名称。layerName
- 用户指定的三维图层名称。dataName
- 用户指定的数据名称。addToHead
- 是否将添加的三维图层置顶。public Layer3DDataset insert(int index, Dataset dataset, Layer3DSetting layer3DSetting, String layerName)
index
- 插入图层的位置。dataset
- 给定的数据集。layer3DSetting
- 指定的三维图层设置对象。layerName
- 指定新插入的三维图层的名称,不区分大小写。如果图层名称已存在,则抛出异常。Layer3Ds类的示范代码。
public Layer3D insert(int index, String dataName, String layerName, Layer3DType layerType)
index
- 插入图层的位置。dataName
- Model、KML、Map 或 ImageFile 类型图层所对应的数据全路径。layerName
- 指定新插入的三维图层的名称,不区分大小写。如果图层名称已存在,则抛出异常。layerType
- 图层的类型。如果添加的数据名称与图层类型不匹配,则添加失败。Layer3Ds类的示范代码。
public Layer3DDataset insert(int index, Dataset dataset, Theme3D theme3D, String layerName)
此处向三维图层插入的数据集类型必须是 Point、Line、Region、Text、LinkTable 和 Network 类型,否则将会抛出异常。
注意:在使用 UDB 数据制作三维专题图时,在将制作好的三维专题图加入到三维场景中后,需要调用该三维专题图层的
Layer3DDataset.updateData()
方法,才能显示制作的三维专题图。
index
- 插入图层的位置。dataset
- 给定的数据集。theme3D
- 三维专题图。layerName
- 指定新插入的三维图层的名称,不区分大小写。如果图层名称已存在,则抛出异常。Layer3Ds类的示范代码。
public Layer3D insert(int index, String dataName, String layerName, Layer3DType layerType, String password)
index
- 插入图层的位置。dataName
- Model、KML、Map 或 ImageFile 类型图层所对应的数据全路径。layerName
- 指定新插入三维图层的名称,如果已存在会抛出异常,不区分大小写。layerType
- 图层的类型。如果添加的数据名称与图层类型不匹配,则添加失败。password
- 插入三维数据时需要的密码,该密码为生产缓存时指定的密码。public void insert(int index, Layer3D layer)
index
- 插入图层的位置。layer
- 创建好的三维图层。public boolean remove(int index)
index
- 要删除的三维图层的索引。public boolean remove(String name)
name
- 要删除的三维图层的名称。public void clear()
public int indexOf(String name)
name
- 要查找的三维图层的名称。public boolean contains(String name)
name
- 可能包含在此三维图层集合中的三维图层对象的名称。public boolean moveToTop(int index)
index
- 要移动到最顶层的三维图层的索引。public boolean moveToBottom(int index)
index
- 要移动到最底层的三维图层的索引。public boolean moveUp(int index)
index
- 要移动的三维图层的索引。public boolean moveDown(int index)
index
- 要移动的三维图层的索引。public boolean moveTo(int sourceIndex, int targetIndex)
sourceIndex
- 要移动的三维图层的原索引。targetIndex
- 目标位置索引。public void addLayer3DAddedListener(Layer3DAddedListener l)
Layer3DAddedEvent
)的监听器。l
- 一个用于接收三维图层添加事件的监听器。public void removeLayer3DAddedListener(Layer3DAddedListener l)
Layer3DAddedEvent
)的监听器。l
- 一个用于接收三维图层添加事件的监听器。public void addLayer3DRemovedListener(Layer3DRemovedListener l)
Layer3DRemovedEvent
)的监听器。l
- 一个用于接收三维图层被删除事件的监听器。public void removeLayer3DRemovedListener(Layer3DRemovedListener l)
Layer3DRemovedEvent
)的监听器。l
- 一个用于接收三维图层被删除事件的监听器。public void addLayer3DCaptionChangedListener(Layer3DCaptionChangedListener l)
Layer3DCaptionChangedEvent
)的监听器。l
- 一个用于接收三维图层标题改变事件的监听器。public void removeLayer3DCaptionChangedListener(Layer3DCaptionChangedListener l)
Layer3DCaptionChangedEvent
)的监听器。l
- 一个用于接收三维图层标题改变事件的监听器。public void addLayer3DSelectableChangedListener(Layer3DSelectableChangedListener l)
Layer3DSelectableChangedEvent
)的监听器。l
- 一个用于接收三维图层可选择设置改变事件的监听器。public void removeLayer3DSelectableChangedListener(Layer3DSelectableChangedListener l)
Layer3DSelectableChangedEvent
)的监听器。l
- 一个用于接收三维图层可选择设置变化事件的监听器。public void addLayer3DEditableChangedListener(Layer3DEditableChangedListener l)
Layer3DEditableChangedEvent
)的监听器。l
- 一个用于接收三维图层可编辑设置改变事件的监听器。public void removeLayer3DEditableChangedListener(Layer3DEditableChangedListener l)
Layer3DEditableChangedEvent
)的监听器。l
- 一个用于接收三维图层可编辑设置改变事件的监听器。public void addLayer3DVisibleChangedListener(Layer3DVisibleChangedListener l)
Layer3DVisibleChangedEvent
)的监听器。l
- 一个用于接收三维图层可视状态改变事件的监听器。public void removeLayer3DVisibleChangedListener(Layer3DVisibleChangedListener l)
Layer3DVisibleChangedEvent
)的监听器。l
- 一个用于接收三维图层可视状态改变事件的监听器。public void addLayer3DAlwaysRenderChangedListener(Layer3DAlwaysRenderChangedListener l)
Layer3DAlwaysRenderChangedEvent
)的监听器。l
- 一个用于接收三维图层持续渲染状态改变事件的监听器。public void removeLayer3DAlwaysRenderChangedListener(Layer3DAlwaysRenderChangedListener l)
Layer3DAlwaysRenderChangedEvent
)的监听器。l
- 一个用于接收三维图层持续渲染状态改变事件的监听器。Copyright © 2021–2024 SuperMap. All rights reserved.