开发CAD和GIS绘图系统有些区别,自己试着分析一下。

  ♠ 首先CAD图形绘制主要管理图形,因此会有一个抽象的Geometry对象,软件维护一个Geometry对象的集合。如果以图层来管理几何图形,则是每个图层维护一个Geometry对象集合。

    Canvas——Layers——Geometrys

  点、线、面对象都继承自Geometry,并且有各自的Style属性。

  对于点有颜色、大小等属性;线有线型、线宽、颜色、实线/虚线等属性;面有线型、线宽、填充颜色、线框颜色、填充样式等属性。这样Style形成了一个继承层次。

  ♠ 其次GIS图形绘制,首先GIS绘图系统维护一个Map对象,并且按照图层(Layer)的方式来组织,图层可以分为矢量和栅格图层,每个图层包含要素集FeatureClass和Render属性。

             |——FeatureClass

    Map——Layers——|

             |——Renderer

  FeatureClass与具体的数据源建立联系,Renderer对象是数据的着色方式,有唯一值着色、有简单着色和分级着色等几种方式。

  FeatureClass包含Feature要素,Feature要素的Shape属性是一个Geometry对象。点、线、面等都继承自Geometry。

  Renderer对象是包含一个或多个Symbol对象。对于不同的图层类型(点、线、面)有不同的Symbol,对应不同的符号,这样Symbol也形成一个继承层次。

  ♠  这里分析一下捕捉的机制,图形绘制系统的捕捉功能非常有用。上面一分析看出CAD系统的捕捉功能相对GIS系统实现要容易许多。因为对于绘图画板,只需要将Geometry对象集合遍历进行计算即可。很容易获取Geometry对象集合,而GIS系统则相对复杂。下面说说复杂的原因:GIS系统是维护者图形和属性数据的,刚才分析Feature对象是有一个Shape属性的,但是他同时还包含很多的字段Field列,每一条Feature对应属性表的一条记录。而且由于FeatureClass或者属性表一般都采用关系数据表的方式进行属性数据的管理,没有像CAD系统那样把几何图形和属性数据都一次性加载到内存,而是采用FeatureCusor的方式来读取记录,类似于C++的遍历器iterator。毕竟GIS是要管理海量数据的,一次性全部加入内存也是不现实的。所以每次获取FeatureLayer的FeatureClass,再通过FeatureCusor获取要素。(这么一分析,第一次加载显示的时候就调用了FeatureClass加载了全部的要素啊,以后查询什么的仍是通过FeatureCusor来获取要素啊?)

  为了实现捕捉并且高效的捕捉,必须在移动地图的过程中动态维护一个集合,该集合只对当前视图范围的几何对象进行遍历和运算,寻找中点、节点、垂足等点位。

  ♠  分析一下选择机制,Canvas和Map都有一个Selection属性,是object对象集合,用来存储被选择的几何对象或者要素。并且绘制系统以不同的机制重新绘制这些对象,一般是高亮(改变颜色)和加粗线框结合的方式。

CAD和GIS绘制图形分析相关推荐

  1. CAD相切方式绘制图形

    这个图形用到的相切相切半径方式绘制图形,要确定相切的切点位置,因为切点的位置不同有可能绘制出来的图形就不同了,用到的有CAD圆.导圆角和CAD圆中的切点切点半径 目标对象 操作步骤 1.用直线命令绘制 ...

  2. CAD中的超级修剪功能、使用CAD旋转命令绘制图形

    在CAD梦想画图软件中的修剪功能中有一个栏选功能,能快速的修剪所选的对象. 操作工具 操作系统:Windows10 CAD软件:CAD梦想画图 步骤 1.如下图我们需要把洋红色直线中的对象修剪掉: 目 ...

  3. CAD如何创建图层并绘制图形

    1.   点击[快速访问]工具栏中的[新建]按钮,新建空白文件. 2.   在命令行中输入LA,调用[图层特性管理器]命令,系统会自动弹出[图层特性管理器]对话框. 3.   点击[新建图层]按钮,新 ...

  4. CAD绘图时怎么查看所绘制图形两点间的距离?

    对于设计师们来说,日常工作中对于图纸的绘制和测量真的是不能更熟悉的操作了,那么对于刚刚开始接触CAD的洗哦啊伙伴们来说,图纸测量还是有不小的难度的,那么应该要怎么操作呢?接下来就和小伙伴们分享一下在C ...

  5. 使用CAD镜像和修剪命令绘制图形

    如下图所示根据标注的尺寸,使用CAD画图软件绘制出一样的图形: 目标对象 操作工具 操作系统:Windows10 CAD软件:CAD梦想画图 步骤 1.先画一个直径为70的圆,再画一个内接于圆的正三边 ...

  6. 使用CAD圆和多边形内、外接圆命令绘制图形。使用CAD多线段命令绘制图形

    如下图所示根据标注的尺寸,用CAD画图软件绘制出一样的图形: 目标对象 操作工具 操作系统:Windows10 CAD软件:CAD梦想画图(轻量级CAD.国产CAD软件) 步骤 1.先使用CAD圆命令 ...

  7. CAD制图怎么绘制对称的图形?

    不知道小伙伴们在CAD制图的过程中有没有遇到过这样的烦恼,当我们在绘制图形时,单个的图纸是没有什么太大的问题的,但是如果需要绘制对称的 CAD图形时就很艰难了,画圆这种简单的操作我们自然是不必说的,那 ...

  8. 使用CAD偏移和阵列命令绘制图形、使用CAD旋转复制命令绘制图形

    如下图所示根据标注的尺寸,用CAD画图软件绘制出一样的图形: 目标对象 操作工具 操作系统:Windows10 CAD软件:CAD梦想画图 步骤 1.使用CAD多线段命令,画一条长为20的直线.直径为 ...

  9. 使用CAD旋转复制命令绘制图形

    如下图所示根据标注的尺寸,用CAD画图软件绘制出一样的图形: 目标对象 操作工具 操作系统:Windows10 CAD软件:CAD梦想画图(轻量级CAD.国产CAD软件) 步骤 1.先画一条长度为10 ...

最新文章

  1. 前端抱怨 API 响应慢,怎么办?
  2. php 使用css乱码,分享CSS字符编码引起乱码快速解决的方法
  3. Nginx could not build the server
  4. 这些年书读太少,没有读进去
  5. C# —— 序列化与反序列化
  6. phpcmsV9 关键词keywords删除、替换与修改
  7. linux内核定时器 代码,Linux内核计时器
  8. WIN7安装FreeSwitch,1.8版本无法安装,1.6版本成功
  9. NLP+句法结构(三)︱中文句法结构(CIPS2016、依存句法、文法)
  10. shell编程之awk(数据筛选与处理)
  11. 「docker实战篇」python的docker- 抖音视频抓取(中)(25)
  12. 还在花冤枉钱找人做电子签名?看这儿,教你制作纯手写电子签名
  13. CSS图片裁剪:实现切角效果
  14. 监控平台设计 之 Graphite、Prometheus 竞对
  15. ubuntu使用记录(3)ubuntu 防火墙开放端口(开启ssh)
  16. Python代码在Pycharm中不起作用,但在Jupiter Notebook中执行良好
  17. 易失性存储DRAM详解
  18. 安装finalshell 高级版(绿色版)
  19. redis 过期策略
  20. 新一代服务器监控系统,NVR成为新一代的视频监控存储标准方案

热门文章

  1. 实现手机来电铃声,通知铃声、警告铃声等音频定制化功能(三,多媒体扫描结果定制处理)
  2. 使用CSS样式设置文本超出2行显示为省略号
  3. truetype字体怎么转换成普通字体_TrueType字体作用|如何在文档嵌入 TrueType 字体中...
  4. 【全局规划】栅格地图
  5. RPA 软件技术是什么意思
  6. RAW图像数据到RGB
  7. CAD绘制区域覆盖对象
  8. Python使用Reportlab处理PDF数据 - 自定义页眉和页脚
  9. html四张图片拼图,js实现html滑动图片拼图验证
  10. linux执行ps命令卡住了,linux ps命令的状态说明