AreEngine IGeometry转WKT,WKB

本文详细介绍了如何在ArcEngine环境下将IGeometry转换为WKT格式,通过使用IWkb接口及第三方库实现了从WKB到WKT的转换。文章提供了具体的代码示例,帮助读者理解并实践这一过程。

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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值