skyline点击建筑弹出自定义窗体

时间:2013-4-15    作者:悬浮的青春    分类:


    工作中遇到点击某物体要弹出自定义窗体的需求,思考了一下。

        skyline中的实体有以下几个状态改变,添加,删除,开始编辑,结束编辑,基本都在Iaction接口里面,

  1.   AC_DELETE = 15
  2. The object was deleted.
  3. ·         AC_EDIT_FINISHED = 16
  4. The object was finished being edited.
  5. ·         AC_OBJECT_ADDED = 17
  6.          AC_EDIT_STARTED = 20
  7. Edit operation for the object was started.

      

void OnObjectAction(

       string ObjectID,

       IAction61 Action)

Parameters

ObjectID

The ID of the object on which the action was performed.


ISGWorld.onobjectaction(实体id,实体动作);


而获取实体id可以用鼠标点击的方式获取到。

用下面的接口

  IWorldPointInfo61

IWorldPointInfo6 poo=sg.Window.PixelToWorld(1,1,WorldPointType.WPT_MODEL);获取某坐标
poo.ObjectID改点的实体id
加个判断,判断是否弹出窗体。

 

以上是skyline6以上的大致方式

现在暂时用的方式

利用弹出信息框的属性,信息框大小设置为0,

 TE.OnTerraExplorerMessage += new _ITerraExplorerEvents5_OnTerraExplorerMessageEventHandler(TE_OnTerraExplorerMessage);

 

void TE_OnTerraExplorerMessage(string TEMessageID, string SourceObjectID, ref object pbHandled)

        {

            //区分TEMessageID 弹出或者执行事件。

            if (TEMessageID == "0_4555778")//第一个全景的id

            {

                //显示自定义窗口

            }

}

这样就可以弹出自定义窗口了。

 

标签: skyline二次开发

WRITTEN BY

avatar