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 ...
随机推荐
- 输入事件驱动---evdev_handler的大致实现流程(修整版)
一.input输入子系统框架 下 图是input输入子系统框架,输入子系统由输入子系统核心层(input core),驱动层和事件处理层(Event Handler)三部分组成.一个输入事件,比如滑动 ...
- MySQL存储IP地址操作
数据库数据表创建语法: DROP TABLE IF EXISTS `admin`; CREATE TABLE IF NOT EXISTS `admin`( `adminid` INT UNSIGNED ...
- C#获取CSV文件内容对逗号和引号分隔的处理
我们知道,使用excel工具保存成csv文件时有几个规则: 1.每一行的单元格内容之间用逗号分隔. 2.如果单元格的内容本身有逗号,这个单元格的内容将会用引号包含. 3.如果单元格的内容本身有引号 1 ...
- CI3.0控制器下面建文件夹 访问一直404 的解决方法
在单入口文件(框架目录下面的index.php)最下面的require_once BASEPATH.'core/CodeIgniter.php';这行上面设置一个路径,是相对于conrollers文件 ...
- 了解Android的编译器
了解一下Android的编译器并记录下来: Android在4.4以前是使用Dalvik VM的,通过Just In Time(JIT即时编译)来完成编译工作,在Android4.4提供了一种测试版本 ...
- JavaWeb前端:JQuery
Jquery基本概念 什么是Jquery Jquery是一个开源的,集成了Javascript,CSS,DOM,AJAX的前端框架:它诞生于2006年,最初是为了简化JavaScript开发而产生的, ...
- Redis入门学习笔记一
Redis 简要描述: 1. Redis 是啥 ? Redis 英文名称全称为: Remote Dictionary Server ,中译为远程字典服务器. 是一款区分于磁盘数据库如(Mysql)的 ...
- java 平面上最近两个点之间的距离
public class ClosestPair{ public static void main(String[] args) { float[][] a = new float[][]{{3, 3 ...
- angularjs的一些坑关于 $sec
今天遇到$sec的问题 app.filter('to_trusted', ['$sce', function ($sce) { return function (text) { return $sce ...
- Java代理模式/静态代理/动态代理
代理模式:即Proxy Pattern,常用的设计模式之一.代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问. 代理概念 :为某个对象提供一个代理,以控制对这个对象的访问. 代理类和委 ...