使用NetTopologySuite(NTS)从WKB生成Geometry
1.NetTopologySuite简介
NetTopologySuite是着名的JTS Topology Suite的C#/.net版本,简称NTS,JTSTopology Suite为一个OpenGIS标准的GIS分析,操作类库。NTS项目的目的是提供一个基础.net,快速稳定GIS解决方案,以应用于所有.net平台包括各种嵌入式设备(.net Compact)。
2.拿到WKB
既然要从WKB生成Geometry,那我们首先要拿到一个WKB,就是拿到字符串。我们在这里使用它。postgresql提供的工具shp2pgsql来自动生成,前两张图看生成shp2pgsql生成的insert语句吧

注意红线画就是WKB,既然他们拿到了WKB,就开干吧
3.从WKB生成Geometry
NTS提供一个叫做的类别WKBReader,用他读一个bytes我们直接来上图中的数组
注意我们图中红线框的内容,WKBReader读取的那个bytes要通过数组 WKBReader.HexToBytes(wkb)结果可以正确读取并直接使用Encoding.UTF8.GetBytes(wkb)读取结果会报错,报错信息为:无法识别的空间类型。
最后面将IGeometry转为Geometry,因为IGeometry是继承自Geometry的,子类对象可以直接转为父类对象使用。
写在这里突然想到一句话,面向对象的程序设计的多态本质是:
又到了年底,我们又开始996了来吧,虽然今年注册测绘师和信息系统项目经理都没有通过,但不要气馁,明年再做。giser,never backoff,and never give up!!!