com.supermap.realspace
类 Feature3D

java.lang.Object
  继承者 com.supermap.realspace.Feature3D

public class Feature3D
extends java.lang.Object

三维要素类。


构造方法摘要
Feature3D()
          构造一个新的 Feature3D 对象。
Feature3D(Feature3D feature3D)
          根据给定的 Feature3D 对象构造一个与其完全相同的新对象。
 
方法摘要
 void dispose()
          释放该对象所占用的资源。
 boolean fromKML(java.lang.String kml)
          从一个给定的 KML 字符串中导入三维要素对象。
 boolean fromKMLFile(java.lang.String kmlFile)
          从 KML 文件导入三维要素对象。
 Camera getCamera()
          返回相机对象。
 java.lang.String getDescription()
          返回三维要素对象的描述信息。
 Geometry3D getGeometry()
          返回三维要素对象所对应的三维几何对象。
 int getID()
          返回三维要素对象的 ID 值。
 java.lang.String getName()
          返回三维要素对象的名称。
 Feature3Ds getParent()
          返回三维要素对象的父对象,即三维要素对象所属的三维要素集合对象。
 double getVisibleDistance()
          已过时。 
 boolean isVisible()
          返回三维要素对象是否可见。
 void setCamera(Camera camera)
          设置相机对象。
 void setDescription(java.lang.String value)
          设置三维要素对象的描述信息。
 void setGeometry(Geometry3D geometry3D)
          设置三维要素对象所对应的三维几何对象。
 void setName(java.lang.String value)
          设置三维要素对象的名称。
 void setVisible(boolean value)
          设置三维要素对象是否可见。
 void setVisibleDistance(double value)
          已过时。 
 java.lang.String toKML()
          返回三维要素对象的描述信息,描述信息是一个 KML 字符串。
 void toKMLFile(java.lang.String kmlFile)
          将三维要素对象输出成 KML 文件。
 void updateData()
          更新渲染所需要的数据。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Feature3D

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


Feature3D

public Feature3D(Feature3D feature3D)
根据给定的 Feature3D 对象构造一个与其完全相同的新对象。

参数:
feature3D - 指定的 Feature3D 对象。
方法详细信息

getID

public int getID()
返回三维要素对象的 ID 值。

返回:
三维要素对象的 ID 值。
默认值:
默认值为0。

getName

public java.lang.String getName()
返回三维要素对象的名称。

返回:
三维要素对象的名称。
默认值:
默认值为 "UntitledFeature3D"。

setName

public void setName(java.lang.String value)
设置三维要素对象的名称。

参数:
value - 三维要素对象的名称。

getDescription

public java.lang.String getDescription()
返回三维要素对象的描述信息。

返回:
三维要素对象的描述信息。
默认值:
默认值为一个空的字符串

setDescription

public void setDescription(java.lang.String value)
设置三维要素对象的描述信息。

参数:
value - 三维要素对象的描述信息。

getGeometry

public Geometry3D getGeometry()
返回三维要素对象所对应的三维几何对象。

返回:
三维要素对象所对应的三维几何对象。
默认值:
默认值为空。

setGeometry

public void setGeometry(Geometry3D geometry3D)
设置三维要素对象所对应的三维几何对象。

注意:如果要设置的几何对象的类型与原几何对象的类型不相同,那么原几何对象会被释放。

参数:
geometry3D - 三维要素对象所对应的三维几何对象。

getParent

public Feature3Ds getParent()
返回三维要素对象的父对象,即三维要素对象所属的三维要素集合对象。

返回:
三维要素对象的父对象。
默认值:
默认值为 null。

isVisible

public boolean isVisible()
返回三维要素对象是否可见。

返回:
三维要素对象可见返回 true,不可见返回 false。
默认值:
默认值为 true。

setVisible

public void setVisible(boolean value)
设置三维要素对象是否可见。

参数:
value - 一个布尔值指定三维要素对象是否可见。

getVisibleDistance

@Deprecated
public double getVisibleDistance()
已过时。 

该方法已过时。相关功能已被Layer3D类中的get/setMaxObjectVisibleDistance()方法所取代。 返回三维要素对象的可见距离。

返回:
三维要素对象的可见距离。
默认值:
默认值为-9999

setVisibleDistance

@Deprecated
public void setVisibleDistance(double value)
已过时。 

该方法已过时。相关功能已被Layer3D类中的get/setMaxObjectVisibleDistance()方法所取代。 设置三维要素对象的可见距离。

参数:
value - 三维要素对象的可见距离。

getCamera

public Camera getCamera()
返回相机对象。

返回:
相机对象。
默认值:
默认值为{Altitude=-1.79769313486232E+308,Heading=-1.79769313486232E+308,Latitude=-1.79769313486232E+308,Longitude=-1.79769313486232E+308,Tilt=-1.79769313486232E+308,AltitudeMode=ClampToGround}

setCamera

public void setCamera(Camera camera)
设置相机对象。

参数:
camera - 相机对象。

toKML

public java.lang.String toKML()
返回三维要素对象的描述信息,描述信息是一个 KML 字符串。

返回:
KML 字符串。
示例:
以下代码示例了如何将三维要素类导出为KML字符串,并从KML字符串导入三维要素对象。
    public void FromToKML()
    {
        //构造一个三维要素类对象
        Feature3D feature3D = new Feature3D();

        //从KML文件导入三维要素对象
        feature3D.fromKMLFile("D:\\SampleData\\kml.kml");

        //将该三维要素类对象输出为KML字符串
        String kml=feature3D.toKML();

        //从kml字符串中导入三维要素对象
        feature3D.fromKML(kml);

        }

fromKML

public boolean fromKML(java.lang.String kml)
从一个给定的 KML 字符串中导入三维要素对象。

参数:
kml - 指定的 KML 字符串。
返回:
成功返回 true,否则返回 false。

toKMLFile

public void toKMLFile(java.lang.String kmlFile)
将三维要素对象输出成 KML 文件。

参数:
kmlFile - 指定的 KML 文件相对路径。

fromKMLFile

public boolean fromKMLFile(java.lang.String kmlFile)
从 KML 文件导入三维要素对象。

参数:
kmlFile - 指定的 KML 文件相对路径。
返回:
导入成功返回 true;否则返回 false。

updateData

public void updateData()
更新渲染所需要的数据。

在以下情况需要调用该方法才能正确渲染更新后的数据:在修改 Feature3D.getGeometry() 方法中返回的地理数据并调用 Style3D.setAltitudeMode() 方法。

示例:
以下代码示例如何返回三维要素对象及其对应的三维几何对象,并对三维几何对象进行风格设置和显示。
 public void UpdateFeature3D()
{
    // 构造一个 SceneControl 对象,得到 SceneControl 对象的最顶层,得到顶层的三维要素对象
    SceneControl sceneControl = new SceneControl();
    //返回三维要素对象
    Layer3D layer3D = sceneControl.getScene().getLayers().add("D:\\SampleData\\kml.kml",Layer3DType.KML,true );
    Feature3D feature3D = layer3D.getFeatures().findFeature(1, Feature3DSearchOption.ALLFEATURES);

    // 返回三维要素对应的三维几何对象
    Geometry3D geometry3D = feature3D.getGeometry();

    //对三维几何对象进行风格设置
    GeoStyle3D geoStyle3D = new GeoStyle3D();
    geoStyle3D.setAltitudeMode(AltitudeMode.ABSOLUTE);
    geoStyle3D.setBottomAltitude(200);
    geoStyle3D.setExtendedHeight(20);
    geoStyle3D.setFillForeColor(Color.ORANGE) ;
    geoStyle3D.setFillMode(FillMode3D.FILL);

    geometry3D.setStyle3D(geoStyle3D);

    //更新渲染所需要的数据
    feature3D.updateData();
    //飞行到目标对象
    sceneControl.getScene().flyCircle(geometry3D,2.0);
    //刷新三维场景
    sceneControl.getScene().refresh();
}

dispose

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