我们添加点.线.面来实现图形的编辑需要使用Geometry对象类. Point(点) 是一个0维的几何图形,具有X.Y坐标值,以及可选的属性,如高程值(Z值).度量值(M值).ID值等,可用于描述需要精确定位的对象. Polyline(线) 是一个有序路径(Path)的集合,这些路径既可以是连续的,也可以是离散的.折线可用于表示具有线状特征的对象,用户可以用单路径构成的折线来表示简单线,也可以用具有多个路径的多义线来表示复杂线类型. Polygon(面) 是环(Ring)的集合,环是一种封闭的路…
前言 需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - - 演示地址:查看演示DEMO 新版本支持IE5+(你没看错,就是某软的IE浏览器)以上任意浏览器的Canvas绘图:http://blog.csdn.net/eguid_1/article/details/79310269 一.实现的功能 1.基于oop思想构建,支持坐标点.线条(由坐标点组成,包含方向).多边形(由多个坐标点组成).圆形(包含圆心坐标点和半径)等实体 2.原生JavaScript实现,不依赖任何第三方…
1.线段绘制 基本步骤 构建形状 1. 创建 IPoint IPoint m_Point = new PointClass(); m_Point.PutCoords(x, y); 2. 创建 IPointCollection IPointCollection m_PointCollection = new PolylineClass(); m_PointCollection.AddPoint(m_Point, ref Type.Missing, ref Type.Missing); 3. 创建…
分类: 离散数据图形绘制 函数图形绘制 网格图形绘制 曲面图形绘制 特殊图形绘制 本文重点介绍matlab五种图形绘制方法的后三种. 一.网格图形绘制 以绘制函数z=f(x,y)三维网格图为例,下面为绘制步骤: 确定自变量x和y的取值范围和取值间隔 x = x1:dx:x2; y = y1:dy:y2; 2.构成xoy平面上的自变量采样格点矩阵 1)  利用“格点”矩阵生成原理生成矩阵 X = ones(size(y))*x; Y = y*ones(size(x)); 2)  利用meshgri…
首先编写MyView类 代码如下: package com.example.myhello; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.Rect; import and…
一.圆 public static void cvCircle( IntPtr img, System.Drawing.Point center, //Center of the circle int radius, //Radius of the circle MCvScalar color, //Color of the circle int thickness, if negative indicates that a filled circle has to be drawn Emgu.…
在上一篇,ArcGIS Engine开发鹰眼图的功能(基础篇) 上一篇的实现效果图如下, 如果仔细观察,会发现一个问题,即在“鹰眼”的区域,只要在红色线框内的注记会被覆盖. 如果红色框包括整张图的话,图上的注记都将不会显示. 是什么原因造成的呢? 原因是使用IFillShapeElement向鹰眼视图添加绘图框后,标注与绘图框冲突造成互相压盖. 我们来看一张表, 在基础篇中,我们使用的是IFillShapeElement面要素进行刷新的,现在我们改换为线要素的IScreenDisplay Dra…
图形查询是以用户通过鼠标操作生成的图形几何体为输入条件进行查询的查询,其查询结果为该几何体空间范围内的所有要素.常用的查询方式包括点选.线选.多边形选择.圆形选择和矩形选择等. 相关类与接口 图像查询主要使用Map类IMap接口中的方法,此外,还需要到Map类的IGraphicsContainer接口和操控图形元素中的IElement接口.使用IMap接口的SelectByShape方法. Map类是显示和操作地图数据的容器,它实现了IMap接口,该接口的成员用来控制当前的地图. 三种图形查询方…
在上一节,我们学习了如何使用swing和awt工具创建一个空的窗口,本节学习如何绘制简单图形. 基本绘图介绍 Java中绘制基本图形,可以使用Java类库中的Graphics类,此类位于java.awt包中.在我们自己的java程序文件中,要使用Graphics类就需要使用import java.awt.Graphics语句将Graphics类导入进来. Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形等.本项目仅用到画直线的功…
鹰眼是用于调节全视域范围内主地图显示范围情况的副地图.它体现了地图整体与详细局部的关系. 用户可以通过鼠标单击或者画框等动作实现鹰眼与主地图的交互情况. 鹰眼功能的原理是通过主地图窗口的地图控件和鹰眼地图窗口的地图控件的4个事件即可完成整个实现流程,但这4个事件之间存在一定的逻辑关系.首先我们了解一下这4个事件的触发条件以及实现的功能. (1)主地图窗口地图控件OnMapReplace_Event事件是在主地图控件加载地图文档或者图层时触发,它主要用来完成主地图与鹰眼地图的地图同步工作.OnEx…
这段时间做的一个项目,需要在地图上绘制简单的图形.在学习高德地图JS API的过程中,发现高德地图提供的点.线等API并不能满足我的需求,还好它开放了自定义图层CustomLayer,官方说自定义图层支持canvas.svg.甚至dom,这里我用的是svg,多说无益,上代码. 一.高德地图 以下的步骤在官方文档中都有,而且官方文档比较齐全. 首先需要去高德API官网申请自己的key,此步略过. 拿到key后在页面中引入地图所用的js js <script type="text/javasc…
1.距离测量 距离测量时,片段长度通过两点之间距离计算得到,全部长度通过片段长度的和计算得到.主要用到INewLineFeedback和IScreenDisplay两个接口. 1)INewLineFeedback接口 该接口的主要方法如表: 方法 描述 Start 从指定点开始绘制追踪线的绘制 MoveTo 鼠标移动到的点,并实时绘制与上一节点的连接线 AddPoint 添加一个点 Stop 停止追踪线的绘制,并返回用户绘制的几何体 2)IScreenDisplay接口 MapControl中的…
HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" width="1024" style="border:1px solid #aaa;text-align:center;"> 你的浏览器不支持Canvas,请更新浏览器再试!!! </canvas> 在canvas标签之间应该做浏览器是否支持的检测,…
原文:ArcGIS Engine开发的ArcGIS 版本管理的功能 转自:http://blog.csdn.net/linghe301/article/details/7965901 这是以前的ArcGIS Engine开发成果,主要是Geodatabase方面的,模仿ArcGIS版本的流程系统环境: VS2010.ArcGIS Engine10.DevExpress721(第三方控件,比较常用易于下载) ---------------------------------------------…
前言:基于百度地图javascript版本开发,百度地图中所用的key已承诺仅用于测试,不用于商业用途 注:本文所有代码可以到github上进行下载,github地址:http://map.eguid.cc/ 已经封装好的功能: 基于百度地图二次开发实现车辆实时监管 1.车辆操作相关 1.1.支持车辆位置方向定位(根据经纬度) 1.2.支持实时改变/控制车辆的位置和方向(360度无死角控制反向) 1.3.支持车辆图片自定义 1.4.支持车辆标注(一直固定显示在车辆相对位置的标注,方便显示车牌号等…
      MFC运算功能强大,拥有完备的绘图功能.       在Windows平台上,应用程序的图形设备接口(graphics device interface,GDI)被抽象为设备上下文(Device Context,DC).       在微软基类库MFC中,CDC类是定义设备上下文对象的基类,所有绘图函数都在CDC基类中定义.当需要输出文字或图形时,就需要调用CDC类的成员函数,这些成员函数具备输出文本.绘制图形的功能.       本文讲解的例程全部在TestView.cpp文件的v…
转自ArcGIS Engine 线段绘制研究 基本步骤 构建形状 1. 创建 IPoint IPoint m_Point = new PointClass(); m_Point.PutCoords(x, y); 2. 创建 IPointCollection IPointCollection m_PointCollection = new PolylineClass(); m_PointCollection.AddPoint(m_Point, ref Type.Missing, ref Type.…
一.简介 Python中的turtle库是一个直观有趣的图形绘制函数库.turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形. 二.简单的图形列举 1.绘制4个不同半径的同切圆 代码: import turtleturtle.pensize(4)turtle.circle(10)turtle.circle(40)turtle.circle(80)turtle.circle(120)turtle.done() 结果: 2.六角形的绘制,利用turtle库绘制一个…
在中篇我们讲到使用OpenFileDialog控件可以添加shp文件.(最简单的ArcGIS Engine应用程序(中)) 添加lyr文件的操作也是大同小异的. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.…
上一篇中只能添加代码中指定的shp文件(最简单的ArcGIS Engine应用程序(上)) 为了让用户可以浏览磁盘加载指定的shp文件,需做一下调整. 从工具箱往窗体上添加一个OpenFileDialog控件. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using S…
在上文的基础上,下面将使用简单的代码实现要素类属性的查看.(最简单的ArcGIS Engine应用程序(下)) 新增一个窗体,并从工具箱拖动DataGridView控件到该窗体中.设置该对象的Dock属性为Fill. 为该窗体的Load时间处理方法添加代码.当窗体加载时,就从图层数据中读取要素类的属性信息,并且显示到DataGridView控件中. FeatrAttributeTable.cs using System; using System.Collections.Generic; usi…
原文:ArcGIS Engine开发之旅03--ArcGIS Engine中的控件 制图控件,如MapControl.PageLayoutControl,其中MapControl控件主要用于地理数据的显示和分析,PageLayoutControl用于生成一幅成品地图.MapControl封装了Map对象,而PageLayoutControl则封装了PageLayout对象.这两个控件都实现了IMxContents接口,因此不仅可以读取ArcMap创建的地图文档,而且可以将自身的地图内容写到一个新…
原文:ArcGIS Engine开发之旅02--ArcGIS Engine中的类库 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他类库提供服务的组件.System类库中定义了大量开发者可以实现的接口.AoInitializer对象就是在System类库中定义的,所有的开发者必须使用这个对象来初始化ArcGISEngine和解除ArcGIS Engine的初始化.开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展A…
一.前言 众所周知,二维GIS技术发展了近四十年,伴随着计算机软硬件以及关系型数据库的飞速发展,二维GIS技术已日臻完善.在对地理信息的分析功能上有着无可比拟的优势.一些宏观的地理信息,一维的地理信息,如河流.公路等,以及二维的地理信息,如植被.湖泊.人口数量等,在对这些地理信息的分析和处理上,比较适合采用二维GIS系统.二维GIS始于20世纪60年代的机助制图,今天它已经深入社会的各行各业,如土地管理.电力.电信.水利.消防.交通.规划等,但二维GIS有其自身难以克服的缺陷,它本质上是基于抽象…
转自原文  ArcGIS engine中Display类库——Display Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这个类库还包含了表示符号和颜色的对象,用于控制在显示(display)中绘制时实体的属性.这个类库也包含了用户与显示(display)交互时的可视化反馈的对象.完成这些功能的对象被归并到一组类库子系统中. 这些类库子系统是: n         Display n         Dynamic Di…
转自原文ArcGIS Engine中的Symbols详解 本文由本人翻译ESRI官方帮助文档.尊重劳动成果,转载请注明来源. Symbols ArcObjects用了三种类型的Symbol(符号样式)来绘制图形特征:marker symbols(标记符号),line symbols(线符号),和fill symbols(填充符号).这些样式同样可以用来绘制elements(元素)图形,比如在地图或制版视图上的图表边线和指北针箭头.第四个样式text symbol(文字符号)是用来绘制标注和其他文…
转自原文 ArcGIS engine中Display类库 (局部刷新) Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这个类库还包含了表示符号和颜色的对象,用于控制在显示(display)中绘制时实体的属性.这个类库也包含了用户与显示(display)交互时的可视化反馈的对象.完成这些功能的对象被归并到一组类库子系统中. 这些类库子系统是: n         Display n         Dynamic Displ…
转自原文ArcGIS Engine能够做什么? ArcGIS Engine是一组跨平台的嵌入式ArcObjects,它是ArcGIS软件产品的底层组件,用来构建定制的GIS和桌面制图应用程序,或是向原有的应用程序增加新的功能.ArcGIS Engine应用程序可以是简单的地图浏览器,也可以是定制的GIS编辑和分析程序.通过 ArcGIS Engine 构建的应用,既可以以地图显示为中心,也可以不是,这一点非常重要.这一特性使 ArcGIS Engine特别适合于构建非GIS为中心的应用. 作为一…
转自原文ArcGIS Engine中的重点类库介绍 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他类库提供服务的组件.System类库中定义了大量开发者可以实现的接口.AoInitializer对象就是在System类库中定义的,所有的开发者必须使用这个对象来初始化ArcGISEngine和解除ArcGIS Engine的初始化.开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展ArcGIS系统. SystemU…
地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种:①通过工作空间加载.②通过MapControl控件的AddShapefile方法加载. 1.通过工作空间加载Shapefile文件 通过工作空间加载Shapefile文件主要用到IMap.ILayer.IFeatureLayer和IFeatureClass四个接口. 1)IMap接口 IMap接口是…