2.14 基础对象类(Obj)
基础对象类通常指代一些基本概念如颜色、坐标、视点等,也指代一些通过高度封装的,与场景调度无关的对象,比如事件对象、坐标转换对象等。
Obj对象可分为三大类:
基础概念类:
- 动画帧对象(AnimationFrameObj
- RGBA颜色对象(ColorObj)
- 地理坐标对象(PositionObj)
- 二维向量对象(Vector2Obj)
- 三维向量对象(Vector3Obj)
- 四维向量对象(Vector4Obj)
基础交互控制类:
- 坐标转换对象(ConversionObj)
- 视点相机(CameraObj)
- 控件事件对象(EventObj)
- 漫游控制模式对象(RoamObj)
- 分屏对象(ScreenObj)
标注类
基础概念类
基础概念类定义了三维地图中经常使用到的对象,主要是颜色、坐标、向量,它们映射出三维场景的绘制和GIS概念。
RGBA颜色对象(ColorObj) 默认接受取值范围为0-1的rgba排列的颜色参数,其也提供了一系列接口,来兼容#rgb、#rrggbb、rgb()、rgba()、hsl()或hsla()格式的CSS颜色值。
地理坐标对象(PositionObj) 在这里定义为使用经纬度坐标或者世界笛卡尔坐标的对象。
向量对象则可以反映屏幕坐标、颜色、二三维平移、缩放、旋转表达等功能,属于较为灵活的格式,可以在使用中自由发挥。
基础交互控制类
基础交互控制类定义了三维地图在交互操作中经常使用到的对象,主要是视点获取及定位、键鼠操作事件响应、漫游控制模式、坐标转换以及分屏。
视点相机(CameraObj) 提供了视点获取及设置的功能,让用户可以很方便地在三维场景中定位到关键位置。
控件事件对象(EventObj) 则可以返回键盘按键,鼠标左中右键的按下、弹起、双击完成时的事件响应,方便用户在键鼠操作完成时,可以自定义自己想要的处理代码。需要注意的是,该类对象只能创建一个实例,如果创建多个,会导致之前EventObj的事件响应被覆盖。
坐标转换对象(ConversionObj) 则可以提供不同坐标参考系的互相转换、屏幕点与三维场景点的互相转换等。
漫游控制模式对象(RoamObj) 则提供了一系列的漫游控制接口,可以设置鼠标的漫游方式、自定义漫游方式、室内模式和地下模式的切换,也能替换鼠标光标等。
分屏对象(ScreenObj) 则提供了将三维场景进行多屏展示的功能,该对象在几乎所有对象的属性中均可配置,统一属性名为:screen。一般该功能用于多屏对比展示同一数据,常用于规划行业。
标注类
标注类则定义了在场景中显示的标识性元素,主要为标注和标尺。
标注对象(LabelObj) 是比较常用的打标注的方式,通过该种方式创建的标注,是可以被矢量拾取工具(FeatureModelPickTool)拾取的,进而获得需要的唯一标识或者自定义的信息。相关详细内容可参考2.7 标注上图。需要注意的是,该对象只支持同种类型的标注显示,如果添加了多种类型的标注,如分别添加了文字、图标、模型类型的标注,那么则需要创建三个LabelObj对象实例;如果针对模型标注,使用了三种不同的模型文件,也需要创建三个Label对象实例。
扯旗标注(TagObj) 则更多是用于临时在已知对象上进行文字展示,设计时便不考虑可被拾取和编辑,因此仅可作为单纯展示性的标注进行使用,这里需要额外注意。
标尺对象(RulerObj) 是三维空间内绘制标注刻度尺,用来辅助显示三维场景高度的功能,与扯旗标注一样,也是在显示层面上进行效果的展示,不具有分析等功能。
属于标注类的对象,都具有destroy接口,需要用户手动调用销毁。其他两大类对象,是无需关注销毁问题的。