DotSpatial 创建面状要素——含空洞
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 创建面状要素——含空洞的更多相关文章
- Dotspatial 创建面状图层
using DotSpatial.Controls;using DotSpatial.Data;using DotSpatial.Data.Forms;using DotSpatial.Plugins ...
- oracle入坑日记<六>自增列创建和清除(含序列和触发器的基础用法)
0 前言 用过 SQLserver 和 MySQL 的自增列(auto_increment),然而 Oracle 在建表设置列时却没有自增列. 查阅资料后发现 Oracle 的自增列需要手动编写. ...
- 【Android】纯代码创建页面布局(含异步加载图片)
开发环境:macOS 10.12 + Android Studio 2.2,MinSDK Android 5.1 先看看总体效果 本示例是基于Fragment进行的,直接上代码: [界面结构] 在 F ...
- Yii 2.0: yii2-highcharts-widget创建饼状图
安装 The preferred way to install this extension is through composer. 项目根目录下执行: php composer.phar requ ...
- Java之文本文件的创建和读取(含IO流操作)
工具类:对文件的读取,创建.直接复制拿来用! package cn.zyzpp.util; import java.io.BufferedReader; import java.io.Buffered ...
- WCF尝试创建与发布IIS(含问题描述)
技术贴技术贴就直接讲技术来,客套的话我也不多说了,各位看官包涵包涵. 跟着园内高手一步一步发布成功,欣喜若狂之际,发个贴纪念纪念一下. 废话不多说,不正确之处,还望大家积极指出,共同进步.哈哈~~~ ...
- arcgis的arcpy写入几何怎么创建一个空心面要素并读取几何和属性信息,根本不够管
转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/83861447 这个我是没找到这 ...
- GDAL不支持创建PCIDSK的面状矢量格式
最近在使用GDAL创建PCIDSK格式的矢量数据,发现创建点和线的矢量数据都没问题,创建面状的只有属性表没有图形.在GDAL官网说明也写的是支持的,地址为:http://www.gdal.org/fr ...
- 如何创建一个要素数据类 IField,IFieldEdit,IFields,IFieldsEditI,GeometryDef,IGeometryDefEdit接口
如何创建一个要素数据类 创建要素类用到了IFeatureWorkspace.CreateFeatureClass方法,在这个方法中有众多的参数,为了满足这些参数,我们要学习和了解下面的接口. IFie ...
随机推荐
- 学习UFT11.5历程(二)
1. QTP对象TO与RO TO: test object. 本地对象库里的封装对象 RO:run object. 运行封装对象 和TO.RO相关的几个函数有: GetTOProperty(“属性名” ...
- 程序设计入门——C语言 第6周编程练习 2 完数(5分)
2 完数(5分) 题目内容: 一个正整数的因子是所有可以整除它的正整数.而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.例如6=1+2+3(6的因子是1,2,3). 现在,你要写一个程序, ...
- Android中实现全屏、无标题栏的两种办法
在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏.要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置. 1.在xml文件中进行配置 在项目的清单文件AndroidManife ...
- openssl lhash 数据结构哈希表
哈希表是一种数据结构,通过在记录的存储位置和它的关键字之间建立确定的对应关系,来快速查询表中的数据: openssl lhash.h 为我们提供了哈希表OPENSSL_LHASH 的相关接口,我们可以 ...
- 表单提交与后台PHP如何接口?
在网页中,常常有这样那样的表单需要提交,比如登陆,比如注册,比如查询,比如填写问卷.在这样的表单提交过程中,我们究竟向后台提交了什么,是以什么形式提交的,是一个很值得探讨的问题. 提交了什么——就是我 ...
- vs2012配置OpenGL
1.下载glut包: http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 2.将下载的压缩包解压,得到5个文件,如下: ...
- null
期末考备考最后三天. 加油,把这学期学的知识给它搞透了.
- 机器学习之KNN算法思想及其实现
从一个例子来直观感受KNN思想 如下图 , 绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形 ...
- Nodejs express中创建ejs项目,解决express下默认创建jade,无法创建ejs问题
最近在看<Node.js开发指南>,看到使用nodejs进行web开发的时候,准备创建ejs项目遇到问题了, 书上命令为: express -t ejs microblog 可是执行后,仍 ...
- 前端常用的几个js判断(一)
1. 禁止右键点击$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return ...