转自:http://dingtao-wgs.blog.163.com/blog/static/5026071420135422156158/

Pedro 
 
Hi! I think that this can be useful for someone here at ESRI Forums... 

This is a class, dependent from GeoAPI and NetTopologySuite, that can make any convertion between IGeometry and WKT/WKB... 

For the tests that I've made this is working... please let-me now if not... 
 
 
 
using System;
using System.Collections.Generic;
using System.Text;
using GisSharpBlog.NetTopologySuite.IO;
using ESRI.ArcGIS.Geometry;namespace Utils
{/// <summary>/// This class is used to convert a GeoAPI Geometry to ESRI and vice-versa./// It can also convert a ESRI Geometry to WKB/WKT and vice-versa./// </summary>public static class Converters{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;}public static byte[] ConvertWKTToWKB(string wkt){WKBWriter writer = new WKBWriter();WKTReader reader = new WKTReader();return writer.Write(reader.Read(wkt));}public static string ConvertWKBToWKT(byte[] wkb){WKTWriter writer = new WKTWriter();WKBReader reader = new WKBReader();return writer.Write(reader.Read(wkb));}public static string ConvertGeometryToWKT(IGeometry geometry){byte[] b = ConvertGeometryToWKB(geometry);WKBReader reader = new WKBReader();GeoAPI.Geometries.IGeometry g = reader.Read(b);WKTWriter writer = new WKTWriter();return writer.Write(g);}public static IGeometry ConvertWKTToGeometry(string wkt){byte[] wkb = ConvertWKTToWKB(wkt);return ConvertWKBToGeometry(wkb);}public static IGeometry ConvertWKBToGeometry(byte[] wkb){IGeometry geom;int countin = wkb.GetLength(0);IGeometryFactory3 factory = new GeometryEnvironment() as IGeometryFactory3;factory.CreateGeometryFromWkbVariant(wkb, out geom, out countin);return geom;}public static IGeometry ConvertGeoAPIToESRI(GeoAPI.Geometries.IGeometry geometry){WKBWriter writer = new WKBWriter();byte[] bytes = writer.Write(geometry);return ConvertWKBToGeometry(bytes);}public static GeoAPI.Geometries.IGeometry ConvertESRIToGeoAPI(IGeometry geometry){byte[] wkb = ConvertGeometryToWKB(geometry);WKBReader reader = new WKBReader();return reader.Read(wkb);}}
}

Create Geometry from WKT(转载)相关推荐

  1. Create Geometry From WKB(using NetTopologySuite)

    使用NetTopologySuite(NTS)从WKB生成Geometry 1.NetTopologySuite简介 NetTopologySuite是著名的JTS Topology Suite的C# ...

  2. gdal geometry java_GDAL Geometry对象操作 - 创建对象

    说明: 在运行下列代码前,需要加入GDAL/OGR的引用,并导入命名空间using OSGeo.OGR;并注册驱动器 定义了PrintGeometry函数,用于打印输出几何对象,在代码中不再一一调用 ...

  3. (转) Arcgis for js之WKT和GEOMETRY的相互转换

    http://blog.csdn.net/gisshixisheng/article/details/44057453 1.wkt简介 WKT(Well-known text)是一种文本标记语言,用于 ...

  4. map geometry wkt转化

    wkt---geometry           wkt中有Z的在转化成geometry的时候会保留z坐标      "POLYGONZ((120.5521 60.6667,121.5521 ...

  5. JTS(Geometry)工具类

    空间数据模型 (1).JTS Geometry model  (2).ISO Geometry model (Geometry Plugin and JTS Wrapper Plugin) GeoTo ...

  6. mybatis类型转换器处理PostGis数据库geometry类型转换

    在入库和查询中需要自动的让geometry的类型和实体类中的类型映射. 实体类中接收参数是String类型(geoJson) PostGis中的geometry类型是十六进制的扩展WKB类型(EWKB ...

  7. mysql 地理_MySQL geometry地理位置数据存储和计算

    最近学习了些MySQL geometry数据存储和计算,在这里记录下. 1. 环境 geometry推荐在5.6版本以上使用,尽管大部分功能在5.5已经可用,除了距离计算函数st_distance等新 ...

  8. JTS Geometry

    JTS Geometry关系判断和分析 JTS Geometry关系判断和分析 1.关系判断 1.1实例 2.关系分析 2.1实例 JTS(Geometry) JTS Geometry关系判断和分析 ...

  9. PostgreSql操作geometry

    GIS开发对数据的操作,主要是对空间数据的操作.PostgreSql提供了一些处理空间数据的函数,操作起来是比较方便的.下面就记录一下,最近做项目里面用到的一些,也是比较常用的. 空间数据 介绍这些函 ...

最新文章

  1. 9102年webpack4搭建vue项目
  2. linux查找日志技巧
  3. 机器之心公开演讲:如何用AI技术传播AI知识
  4. asp.net三层架构连接Oracle 11g详解
  5. 2050 Programming Competition (CCPC)
  6. Java 8 stream forEach filter anyMatch
  7. c语言支持默认参数吗,嵌入式C语言可以带“默认参数”的函数吗
  8. 开发工具:IDEA 强大的 Live Templates!
  9. python简单菜单_创建一个简单的python菜单
  10. URAL 1876 Centipede's Morning (机智)
  11. 关于pipe管道的读写端关闭问题
  12. 高数符号用计算机表示,请问高等数学的符号怎么在电脑上打出来
  13. vscode安装 Fira Code 编程字体,编程符号更精致美观
  14. JavaScript 基础概念
  15. linux ping 不通 arp incomplete,关于show arp表,显示Incomplete问题
  16. 2018首届世界传感器大会11月12日-14日在郑州召开
  17. 5G基站君的进化之路 — CU和DU分离
  18. 【牛腩】未能加载文件或程序集“AspNetPager”或它的某一个依赖项
  19. python读取fits第三方库_python-astropy.io.fits从具有多个HDU的大型fits文件中读取行
  20. S3C2440-裸机篇-06 | UART数据发送接收实验(扫描模式)

热门文章

  1. linux下载哪个python版本-Linux安装python3.6
  2. python入门教程非常详细-Python 基础教程
  3. mysql基础sql语句_SQL基础语句汇总
  4. LeetCode1262 可被三整除的最大和(动态规划)
  5. Appium环境安装
  6. 【经验心得】CS1.6:经典中的精品
  7. SpringBoot中在除controller以外注入service-过滤器中注入
  8. python中is与==的差别
  9. Day12 Java异常处理与程序调试
  10. htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。