Create Geometry from WKT(转载)
转自: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(转载)相关推荐
- Create Geometry From WKB(using NetTopologySuite)
使用NetTopologySuite(NTS)从WKB生成Geometry 1.NetTopologySuite简介 NetTopologySuite是著名的JTS Topology Suite的C# ...
- gdal geometry java_GDAL Geometry对象操作 - 创建对象
说明: 在运行下列代码前,需要加入GDAL/OGR的引用,并导入命名空间using OSGeo.OGR;并注册驱动器 定义了PrintGeometry函数,用于打印输出几何对象,在代码中不再一一调用 ...
- (转) Arcgis for js之WKT和GEOMETRY的相互转换
http://blog.csdn.net/gisshixisheng/article/details/44057453 1.wkt简介 WKT(Well-known text)是一种文本标记语言,用于 ...
- map geometry wkt转化
wkt---geometry wkt中有Z的在转化成geometry的时候会保留z坐标 "POLYGONZ((120.5521 60.6667,121.5521 ...
- JTS(Geometry)工具类
空间数据模型 (1).JTS Geometry model (2).ISO Geometry model (Geometry Plugin and JTS Wrapper Plugin) GeoTo ...
- mybatis类型转换器处理PostGis数据库geometry类型转换
在入库和查询中需要自动的让geometry的类型和实体类中的类型映射. 实体类中接收参数是String类型(geoJson) PostGis中的geometry类型是十六进制的扩展WKB类型(EWKB ...
- mysql 地理_MySQL geometry地理位置数据存储和计算
最近学习了些MySQL geometry数据存储和计算,在这里记录下. 1. 环境 geometry推荐在5.6版本以上使用,尽管大部分功能在5.5已经可用,除了距离计算函数st_distance等新 ...
- JTS Geometry
JTS Geometry关系判断和分析 JTS Geometry关系判断和分析 1.关系判断 1.1实例 2.关系分析 2.1实例 JTS(Geometry) JTS Geometry关系判断和分析 ...
- PostgreSql操作geometry
GIS开发对数据的操作,主要是对空间数据的操作.PostgreSql提供了一些处理空间数据的函数,操作起来是比较方便的.下面就记录一下,最近做项目里面用到的一些,也是比较常用的. 空间数据 介绍这些函 ...
最新文章
- 9102年webpack4搭建vue项目
- linux查找日志技巧
- 机器之心公开演讲:如何用AI技术传播AI知识
- asp.net三层架构连接Oracle 11g详解
- 2050 Programming Competition (CCPC)
- Java 8 stream forEach filter anyMatch
- c语言支持默认参数吗,嵌入式C语言可以带“默认参数”的函数吗
- 开发工具:IDEA 强大的 Live Templates!
- python简单菜单_创建一个简单的python菜单
- URAL 1876 Centipede's Morning (机智)
- 关于pipe管道的读写端关闭问题
- 高数符号用计算机表示,请问高等数学的符号怎么在电脑上打出来
- vscode安装 Fira Code 编程字体,编程符号更精致美观
- JavaScript 基础概念
- linux ping 不通 arp incomplete,关于show arp表,显示Incomplete问题
- 2018首届世界传感器大会11月12日-14日在郑州召开
- 5G基站君的进化之路 — CU和DU分离
- 【牛腩】未能加载文件或程序集“AspNetPager”或它的某一个依赖项
- python读取fits第三方库_python-astropy.io.fits从具有多个HDU的大型fits文件中读取行
- S3C2440-裸机篇-06 | UART数据发送接收实验(扫描模式)
热门文章
- linux下载哪个python版本-Linux安装python3.6
- python入门教程非常详细-Python 基础教程
- mysql基础sql语句_SQL基础语句汇总
- LeetCode1262 可被三整除的最大和(动态规划)
- Appium环境安装
- 【经验心得】CS1.6:经典中的精品
- SpringBoot中在除controller以外注入service-过滤器中注入
- python中is与==的差别
- Day12 Java异常处理与程序调试
- htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。