不同的实体它的坐标属性不一样,比如直线就是开始点,和结速点属性,圆的就是中心点坐标和半径属性。所以要得实体的坐标,需要判断对象类型,然后再转换成具体的对象,再读取它的坐标。
控件提供的计算对象最小外包的函数: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); }
来源:https://www.cnblogs.com/yzy0224/p/12016485.html