ArcEngine根据点集ringclass,生成多边形polygon

上次说了将一个多边形的点集合保存入数据库,

见此文:

将图元包含的点集合(IPointCollection)序列化为二进制保存到数据库

这次有需要,把数据读取出来然后再生成一个多边形,在ArcEngine中生成多边形还蛮曲折的,

可能是考虑到环和岛的状况。

具体的需求是使用点集生成多边形,然后进行定位,闪烁啊什么的

//..... //..... //..... if (coordData != null) { int ptCount = System.BitConverter.ToInt32(coordData, 0);//点数 Ring ring1 = new RingClass(); object missing = Type.Missing; for (int i = 0; i < ptCount; i ++) { double ptX = System.BitConverter.ToDouble(coordData,4+16*i); double ptY = System.BitConverter.ToDouble(coordData,4+16*i+8); IPoint pt = new PointClass(); pt.PutCoords(ptX,ptY); ring1.AddPoint(pt,ref missing,ref missing); } IGeometryCollection pointPolygon = new PolygonClass(); pointPolygon.AddGeometry(ring1 as IGeometry,ref missing,ref missing); IPolygon polyGonGeo = pointPolygon as IPolygon; polyGonGeo.SimplifyPreserveFromTo(); //..... //..... //..... envelope.Expand(1.2, 1.2, true);//扩大边界 this.mapCtrlEx.Extent = envelope;//缩放到图元 Application.DoEvents();//使地图先定位然后再闪烁 this.mapCtrl.FlashShape(polyGonGeo, 3, 300, polygonSymbol); }

速度还凑合,没有感觉到有明显延迟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值