Dotspatial 要素重叠部分去除
private void toolStripButton32_Click(object sender, EventArgs e)
{
/重叠部分去除操作——测试成功
if (mapMain.Layers.Count == 0)
{
return;
}
//重叠分析
//遍历要素,显示面积
FeatureSet fs = null;
fs = Lzq_LayerManager.getFeatureSetByName(layerNamePolygon, mapMain);
if (fs.FeatureType != FeatureType.Polygon)
{
return;
}
for (int i = 0; i < fs.Features.Count; i++)
{
var gm1 = (DotSpatial.Topology.Geometry) (fs.Features[i].BasicGeometry); // point
//DotSpatial.Topology.CoordinateArrays.RemoveRepeatedPoints(gm1.Coordinates);
for (int j = i + 1; j < fs.Features.Count ; j++)
{
var gm2 = (DotSpatial.Topology.Geometry) (fs.Features[j].BasicGeometry);
if (gm1.IsSimple && gm2.IsSimple)
{
//try
//{
if (gm1.Overlaps(gm2))
{
IGeometry geo = (gm1.Difference(gm2));
DotSpatial.Topology.CoordinateArrays.RemoveRepeatedPoints(geo.Coordinates);
if (geo.IsSimple)
{
geo.Normalize();
fs.Features[i].BasicGeometry = geo;
}
}
//}
//catch(Exception exc)
//{
// string msg = "林班号:" + fs.Features[i].DataRow["林班号"].ToString() +
// " 小班号:" + fs.Features[i].DataRow["小班号"].ToString();
// MessageBox.Show(exc + "\n" + msg);
//}
}
else
{
MessageBox.Show("isSimple is false");
}
}
}
MessageBox.Show("图斑个数:"+fs.Features.Count.ToString()+"\n属性表个数:"+fs.DataTable.Rows.Count);
fs.UpdateExtent();
fs.InitializeVertices();
fs.Save();
mapMain.ResetBuffer();
MessageBox.Show(@"重叠去除功能,执行完毕!", @"系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Dotspatial 要素重叠部分去除的更多相关文章
- Dotspatial 要素重叠分析
private void toolStripButton30_Click(object sender, EventArgs e) { //面状重叠分析 if (mapMain.Layers.Count ...
- Dotspatial 空间要素选择
//通过遍历选择要素,获取选择要素相交的要素 private void toolStripButton43_Click(object sender, EventArgs e) { //查看与选中要素重 ...
- ArcGIS空间分析工具
1. 3D分析 1.1. 3D Features toolset 工具 工具 描述 3D Features toolset (3D 要素工具集) Add Z Information 添加 Z 信息 添 ...
- Linux内存模型
http://blog.csdn.net/sunyubo458/article/details/6090946 了解linux的内存模型,或许不能让你大幅度提高编程能力,但是作为一个基本知识点应该熟悉 ...
- 常用的 html 标签及注意事项
<a> 标签 用法:用于定义超链接 清除浏览器默认样式: a { text-decoration: none;/* 去除下划线 */ color: #333;/* 改变链接颜色 */ } ...
- 选中FeatureLayer元素并高亮显示
点击FeatureLayer要素会弹出popup弹出框以显示要素的相关内容.这个例子实现点击要素,选中并高亮显示.例子使用ArcGIS API for JavaScript 4.8. 一.代码框架 & ...
- AO中的空间关系
名词解释: Boundary(边界): 只有线和面才有边界.面的边界是指组成面的框架线:线的边界是指线的二个端点(即起点和终点,不包括中间部分的节点):点没有边界. Interior(内部): 除去边 ...
- GIS地理工具案例教程——批量去除多边形的重叠部分
GIS地理工具案例教程--批量去除多边形的重叠部分 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 问题:几乎所有的手工生产的数据,都存在多边形 ...
- DotSpatial 创建面状要素——含空洞
private void toolStripButton23_Click(object sender, EventArgs e) { //选择图层 FeatureSet fs = null; fs = ...
随机推荐
- ubuntu18.04安装搜狗拼音
1.下载好搜狗安装包http://pinyin.sogou.com/linux/ ,注意位数! 2.打开终端安装依赖 sudo apt install libfcitx-qt0 3.提取下载好的 ...
- C# 插入、删除Excel分页符
引言 对Excel表格设置分页对我们预览.打印文档时是很方便的,特别是一些包含很多复杂数据的.不规则的表格,为保证打印时每一页的排版美观性或者数据的前后连接的完整性,此时的分页符就发挥了极大的作用.因 ...
- __BEGIN_DECLS 和 __END_DECLS
扩充C语言在编译的时候按照C++编译器进行统一处理,使得C++代码能够调用C编译生成的中间代码. 由于C语言的头文件可能被不同类型的编译器读取,因此写C语言的头文件必须慎重. 我们编写代码,经常需要c ...
- Activity的生命之路
activity的生命周期这张图是最经典的了,下面我就说一下 这张图的脉络: 第一条线我们这么走 onCreate→onStart→onResume→onPause→onStop→onDestroy ...
- python3中使用builtwith的方法(很详细)
1. 首先通过pip install builtwith安装builtwith C:\Users\Administrator>pip install builtwith Collecting b ...
- How to untar a TAR file using Apache Commons
import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress ...
- 关于bootstrap两个模态框的问题
今天不知道为什么,其中一个模态框无法正确触发,但是将两个模态框在body里的顺序调一下就都可以正确触发.
- machine learning 之 Anomaly detection
自Andrew Ng的machine learning课程. 目录: Problem Motivation Gaussian Distribution Algorithm Developing and ...
- JFree图表
************************************************************************************* 使用JFree生成统计图片, ...
- 第二天 Java语言基础
一.如何定义Java中的类 Java代码都定义在类中,类由class来定义,区分public class和class: 二.main方法的作用 main方法是程序的入口:保证程序的独立运行:被JVM调 ...