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 要素重叠部分去除的更多相关文章

  1. Dotspatial 要素重叠分析

    private void toolStripButton30_Click(object sender, EventArgs e) { //面状重叠分析 if (mapMain.Layers.Count ...

  2. Dotspatial 空间要素选择

    //通过遍历选择要素,获取选择要素相交的要素 private void toolStripButton43_Click(object sender, EventArgs e) { //查看与选中要素重 ...

  3. ArcGIS空间分析工具

    1. 3D分析 1.1. 3D Features toolset 工具 工具 描述 3D Features toolset (3D 要素工具集) Add Z Information 添加 Z 信息 添 ...

  4. Linux内存模型

    http://blog.csdn.net/sunyubo458/article/details/6090946 了解linux的内存模型,或许不能让你大幅度提高编程能力,但是作为一个基本知识点应该熟悉 ...

  5. 常用的 html 标签及注意事项

    <a> 标签 用法:用于定义超链接 清除浏览器默认样式: a { text-decoration: none;/* 去除下划线 */ color: #333;/* 改变链接颜色 */ } ...

  6. 选中FeatureLayer元素并高亮显示

    点击FeatureLayer要素会弹出popup弹出框以显示要素的相关内容.这个例子实现点击要素,选中并高亮显示.例子使用ArcGIS API for JavaScript 4.8. 一.代码框架 & ...

  7. AO中的空间关系

    名词解释: Boundary(边界): 只有线和面才有边界.面的边界是指组成面的框架线:线的边界是指线的二个端点(即起点和终点,不包括中间部分的节点):点没有边界. Interior(内部): 除去边 ...

  8. GIS地理工具案例教程——批量去除多边形的重叠部分

    GIS地理工具案例教程--批量去除多边形的重叠部分 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 问题:几乎所有的手工生产的数据,都存在多边形 ...

  9. DotSpatial 创建面状要素——含空洞

    private void toolStripButton23_Click(object sender, EventArgs e) { //选择图层 FeatureSet fs = null; fs = ...

随机推荐

  1. CDN的基本工作过程

    CDN的基本工作过程 使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商.跨地域的用户覆盖.由 ...

  2. 【转】spring cloud eureka 参数配置

    eureka.client.registry-fetch-interval-seconds 表示eureka client间隔多久去拉取服务注册信息,默认为30秒,对于api-gateway,如果要迅 ...

  3. java 各数据类型之间的转换

    String —> Date SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date ...

  4. 利用AOP实现SqlSugar自动事务

    先看一下效果,带接口层的三层架构: BL层: public class StudentBL : IStudentService { private ILogger mLogger; private r ...

  5. Oracle-07:别名,去重,子查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 依旧提供数据库脚本供操作 create table DEPT ( deptno ) not null, dna ...

  6. 概率与统计推断第二讲homework

    作业目的: 体会条件独立 1.现需要设计一个根据一个人是否是学生$S$(布尔变量)和其体重$W$(连续变量)判断该人的性别$G$(布尔变量).假设在给定$G$的情况下$S$和$W$独立,且假设概率分布 ...

  7. 《Redis入门指南》第2版 读书笔记

    读第二遍了,感觉和几年前读时的收获不一样了.送上门来当树洞的独自承担一切 Redis以简洁为美Redis通信协议是Redis客户端与Redis之间交流的语言,通信协议规定了命令和返回值的格式.Redi ...

  8. JVM堆内存监测的一种方式,性能调优依旧任重道远

    上月,由极客邦.InfoQ和听云联合主办2016 APMCon中国应用性能管理大会圆满落下帷幕.会上,Java冠军Martijn Verburg进行了一场Java and the Machine的分享 ...

  9. Centos7 编译安装Nginx 教程

    相信经过上篇博文的学习,聪明的你已经学会了如何在Centos7 上通过yum 方式安装Nginx ,但是有时候有些场景或者特俗情况下,我们往往需要通过编译源码方式安装,以便于更灵活地定制我们的Ngin ...

  10. bzoj3534 [Sdoi2014]重建

    变形的$Martix-Tree$定理 发现我们要求的是$\prod_{i \in E}{p_{i}} * \prod_{i \notin E}{(1-p_{i})}$ 然后呢? 矩阵树对重边也有效对吧 ...