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 ...
随机推荐
- mac 安装命令行开发者工具
terminal中执行: xcode-select --install然后点击 “安装”即可 mac命令行工具
- 展讯camera去除尺寸相关缓存
amera应用的缓存在/data/data/com.android.camera2/shared_prefs目录下
- 程序设计入门——C语言 第7周编程练习 1多项式加法(5分)
第7周编程练习 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...
- MFC编程入门之二十一(常用控件:编辑框Edit Control)
上一节讲了静态文本框,本节讲的是编辑框(Edit Control)同样是一种很常用的控件,我们可以在编辑框中输入并编辑文本.在前面加法计算器的例子中已经演示了编辑框的基本应用.下面具体讲解编辑框的使用 ...
- 转载ali面
引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字. 写这篇文章的目的其实很简单,算是对之前LZ一篇文章的补充和完善. 之前LZ写过一篇<回答阿里社招面试如何准备,顺便谈谈 ...
- Head First 设计模式 --11 代理模式
代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问. 代码: interface Boss { public void meeting(); } class BossImp implem ...
- ORACLE误删除ASM磁盘修复
在数据库运维中,总会遇到一些粗心大意的DBA,一不小心删除一些东西,这里举例讲解在误删除ASM磁盘之后,如果用KFED工具进行恢复: [grid@RAC1 ~]$ sqlplus / as sysas ...
- js 截取字符串,取指定位置的字符(完善中)
1.获取字符串的最后一位或第一位 str.charAt(str.length - 1); str.charAt(0);
- openssl stack 数据结构栈基本操作
堆栈是两种不同的数据结构: 堆:数据先进先出: 栈:数据先进后观: 在stack.h 中 openssl 为我们提供了一个通用的栈,利用提供的接口我们可以方便的用此栈来存放开发中的任意数据. open ...
- IntelliJ IDEA中Maven项目的默认JDK版本
在IntelliJ IDEA 15中使用Maven时,IDEA将默认的编译版本.源码版本设置为jdk5.编译项目的时候出现警告:"Warning:Java: 源值1.5已过时, 将在未来所有 ...