不同的实体它的坐标属性不一样,比如直线就是开始点,和结速点属性,圆的就是中心点坐标和半径属性。所以要得实体的坐标,需要判断对象类型,然后再转换成具体的对象,再读取它的坐标。

控件提供的计算对象最小外包的函数:GetBoundingBox,详见:http://www.mxdraw.com/help/IMxDrawEntity__GetBoundingBox@[out]_IMxDrawPoint__@[out]_IMxDrawPoint__.htm

下面js代码,得到对象最小外包矩形框坐标:

var  ent = mxOcx.GetEntity("选择实体");
if (ent == null)
    return;
var pt1Ob = mxOcx.NewPoint();
var  pt2Ob = mxOcx.NewPoint();
// 得到最小外包。
var  points = ent.GetBoundingBox2();
ent.Close();
var pt1Ob = points.Item(0);
var pt2Ob = points.Item(1);
if(pt1Ob != null && pt2Ob != null)
{
    // 成功得到。
    var app = mxOcx.NewComObject("IMxDrawApplication");
    app.ZoomWindow(pt1Ob.x,pt1Ob.y, pt2Ob.x,pt2Ob.y);

    alert(pt1Ob.x);
    alert(pt1Ob.y);
    alert(pt2Ob.x);
    alert(pt2Ob.y);

}
12-24 17:50
查看更多