com.supermap.data
类 Geometry3D

java.lang.Object
  继承者 com.supermap.data.Geometry
      继承者 com.supermap.data.Geometry3D
直接已知子类:
GeoBendingCylinder, GeoBillboard, GeoBox, GeoCircle3D, GeoCone, GeoConstructiveColid, GeoConstructiveSolid, GeoCylinder, GeoEllipsoid, GeoEllipticRing, GeoExtrudedBody, GeoGraphicObject, GeoHemiSphere, GeoLine3D, GeoModel, GeoModel3D, GeoParticle, GeoPicture3D, GeoPie3D, GeoPieCylinder, GeoPlacemark, GeoPoint3D, GeoPyramid, GeoRectangularRing, GeoRegion3D, GeoSphere, GeoTable3D, GeoText3D, GeoTorus, GeoTruncatedCone, GeoWedge

public abstract class Geometry3D
extends Geometry

所有三维几何类的基类,提供了基本的三维几何类的方法。

通过本类可以对三维几何对象的姿态进行控制,包括对象的位置,旋转角度,缩放比例和内点;还可以对三维几何对象进行偏移;还可以返回三维模型几何对象。

该类仅在 Windows、Linux 平台版本中支持。

示例:
以下代码示范如何设置三维几何对象。
 public void geometry3DTest() {
        // 构造一个 SceneControl 对象,得到 SceneControl 对象的最顶层,得到顶层的三维要素对象
        SceneControl sceneControl = new SceneControl();
        Layer3D layer3D = sceneControl.getScene().getLayers().get(0);
        Feature3D feature3D = layer3D.getFeatures().findFeature(0,
                Feature3DSearchOption.ALLFEATURES);

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

        // 将三维几何对象进行平移
        geometry3D.offset(10, 10, 12);

        // 设置三维几何对象
        geometry3D.setID(25);
        geometry3D.setPosition(new Point3D(20, 25, 20));
        geometry3D.setRotationX(10);
        geometry3D.setRotationY(15);
        geometry3D.setRotationZ(5);
        geometry3D.setScaleX(0.5);
        geometry3D.setScaleY(0.8);
        geometry3D.setScaleZ(1.2);

        // 释放资源
        geometry3D.dispose();
        feature3D.dispose();
        sceneControl.dispose();
    }
 

方法摘要
 GeoModel3D convertToGeoModel3D(boolean bLonLat)
          将三维几何对象转换为三维模型对象。
 GeoModel3D convertToGeoModel3D(boolean bLonLat, int nResolution)
          将三维几何对象按指定分辨率转换为三维模型对象。
 BoundingBox getBoundingBox()
          返回三维几何对象的包围盒。
 GeoModel getGeoModel(int slices, int stacks)
           
 Point3D getInnerPoint3D()
          返回三维几何对象的内点,即在三维几何对象的内部且靠近中央的点。
 Point3D getPosition()
          返回三维几何对象的位置。
 double getRotationX()
          返回三维几何对象沿 X 轴方向的旋转角度,单位为度。
 double getRotationY()
          返回三维几何对象沿 Y 轴方向的旋转角度,单位为度。
 double getRotationZ()
          返回三维几何对象沿 Z 轴方向的旋转角度,单位为度。
 double getScaleX()
          返回三维几何对象沿 X 轴方向的缩放比例。
 double getScaleY()
          返回三维几何对象沿 Y 轴方向的缩放比例。
 double getScaleZ()
          返回三维几何对象沿 Z 轴方向的缩放比例。
 GeoStyle getStyle()
          该类不支持该方法。
 GeoStyle3D getStyle3D()
          返回三维几何对象的风格。
 double getVolume()
          返回三维几何对象的体积,单位为立方米。
 boolean hitTest(Point2D point, double tolerance)
          该类不支持该方法。
 Geometry mirror(Point2D startPoint, Point2D endPoint)
          该类不支持该方法。
 void offset(double dx, double dy, double dz)
          根据指定的 X、Y、Z 方向上的偏移量,将三维几何对象进行偏移。
 void resize(Rectangle2D bounds)
          该类不支持该方法。
 void rotate(Point2D basePoint, double angle)
          该类不支持该方法。
 void setPosition(Point3D point3D)
          设置三维几何对象的位置。
 void setRotationX(double value)
          设置三维几何对象沿 X 轴方向的旋转角度,单位为度。
 void setRotationY(double value)
          设置三维几何对象沿 Y 轴方向的旋转角度,单位为度。
 void setRotationZ(double value)
          设置三维几何对象沿 Z 轴方向的旋转角度,单位为度。
 void setScaleX(double value)
          设置三维几何对象沿 X 轴方向的缩放比例。
 void setScaleY(double value)
          设置三维几何对象沿 Y 轴方向的缩放比例。
 void setScaleZ(double value)
          设置三维几何对象沿 Z 轴方向的缩放比例。
 void setStyle(GeoStyle value)
          该类不支持该方法。
 void setStyle3D(GeoStyle3D geoStyle3D)
          设置三维几何对象的风格。
 
从类 com.supermap.data.Geometry 继承的方法
addCustomGeometryCreatedListener, dispose, fromXML, getBounds, getID, getInnerPoint, getType, getVariantID, isEmpty, offset, removeCustomGeometryCreatedListener, setEmpty, setID, toXML
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

getPosition

public Point3D getPosition()
返回三维几何对象的位置。

该位置的坐标值是三维几何对象外接长方体底面中心点的三维坐标值。该中心点用来控制三维几何对象在地球上的放置位置。比如一个球体,其外接长方体的底面中心点就是球体与该外接长方体底边的切点。

该方法对三维点几何对象、三维面几何对象、三维线几何对象、三维文本几何对象以及三维地标几何对象无效,暂时只对三维模型和三维规则几何体有效。

返回:
三维几何对象的位置。

setPosition

public void setPosition(Point3D point3D)
设置三维几何对象的位置。

该位置的坐标值是三维几何对象外接长方体底面中心点的三维坐标值。该中心点用来控制三维几何对象在地球上的放置位置。比如一个球体,其外接长方体的底面中心点就是球体与该外接长方体底边的切点。

该方法对三维点几何对象、三维面几何对象、三维线几何对象、三维文本几何对象以及三维地标几何对象无效,暂时只对三维模型和三维规则几何体有效。

参数:
point3D - 三维几何对象的位置。

getStyle3D

public GeoStyle3D getStyle3D()
返回三维几何对象的风格。

返回:
三维几何对象的风格。

setStyle3D

public void setStyle3D(GeoStyle3D geoStyle3D)
设置三维几何对象的风格。

参数:
geoStyle3D - 三维几何对象的风格。

getBoundingBox

public BoundingBox getBoundingBox()
返回三维几何对象的包围盒。

返回:
三维几何对象的包围盒。

getRotationX

public double getRotationX()
返回三维几何对象沿 X 轴方向的旋转角度,单位为度。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

返回:
三维几何对象沿 X 轴方向的旋转角度。单位为度。
默认值:
默认值为0,单位为度。

setRotationX

public void setRotationX(double value)
设置三维几何对象沿 X 轴方向的旋转角度,单位为度。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

参数:
value - 三维几何对象沿 X 轴方向的旋转角度。单位为度。

getRotationY

public double getRotationY()
返回三维几何对象沿 Y 轴方向的旋转角度,单位为度。在局部坐标系中,Y 轴是切于地面的,Z 轴是垂直于地面的。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

返回:
三维几何对象沿 Y 轴方向的旋转角度。单位为度。
默认值:
默认值为0,单位为度。

setRotationY

public void setRotationY(double value)
设置三维几何对象沿 Y 轴方向的旋转角度,单位为度。在局部坐标系中,Y 轴是切于地面的,Z 轴是垂直于地面的。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

参数:
value - 三维几何对象沿 Y 轴方向的旋转角度。单位为度。

getRotationZ

public double getRotationZ()
返回三维几何对象沿 Z 轴方向的旋转角度,单位为度。在局部坐标系中,Y 轴是切于地面的,Z 轴是垂直于地面的。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

返回:
三维几何对象沿 Z 轴方向的旋转角度。单位为度。
默认值:
默认值为0,单位为度。

setRotationZ

public void setRotationZ(double value)
设置三维几何对象沿 Z 轴方向的旋转角度,单位为度。在局部坐标系中,Y 轴是切于地面的,Z 轴是垂直于地面的。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

参数:
value - 三维几何对象沿 Z 轴方向的旋转角度。单位为度。

getScaleX

public double getScaleX()
返回三维几何对象沿 X 轴方向的缩放比例。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

返回:
三维几何对象沿 X 轴方向的缩放比例。
默认值:
默认值为1。

setScaleX

public void setScaleX(double value)
设置三维几何对象沿 X 轴方向的缩放比例。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

参数:
value - 三维几何对象沿 X 轴方向的缩放比例。

getScaleY

public double getScaleY()
返回三维几何对象沿 Y 轴方向的缩放比例。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

返回:
三维几何对象沿 Y 轴方向的缩放比例。
默认值:
默认值为1。

setScaleY

public void setScaleY(double value)
设置三维几何对象沿 Y 轴方向的缩放比例。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

参数:
value - 三维几何对象沿 Y 轴方向的缩放比例。

getScaleZ

public double getScaleZ()
返回三维几何对象沿 Z 轴方向的缩放比例。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

返回:
三维几何对象沿 Z 轴方向的缩放比例。
默认值:
默认值为1。

setScaleZ

public void setScaleZ(double value)
设置三维几何对象沿 Z 轴方向的缩放比例。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 以及粒子几何对象 GeoParticle 无效,暂时只对三维模型和三维规则几何体有效。

参数:
value - 三维几何对象沿 Z 轴方向的缩放比例。

getInnerPoint3D

public Point3D getInnerPoint3D()
返回三维几何对象的内点,即在三维几何对象的内部且靠近中央的点。

返回:
三维几何对象的内点。

getVolume

public double getVolume()
返回三维几何对象的体积,单位为立方米。

该方法对三维点几何对象 GeoPoint3D、三维面几何对象 GeoRegion3D、三维线几何对象 GeoLine3D、三维文本几何对象 GeoText3D 、三维图片几何对象 GeoPicture3D、三维地标几何对象 GeoPlacemark 、粒子几何对象 GeoParticle 、三维圆面几何对象 GeoCircle3D 以及三维扇面几何对象 GeoPie3D 无效。

返回:
三维几何对象的体积。单位为立方米。

offset

public void offset(double dx,
                   double dy,
                   double dz)
根据指定的 X、Y、Z 方向上的偏移量,将三维几何对象进行偏移。

参数:
dx - 沿 X 轴方向的偏移量,单位为度。
dy - 沿 Y 轴方向的偏移量,单位为度。
dz - 沿 Z 轴方向的偏移量,单位为米。

getGeoModel

public GeoModel getGeoModel(int slices,
                            int stacks)
参数:
slices - 横向细分数。
stacks - 纵向细分数。
返回:
三维模型几何对象。

getStyle

public GeoStyle getStyle()
该类不支持该方法。

覆盖:
Geometry 中的 getStyle
返回:
几何对象的风格。

setStyle

public void setStyle(GeoStyle value)
该类不支持该方法。

覆盖:
Geometry 中的 setStyle
参数:
value - 用来设置几何对象风格的 GeoStyle 对象。
另请参见:
Geometry.offset(double, double)

hitTest

public boolean hitTest(Point2D point,
                       double tolerance)
该类不支持该方法。

覆盖:
Geometry 中的 hitTest
参数:
point - 测试点。
tolerance - 容限值,单位与数据集的单位相同。
返回:
测试结果,点中了该几何对象返回 true;否则返回 false。
另请参见:
Point2D

mirror

public Geometry mirror(Point2D startPoint,
                       Point2D endPoint)
该类不支持该方法。

覆盖:
Geometry 中的 mirror
参数:
startPoint - 线段的起点。
endPoint - 线段的终点。
返回:
该几何对象关于指定对称的几何对象。
另请参见:
Geometry.offset(double,double)

resize

public void resize(Rectangle2D bounds)
该类不支持该方法。

覆盖:
Geometry 中的 resize
参数:
bounds - 调整大小后几何对象的范围。

rotate

public void rotate(Point2D basePoint,
                   double angle)
该类不支持该方法。

覆盖:
Geometry 中的 rotate
参数:
basePoint - 旋转的基点。
angle - 旋转的角度,单位为度。

convertToGeoModel3D

public GeoModel3D convertToGeoModel3D(boolean bLonLat)
将三维几何对象转换为三维模型对象。

参数:
bLonLat - 指定模型的顶点或插值点是否是经纬度。
返回:
GeoModel3D 三维模型对象。

convertToGeoModel3D

public GeoModel3D convertToGeoModel3D(boolean bLonLat,
                                      int nResolution)
将三维几何对象按指定分辨率转换为三维模型对象。

参数:
bLonLat - 指定模型的顶点或插值点是否是经纬度。
nResolution - 指定的分辨率。
返回:
三维模型对象。