原文发布时间:2012-05-22

作者:littlebo

最近学习FME,使用FME完成了一个对界址点重排序的案例,写出来与大家分享探讨一下:

其实根据宗地生成界址点,界址线只需一个转换器Chopper即可完成,把最大节点数设为1,转为点;最大节点数设为2,转为线。

但是往往客户还会有其他的需求,比如:

1、 界址点按照街坊统一编号,从1开始累加编号,界址点编号在同一街坊不重复

2、 界址点从每宗地的左上角开始,顺时针顺序编号

3、 界址点按照本街坊,从左往右,从上往下顺序依次编号

例如下图:

那么我先说说我的思路:

第一步

顺序提取每个宗地坐标点:

这个过程是将宗地转为点,并顺序提取每个宗地界址点并编号(原始Point_id),注意,此编号的起点并不是左上角,有可能是右上角,右下角。

这里用到Orientor:将多边形节点转为顺时针;

还有一个循环:顺序提取坐标点并赋给属性ys_point_id

第二步

界址点重排序:

寻找左上角界址点,并赋point_id为1,然后以此界址点为起点,为界址点重新顺序编号point_id;

这个过程重要点有两个地方,

1、      寻找左上角界址点:通过获取每个点坐标,选择X最小的为起点(当然这也有可能是左下角)

2、      界址点重新编号:首先找到左上角点,通过此点的ys_point_id-1计算出Δid,然后根据此Δid计算其他每个界址点的新序号point_id=ys_point_id-Δid,当然这里需要进行判断,如果point_id>0那么此id为新序号,如果point_id<=0,那么point_id+point_sum为新序号。(point_sum为宗地界址点总数,在第一步计算出)

当然在此过程用到Sorter:重新排序;

DuplicateRemover:删除重复点。

最后输出将会得到重新排序后的界址点。

如果还需要生成界址线,并且带有起始点号;终止点号的属性,实现思路就是将这些重排序的点与线重叠,将点编号传递给线,从而得到界址线的起始点号、终止点号。

注意:

数据中可能会出现环、聚合体等复杂结构,所以在做这些处理之前需要考虑对环和聚合体的预处理;

环的处理将用到DonutHoleExtractor转换器;

聚合体的处理用到Deaggregator转换器,这些具体问题就需要具体分析了。

以上纯属个人理解,如有不对请多指教。

利用FME实现宗地生成界址点界址线相关推荐

  1. 利用FME自动生成CAD图框

    原文发布时间:2014-09-09 作者:lkfree 利用FME可以在cad中根据某个范围生成图框,可以用来实现某些地块专题图(例如宗地图.选址范围图)这里我根据GIS数据库中某个地块面为中心,生成 ...

  2. lisp自动生成界址点表_基于AUTO CAD绘制宗地界址点成果表程序的研发

    基于 AUTO CAD 绘制宗地界址点成果表程序的研发 陈亚明 ; 杨俊杰 ; 张胜利 [期刊名称] <科技创新与生产力> [年 ( 卷 ), 期] 2007(161)006 [摘要] 针 ...

  3. FME在宗地图形拓扑中的应用

    原文发布时间:2011-11-14 15:37:18 作者:跑 联系:QQ44295133 1          引子 宗地作为国土行业的核心数据,相关检查是最严密的.然而,现有数据平台往往不具备完整 ...

  4. lisp自动生成界址点表_基于AutoCAD VBA增减挂钩报备坐标文件自动生成.doc

    基于AutoCAD VBA增减挂钩报备坐标文件自动生成 基于AutoCAD VBA增减挂钩报备坐标文件自动生成 摘要:生成增减挂钩报备坐标文件是一项非常繁琐的工作,会占用大量工作时间.如果利用VBA对 ...

  5. 2019FME博客大赛——【零编码】利用FME实现城市高德路况抓取及增量更新——以深圳为例

    参赛单元:互联网.大数据及云计算 作者:杨忠智 单位:平安国际智慧城市科技股份有限公司 前言 继续我的[零编码]系列. 简单是美.虽为"码农",但本身还是个GISer,所以在进行数 ...

  6. 2019FME博客大赛——利用FME进行POI名称相似检查并分组

    参赛单元:传统GIS数据处理 作者:祁建春 单位:北京超图软件股份有限公司 1 目的 做项目时,有时我们会接触到不同来源的数据,数据属性字段中的"数据名称"或"数据地址& ...

  7. 开发日记-20190328 关键词 利用eolinker一键快速生成API接口文档

    今天感觉效率真的很低= =各个层面的,apk发布到现场发现出现了问题,所以一个下午都在忙着解决现场出现的问题,领导一直打电话询问进度,午觉也没有睡所以今天预计的很多计划都处于停滞状态,像昨天规划的今天 ...

  8. DL之RNN:人工智能为你写代码——基于TF利用RNN算法实现生成编程语言代码(C++语言)、训练测试过程全记录

    DL之RNN:基于TF利用RNN算法实现生成编程语言代码(C语言).训练&测试过程全记录 目录 输出结果 监控模型 训练&测试过程全记录 训练的数据集展示 输出结果 1.test01 ...

  9. 实体类dao接口mysql_利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件...

    解决问题: 可利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件. 测试环境准备: 新建一个mysql数据库,例如mungerzTest. 生成一张主键为自增ID的学生表: C ...

最新文章

  1. Udacity机器人软件工程师课程笔记(二十四) - 控制(其二) - PID优化,梯度下降算法,带噪声的PID控制
  2. 在ASP.NET中使用WINDOWS模式登录SQL数据库
  3. Java Web开发中文乱码问题
  4. Activity栈管理(一):Activity任务栈模型
  5. ivew 双向绑定时间控件
  6. ubuntu16.04下安装nodejs
  7. codeforces798C - Mike and gcd problem (数论+思维)
  8. RocketMQ的安装与启动
  9. Oracle-Linux安装配置python3.6环境
  10. ubuntu安装Nvidia-docker2详细步骤
  11. 【安装记录】如何在官网找到老版本的jdk,如 jdk-8u271-windows-x64
  12. AD7705模数转换芯片工作原理
  13. 怎么用计算机进行气象预报,中央气象台进行天气预报,先用计算机解出描述天气演变的方程组,“算”出来未来天 - 问答库...
  14. Docker 问题集锦(19) - 解决:standard_init_linux.go:219: exec user process caused
  15. eclipse 缓解眼睛疲劳保护眼睛
  16. 误码率matlab,关于误码率的问题 急!!!!!
  17. apache服务器(修改主页文件、两个不同ip访问不同站点、统一ip不同端口访问不同站点)
  18. 自定义ro.build.fingerprint
  19. python判断用户输入的数是正数还是负数
  20. 小米路由器mini 半自动刷机进入breed(无需U盘刷机)

热门文章

  1. c语言9999是合法常量吗,只会G代码不会宏程序,都不敢说自己是老师傅!
  2. ACM-计算几何之Cupid's Arrow——hdu1756
  3. java设置画笔_java 画笔方法
  4. Tebis4.0中文建模 编程加工视频教程-文字提示无声版
  5. 隐藏计算机公共云盘图标,关闭百度网盘在文件资源管理器上的图标
  6. Flutter变换Transform
  7. java虚拟机架构图,图解快速入门Java虚拟机JVM
  8. 2021新出iOS开发程序员学习路线,涵盖大部分iOS知识体系【不会没收藏吧!】
  9. 博士申请 | 香港理工大学OIG实验室招收AI医疗/医学影像方向全奖博士生
  10. 1.特定领域知识图谱知识融合方案(实体对齐):基于图神经网络的商品异构实体表征探索