当前位置: 首页 > news >正文

intitle:郑州网站建设外贸网站建站h

intitle:郑州网站建设,外贸网站建站h,x网站免费,建设网站公司摘 要 阐述了在VC环境下引入MapX控件的方法#xff0c;以及在文档视图架构下如何使用MapX控件的问题#xff0c;介绍了MapX数据绑定的方法及其与MapX专题图创建的关系#xff0c;阐明了创建MapX专题图的一般方法#xff0c;并给出了具体实例。 关键词 MapX#xff1b;V…   摘  要  阐述了在VC环境下引入MapX控件的方法以及在文档视图架构下如何使用MapX控件的问题介绍了MapX数据绑定的方法及其与MapX专题图创建的关系阐明了创建MapX专题图的一般方法并给出了具体实例。     关键词  MapXVC程序设计专题图制作 1 引言 MapInfo MapX是一个用来做地图化工作的OCX控件它可以很容易地在您的应用程序中加入强大的制图功能。它可以把您的数据用地图的形式显示出来更易于理解。地图形式可以比简单的图表、图形提供更多的信息而且描述地图比描述数据表更加简单迅速。 专题图是按照特定专题渲染地图的过程以图形的形式在地图上表示数据。通常使用数据集中的一组或多组数据利用颜色渲染、填充图案、符号、直方和饼图等方式表示数据。根据数据中的特定值指派这些颜色、图案或符号创建不同的专题地图。 微软的Visual C6.0技术成熟、应用广泛、影响巨大在应用软件的开发方面是首选的开发环境之一。而MapX编程的教程通常是以VB为基础的。利用VC编译MapX程序比利用VC编写MapX程序要相对复杂一些兼容性也要差一点。因此利用VC编写MapX程序的可供参考的教程和示例代码相对较少。但因为大量的应用软件采用VC编写、大量的软件公司采用VC作为开发工具因此在VC环境中引入MapX控件进行MapX功能开发就非常重要。本文的目的在于具体阐述VC环境下基于MapX控件创建专题地图的方法。 2 VC下MapX开发环境的建立 2.1 MapX控件的引入 要在VC下使用MapX的各个功能来编写程序首先必须要确保MapX控件已经在系统中安装并注册。在 MapX Web 站点 http://www.mapx.com 上找到最新的示例应用程序。该示例应用程序的源代码文件夹中包含MapX.h和MapX.cpp两个文件这两个文件实际上分别就是MapX控件的类层次定义文件和COM接口实现文件。把这两个文件拷贝到应用程序所在的文件夹。或者将MapX安装目录下“\MapInfo\MapX 5.0\Samples50\C\Cpp”文件夹下的MAPX.H和MAPX.CPP文件拷贝到VC应用程序的工程目录下。然后再在VC6.0集成开发环境的“Project”菜单中点击“Add To Project”→“Files”弹出“Insert File Into Project”对话框。在文件列表框中列出了项目中的文件。按住“Control”键的同时选中MapX.h和MapX.cpp两个文件然后点击对话框中的“OK”按钮完成MapX控件的插入。 2.2 Doc/View下MapX控件的使用 MAPX是一个窗口控件要想在Doc/View中使用就必须动态创建一般遵从这样的步骤 1添加资源ID需要在工程的资源视图下的String Table下增加一个ID。 2 添加MAPX控件头文件的引用可以直接把MAPX头文件的引用添加到工程的StdAfx.h文件中这样就不必在其他的很多文件中添加这个引用了。 3声明CMapX类型变量在视图类中写入形如CMapX  m_ctrlMapX的声明。 4使用MAPX的Creat方法在工程中视图类创建的时候创建MAPX控件其代码为 int C**View::OnCreateLPCREATESTRUCT lpCreateStruct // 视图类的WM_CREATE消息响应函数 { if CView::OnCreatelpCreateStruct -1   return -1; RECT windRect; GetClientRectwindRect; //取得视图区域  if !m_ctrlMapX.CreateNULL WS_VISIBLE windRect thisIDS_MAPX1       return -1; //以当前视图窗口为父窗口以IDS_MAPX1为标识创建一个可见的、无窗口名称的、 //覆盖整个视图区域的MAPX控件窗口。 return 0; } 5设定控件的初始状态 如果简单的创建了MAPX控件在显示的时候会显示美国的地图这样就需要在视图出现前改变MAPX的基本设置改变默认地图以及改变地图中心、缩放率、是否可编辑、是否可选择以及添加一些新图层等操作。 6添加MAPX控件的事件响应。给动态生成的MAPX控件添加事件需要槽事件处理宏来处理消息映射。首先要在视图类的头文件H文件中声明宏DECLARE_EVENTSINK_ MAP()然后在视图类的CPP文件中加入MapX事件处理函数映射宏 BEGIN_EVENTSINK_MAPCHWDView CView //CPP文件中消息映射 END_EVENTSINK_MAP() 其中BEGIN_EVENTSINK_MAP带有两个参数第一个参数当前类、第二个参数是当前类的基类。BEGIN_ EVENTSINK_MAP和END_EVENTSINK_MAP()是一对定义事件映射的宏其间可以插入自定义的MapX控件消息映射。 3 基于MapX创建专题图 3.1 数据绑定与专题地图 数据绑定是将数据源中的数据导入 MapX 的过程。为了增强GIS系统数据处理的灵活性系统分开存储涉及的图形矢量数据及空间属性数据。MapX通过数据集集合Datasets对象可以将用户的属性数据与地图的空间数据连接起来属性数据与几何数据的关联是通过数据绑定实现的。数据绑定的数据源可以是ODBC数据源、MapInfo Table文件、安全数组等。要绑定一个数据源首先要指定所绑定的图层然后需要指定与图层中地图对象相匹配的关键字段。将自己的数据绑定到地图上主要有以下两个优点一是可以将数据作为地图上的图元查看二是可以将属性数据绑定到地图上然后使用该绑定创建基于数据的专题地图。 数据绑定的实现是通过Datasets.Add方法实现的。DataSets.add方法原型为DataSets.Add Type SourceData [Name] [Geofield] [SecondaryGeofield] [BindLayer] [Fields] [Dynamic]。对大多数数据绑定类型 SourceData其实是一种OLE接口。MapX通过这个接口直接从数据源中访问数据数据并没有真正传递给DataSets.Add。 当绑定时数据包含经度和纬度且要在新的图层相应的位置上创建这些点时需使用BindLayer 对象。通过数据绑定可以将BindLayer对象作为一个参数使用Datasets.Add方法将自己的数据转变为一个DataSet。 在 MapX中有Field对象和Fields对象。在数据绑定时MapX 对绑定的每个数据列均需要开销通过Field对象和Fields对象只绑定地图中需要的数据。使用Datasets.Add 的Fields 参数建立要绑定到地图上的字段。字段集合对象的Add方法的原型为[Field]OBJECT.Add DataSourceCol [Name] [AggregateFunction] [Type]  // DataSourceCol取值为数据源中字段名或索引值。 数据绑定事件一旦数据源的某列被定义为地理列并且确定了绑定数据的图层则绑定就开始进行。数据源的每一行都和一个图元相匹配且数据将会带入地图。如果某行有不匹配发生则DataMismatch事件被激活。当数据源发生变化时MapX通过调用DataSet.Refresh来刷新数据。但数据源有新行时此方法并不添加新图元。 3.2 专题地图的制作 MapX中使用Themes集合与Theme对象来实现对专题图的支持每个Themes集合中可以包含多个Theme对象也就是说针对一个Dataset可以创建多幅不同的专题地图。每个Dataset都拥有一个Themes集合并以其属性的形式存在即Dataset.Themes。使用Themes的Add、Remove、RemoveAll等方法可以控制专题的添加和删除。 在创建专题图的过程中有几个关键因素包括专题图变量的确定、属性数据的获取以及专题图层的显示与控制。 在进行专题图规划时首先要确定专题图变量。在专题图中显示的数据就是专题图变量。一个专题变量可以是一个字段或表达式。取决于专题图的类型在一张地图上可以显示一个或多个专题图变量。范围值、等级符号、点密度和独立值地图都只检查一个变量。可以利用饼图或直方图一次显示多个专题变量。也可以创建双变量专题地图其中一个地图对象可代表两个不同的数据用符号的颜色代表一个专题变量符号的大小代表另一个专题变量。 在创建专题地图之前必须确定需要显示何种信息信息存储在什么位置。它可以在创建地图时所基于的表中也可以在ODBC支持的外部数据库中。数据来源于Field对象或Field集合在Themes.Add方法中通过Fields参数传递。 具体在创建专题图时首先应将某个产生专题图数据的dataset通过数据绑定引入地图中之后使用Themes.Add方法创建一个Theme对象。代码为curmap.Datasets1.Themes. AddmiThemeRanges‘TotPop’‘’函数的语法为Themes. Add[Type] [Field] [Name]。Type用于定义要创建的专题图的类型它的取值范围是ThemeTypeConstants该参数可选如果没有定义或者定义为 miThemeAutoMapX会根据字段数以及已经存在的专题图类型自动在ThemeTypeConstants中选择一个。如果MapX无法自行确定专题类型就会产生一个错误。Fields定义在专题图中使用的一个或多个字段可以通过字段名、字段索引或字段对象来引用。当创建多变量专题图时可以使用数组表示。该字段是可选的若不特意指定MapX会使用DataSet中的第一个数字型字段。Name即专题图的名称String类型参数若不指定MapX会自动生成一个名字。 专题图创建好后有两种方法可以控制专题地图。一是使用Theme.ThemeDlg方法。该方法显示一个对话框用户可以直接修改专题图特性。语句如下为curmap.Datasets1.Themes1.ThemeDlg这种方法虽然简单但是很难与自己的程序风格相一致用户界面不友好而且在这个默认的对话框中用户可以随意改变任何设置使得程序的控制难度加大。二是改变ThemeProperties对象属性。通过设置ThemeProperties对象属性可以使用自己定制的界面给用户有限的修改能力实现起来也非常简单而且对用户的操作有全部的控制权。ThemeProperties对象是Themes集合中的一员主要用于定义专题地图的显示包括颜色、符号等。ThemeProperties对象的属性中有许多又属于其他对象如RangeCategory、Individualvalue、Style等可进行更深层次的设定。 3.3 专题图实例 图1是以中国各省区、市的人口密度为专题图变量绘制的范围专题图。从图1中可以看出我国西北地区人口密度最小东南区域人口密度相对较大江苏、台湾、河南、山东人口密度较大西藏人口密度最小。 图1 中国各省区、市人口密度专题图4 结束语 使用专题渲染在地图上显示数据时可以清晰地展现在数据列表中几乎无法显现的样式和趋势为用户的决策支持提供依据。本文实现了VC环境下基于MapX控件创建专题图为在VC环境下开发MapX程序做了初步探索和有益启示。转载于:https://www.cnblogs.com/kenter/archive/2010/12/28/1919150.html
http://wiki.neutronadmin.com/news/24275/

相关文章:

  • 普通人怎么样做网站设计公司灰白色调网站
  • wdcp网站迁移接效果图做网站
  • 几百的网站网站ui升级怎么做
  • 建教会网站的内容广告制作简介
  • wordpress 2013如何进行网站性能优化?
  • 网站建设支付赣州网站优化
  • php可以做网站吗凡科做网站
  • 如何做网站弹窗广告华为云云速建站怎样
  • 个人不良信息举报网站电子商务网站建设参考文献2018
  • 公司变更名字需要什么手续十堰seo公司
  • 帝国网站后台认证码错误商务网站建设的应用
  • 做购买网站网站建设交付物清单
  • 做公众号的网站有哪些功能wordpress获取tag地址
  • 阿里巴巴网站建设基础服务wordpress安装主题ftp
  • 深圳哪家公司需要网站建设的网站开发为什么采取ssh框架
  • 专注营销型网站建设公司 做网站网站 空间 备案
  • 正能量网站ip手机如何创造网站
  • 网站企划设计公司wordpress 手机菜单栏插件
  • 汝阳县建设局网站做娱乐网站少10个页面
  • 天津市建设银行网站上海十大跨境电商排名
  • 网站动画用什么做的阿里云WordPress应用php升级
  • 丹东市做网站医疗网站建设服务
  • 谷歌官方网站首页怎么做网站的api
  • 企业活动网站创意案例wordpress内链添加位置
  • 网站内容如何编辑软件面签拍照 网站备案
  • 道滘东莞网站建设优化关键词排名软件
  • 网站服务器内网打不开网页跨境电商多平台运营
  • 做百度网站dz网站模板
  • 小型网站建设案例杭州做网站
  • 推广网站有哪些平台徐州网站排名公司哪家好