AreEngine IGeometry转WKT,WKB

1.前言

        首先我想喷一下那些写博客写一半的家伙,写的是有头无尾。他们是直接粘贴复制网上的代码。也不管里面的代码都用到了哪些东西,也不知道是不是解决了自己的问题,反正就是直接粘贴,我看了好几篇IGeometry转WKT,WKB的博客。清一色都是粘贴复制,里面用到的类,也不知道是从哪来的,啥也不说,就是粘贴复制,我呸你妹的!就这都不能解我心头之气,真是垃圾。好了不说了,还是言归正传吧。

2. IGeometry转WKT

       在ArcEngine中应该是没有直接的方法可以实现(如果有请留言告诉我),但是有IGeometry转WKB的接口

      public static byte[] ConvertGeometryToWKB(IGeometry geometry)
        {
            IWkb wkb = geometry as IWkb;
            //ITopologicalOperator oper = geometry as ITopologicalOperator;
            //oper.Simplify();

            IGeometryFactory3 factory = new GeometryEnvironment() as IGeometryFactory3;
            byte[] b = factory.CreateWkbVariantFromGeometry(geometry) as byte[];
            return b;
        }

但是经过上网查找,发现有个第三方的库,可以将WKB转成WKT,那么就很好办了,首先下载类库,然后添加引用即可,然后调用下面这段代码。

      public static byte[] ConvertWKTToWKB(string wkt)
        {
            WKBWriter writer = new WKBWriter();
            WKTReader reader = new WKTReader();
            return writer.Write(reader.Read(wkt));
        }

调用示例:

string strWKT = ConvertWKBToWKT(ConvertGeometryToWKB(pFeature.Shape as IGeometry));

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值