private void toolStripButton23_Click(object sender, EventArgs e)
{
//选择图层
FeatureSet fs = null;
fs = (FeatureSet) map1.Layers[0].DataSet;

//面层增加要素

//定义坐标List
List<Coordinate> polygonArray1 = new List<Coordinate>();
polygonArray1.Add(new Coordinate(625105, 5050458));
polygonArray1.Add(new Coordinate(627115, 5050486));
polygonArray1.Add(new Coordinate(627103, 5048421));
polygonArray1.Add(new Coordinate(625021, 5048466));
polygonArray1.Add(new Coordinate(625105, 5050458));
//创建外环
var outerRing = new LinearRing(polygonArray1);

//判断坐标数组是否为顺时针,否则数组反转
if (CgAlgorithms.IsCounterClockwise(outerRing.Coordinates))
{
outerRing = new LinearRing(outerRing.Reverse());
}
//定义内环1——空洞1
var hole1 = new LinearRing(new List<Coordinate>()
{
new Coordinate(626304, 5050188),
new Coordinate(626721, 5050188),
new Coordinate(626715, 5049777),
new Coordinate(626394, 5049625),
new Coordinate(626186, 5049743),
new Coordinate(626208, 5050014),
new Coordinate(626304, 5050188),
});
//是否为逆时针,否则反转,必须是逆时针的,否则创建的要素的图形异常
if (!CgAlgorithms.IsCounterClockwise(hole1.Coordinates))
{
hole1 = new LinearRing(hole1.Reverse());
}
//定义内环2
var hole2 = new LinearRing(new List<Coordinate>()
{
new Coordinate(625454, 5050228),
new Coordinate(625876, 5050250),
new Coordinate(625876, 5049710),
new Coordinate(625426, 5049743),
new Coordinate(625454, 5050228)
});
//是否为逆时针,否则反转,必须是逆时针的,否则创建的要素的图形异常
if (!CgAlgorithms.IsCounterClockwise(hole2.Coordinates))
{
hole2 = new LinearRing(hole2.Reverse());
}

//——将hole1、hole2 添加到数组中,进行坐标翻转
//LinearRing[] lr2 = { hole1,hole2 };

////make sure the holes are oriented counterclockwise
//for (int i = 0; i < lr2.Length; i++)
//{
// if (!CgAlgorithms.IsCounterClockwise(lr2[i].Coordinates))
// {
// lr2[i] = new LinearRing(lr2[i].Reverse());
// }
//}

//创建要素
Polygon pP = new Polygon(outerRing, new ILinearRing[] {hole1, hole2});

IFeature polygonFeature = fs.AddFeature(pP);
polygonID = polygonID + 1;
polygonFeature.DataRow["Text"] = polygonID;
fs.InitializeVertices();
fs.Save();
map1.ResetBuffer();

}

DotSpatial 创建面状要素——含空洞的更多相关文章

  1. Dotspatial 创建面状图层

    using DotSpatial.Controls;using DotSpatial.Data;using DotSpatial.Data.Forms;using DotSpatial.Plugins ...

  2. oracle入坑日记<六>自增列创建和清除(含序列和触发器的基础用法)

    0   前言 用过 SQLserver 和 MySQL 的自增列(auto_increment),然而 Oracle 在建表设置列时却没有自增列. 查阅资料后发现 Oracle 的自增列需要手动编写. ...

  3. 【Android】纯代码创建页面布局(含异步加载图片)

    开发环境:macOS 10.12 + Android Studio 2.2,MinSDK Android 5.1 先看看总体效果 本示例是基于Fragment进行的,直接上代码: [界面结构] 在 F ...

  4. Yii 2.0: yii2-highcharts-widget创建饼状图

    安装 The preferred way to install this extension is through composer. 项目根目录下执行: php composer.phar requ ...

  5. Java之文本文件的创建和读取(含IO流操作)

    工具类:对文件的读取,创建.直接复制拿来用! package cn.zyzpp.util; import java.io.BufferedReader; import java.io.Buffered ...

  6. WCF尝试创建与发布IIS(含问题描述)

    技术贴技术贴就直接讲技术来,客套的话我也不多说了,各位看官包涵包涵. 跟着园内高手一步一步发布成功,欣喜若狂之际,发个贴纪念纪念一下. 废话不多说,不正确之处,还望大家积极指出,共同进步.哈哈~~~ ...

  7. arcgis的arcpy写入几何怎么创建一个空心面要素并读取几何和属性信息,根本不够管

    转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/83861447 这个我是没找到这 ...

  8. GDAL不支持创建PCIDSK的面状矢量格式

    最近在使用GDAL创建PCIDSK格式的矢量数据,发现创建点和线的矢量数据都没问题,创建面状的只有属性表没有图形.在GDAL官网说明也写的是支持的,地址为:http://www.gdal.org/fr ...

  9. 如何创建一个要素数据类 IField,IFieldEdit,IFields,IFieldsEditI,GeometryDef,IGeometryDefEdit接口

    如何创建一个要素数据类 创建要素类用到了IFeatureWorkspace.CreateFeatureClass方法,在这个方法中有众多的参数,为了满足这些参数,我们要学习和了解下面的接口. IFie ...

随机推荐

  1. java:StringBuffer字符处理对象

    1.添加字符 public class StringBufferDemo { public static void main(String args[]) { StringBuffer sbf = n ...

  2. python——SQL基本使用

    终于学到数据库操作了,这意味着什么?以后再也不用从文件里读写数据了,过程实在太复杂了~~~为了纪念这个激动人心的时刻,一定要写一篇博客! 使用mysql数据库——增 插入一条数据 首先,还是先解释一下 ...

  3. Python学习笔记之Beautiful Soup

    如何在Python3.x中使用Beautiful Soup 1.BeautifulSoup中文文档:http://www.crummy.com/software/BeautifulSoup/bs3/d ...

  4. git配置笔记

    windows: 1. PS>ssh-keygen -t rsa -C "your_email@youremail.com" ssh-keygen命令报错--无法将“ssh- ...

  5. 从下往上看--新皮层资料的读后感 第二部分:突触Synapses

    为进一步了解这种连接性产生的差异,在认识soma这个独立的逻辑单元后,进化过程设计了一整套系统设计来使用这个逻辑单元.为促成细胞体之间发生连接构成系统dendrite和axon之间的连接需要引入新的功 ...

  6. 基础算法之快速排序Quick Sort

    原理 快速排序(Quicksort)是对冒泡排序的一种改进. 从数列中挑出一个元素,称为"基准"(pivot); 排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的 ...

  7. php curl用法

    curl 是使用URL语法的传送文件工具,支持FTP.FTPS.HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP.curl 支持SSL证书.HTTP POS ...

  8. C# WebForm内置对象2+Repeater的Command

    内置对象:用于页面之间的数据交互 为什么要使用这么内置对象?因为HTTP的无状态性. Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及 ...

  9. web网站 Vs 移动App 谁更能打动你?之 产品经理篇

    从web1.0到web2.0,由单调变为丰富——无论是内容,呈现,还是用户交互,当我们(接触互联网只有五六年的人)可能还沉浸在这绚丽多彩,啧啧称奇web交互体验之中,移动App不知道在什么时候已经悄然 ...

  10. C#中获取当前时间:System.DateTime.Now.ToString()用法

    //2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString(& ...