ArcGIS Engine 几何对象和WKB的转换
- 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();
- 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);
- }
- }
- }
ArcGIS Engine 几何对象和WKB的转换的更多相关文章
- 基于Arcgis Engine 10.2(C#)+PostgreSQL 11(Postgis 3)+pgRouting 3.0实现使用数据库进行路径规划
前言:最近在(被迫)使用ArcGIS Engine10.2(.NET平台)进行二次开发(桌面应用),因为想做一个最短路径查询的功能,而arcgis的网络分析又比较麻烦,于是想到了使用Postgis.但 ...
- ArcGIS Engine开发之旅09--几何对象和空间参考
原文:ArcGIS Engine开发之旅09--几何对象和空间参考 1.Geometry Geometry 是 GIS 中使用最为广泛的对象集之一,用户在创建.删除.编辑和进行地理分析的时候,就是处 ...
- ArcGIS Engine开发之旅08--和查询相关的对象和接口
原文:ArcGIS Engine开发之旅08--和查询相关的对象和接口 查询在GIS领域应该是一个很频繁的操作,在GIS中除了具有属性查询(和其他关系型数据库的查询类似),还提供了空间查询.在介绍查询 ...
- arcgis for silverlight 地图放大到某个点或者几何对象
http://blog.csdn.net/xuan444150/article/details/7727866 分类: silverlight王国 GIS王国 2012-07-09 08:50 1 ...
- arcgis几何对象
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Arcgis Engine(ae)接口详解(5):IGeometry几何高级操作
IPoint point = new PointClass(); point.PutCoords(, ); //ITopologicalOperator接口用于几何对象的几何操作 ITopologic ...
- vs.net调试ArcGIS Engine代码查看变量时,提示“要检查本机对象,请启用本机代码调试。” 的解决方法
用vs2017 调试 查看ArcGIS Engine 的变量时 会提示如下图所示的错误: 解决方法: 工具->选项->调试->常规->使用托管的兼容模式 如下图所示: 2.设置 ...
- ArcGIS Engine开发之地图基本操作(3)
地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种: ...
- ArcGIS Engine开发之旅04---ARCGIS接口详细说明
原文:ArcGIS Engine开发之旅04---ARCGIS接口详细说明 ArcGIS接口详细说明... 1 1. IField接口(esriGeoDatabase)... 2 2. ...
随机推荐
- 【Winform】锐浪报表使用
在发开报表时,使用了锐浪报表. 需要注意的一些细节: 1.给staticbox设置文本,通过GridppReport的变量,使用ControlByName获取到控件后进行设置文字 _report.Co ...
- JS实现图片翻书效果示例代码
js 图片翻书效果. picture.html <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...
- linux set,env和export
set,env和export这三个命令都可以用来显示shell变量 set 显示当前shell的变量,包括当前用户的变量 env 显示当前用户的变量 export 显示当前导出成用户变量的shell变 ...
- 详解Google-ProtoBuf中结构化数据的编码
本文的主要内容是google protobuf中序列化数据时用到的编码规则,但是,介绍具体的编码规则之前,我觉得有必要先简单介绍一下google protobuf.因此,本文首先会介绍一些google ...
- Keil V5.1x命令“Build Target”重新编译所有文件
网上的解决办法有多种,但不知道哪一种能对症,以下是我的解决方法:
- windows下编译php5.2.17这是闹哪样?
参考:http://demon.tw/software/compile-php-on-windows.html
- SVN备份教程(一)
最近一段时间在项目中用到了SVN备份的相关内容,这里给大家做一个简单的教程,重点在于SVN备份环境的搭建过程中,大家学到的解决问题的思维方式. 1.分类 SVN备份主要分为两种:一种是远程备份,另一种 ...
- cocos2dx之C++调用Lua
原文地址:http://blog.csdn.net/dingkun520wy/article/details/49839701 1.引入头文件 #include "cocos2d.h&quo ...
- 进入 App Store 打分
很多用户用了好软件后忘记或嫌麻烦而不去 App Store 进行打分评星,为此开发者可以在应用中加入打分按钮,点击后直接跳转到 App Store 的评分界面. App Store 上评论的链接地址是 ...
- tableView中不易被注意到的方法
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ } 这个方法 在 r ...