文档库 最新最全的文档下载
当前位置:文档库 › win7x64使用mapx

win7x64使用mapx

win7x64使用mapx
win7x64使用mapx

win7x64使用mapx

mapxwin764位

1.在xp系统下安装mapx.v5.0

2.19

2.把安装后的目录的所以文件拷贝到win7的机子上,

3.对这些com组件进行注册,逐个进行注册

MAPX50.DLL

MapXADODS.DLL

MapXDAODS.DLL

MapXRDODS.DLL

mapxstate.DLL

MODBCDataset.DLL

MOCIDataset50.DLL

mxmldataset.DLL

MSafeArrayDataset.DLL

NCSECW.DLL

mxmldataset.DLL

MOCIDataset50.DLL例:regsvr32 MAPX50.DLL

4.拷贝破解mapx50.lic 进行破解

mapx50.lic中的注册码需要修改

为:uQnZi2sFw22L0-MRa8pYX-2E6P1077-3N6M0499-5C038223-10884-12802-3 6882-8029

5.打开mapx50.lic文件找到注册码程序创建时带上注册码 CString

strLic="uQnZi2sFw22L0-MRa8pYX-2E6P1077-3N6M0499-5C038223-10884-128 02-36882-8029";

BSTR bstrLic=strLic.AllocSysString(); RECT windRect;

GetClientRect(&windRect);

if (!m_ctrlMapX.Create(NULL, WS_VISIBLE, windRect,

this,IDC_MAP,NULL,FALSE,bstrLic))

{

::SysFreeString(bstrLic);

return TRUE;

}

::SysFreeString(bstrLic);

6.最近mapx能在win7 64位机子上正常运行了

让MapX在64位下飞起来

.在xp系统下安装mapx.v5.02.19 2.把安装后的目录的所以文件拷贝到win8的机子上, 3.对这些com组件进行注册,逐个进行注册 MAPX50.DLL MapXADODS.DLL MapXDAODS.DLL MapXRDODS.DLL mapxstate.DLL MODBCDataset.DLL MOCIDataset50.DLL mxmldataset.DLL MSafeArrayDataset.DLL NCSECW.DLL mxmldataset.DLL MOCIDataset50.DLL 例:regsvr32 MAPX50.DLL 可以写一个批处理文件,注意用管理员权限运行批处理文件. 4.拷贝破解mapx50.lic 进行破解 5.打开mapx50.lic文件找到注册码 程序创建时带上注册码 CString strLic="uQnZi2sFw22L0-MRa8pYX-2E6P1077-3N6M0499-5C038223-10884-12802-3688 2-8029"; BSTR bstrLic=strLic.AllocSysString(); RECT windRect; GetClientRect(&windRect); if (!m_ctrlMapX.Create(NULL, WS_VISIBLE, windRect, this,IDC_MAP,NULL,FALSE,bstrLic)) {

::SysFreeString(bstrLic); return TRUE; } ::SysFreeString(bstrLic); 6.最近mapx能在win864位机子上正常运行了

VC中嵌入MAPX进行二次开发的过程

结合GIS工具软件与当今可视化开发语言的集成二次开发方式是GIS应用开发的主流。它的优点是既可以充分利用GIS工具软件对空间数据库的管理、分析功能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集二者之所长…… MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX控件产品。由于它是一种基于Windows操作系统的标准控件,因而能支持绝大多数标准的可视化开发环境如Visual C++、Visual Basic、Delphi、PowerBuilder等。编程人员在开发过程中可以选用自己最熟悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。这里谈到的VC++嵌入MapX进行二次开发可分为以下几个步骤来实现: 1对应用工程的预设置 在创建MapX控件之前,必须将MapX.h和MapX.cpp文件加入到工程中。对于Visual C++5.0及以上版本,从Project菜单中选择Add To Project -> Files命令,打开InsertFiles into Project对话框,选择MapX.cpp和MapX.h文件加入到工程中(在MapX自带的C++例子中有这两个文件)。 注意:不要选择Project菜单中的Add TO Project->Components And Controls命令。如果选择该命令加入MapX控件,将创建一新的.cpp文件,但是该文本没有包括所有的MapX对象。 2对MapX属性的操作 对于C++程序来说,每个MapX对象(Objects)都在MapX.h 和MapX.cpp中用一个类来实现,类的名字和MapX对象的名字相同,且已经在CmapX中定义了。 例如,DataSet对象用类CmapXDataset实现。这和C++类的定义相一致。而每个MapX对象的属性(Properties)是用类的成员函数来实现的。比如DataSet对象的名字(Name),就是用Name()函数来实现的,不过,Name()有两种使用方法,即Get和Set。如: CString GetName();//获取对象名字 void SetName(LPCTSTR);//设置对象名字 3 部分MapX工具的应用 (1) “全图”工具的改进 一般全图工具的代码为: m_ctrlMapX.SetZoom(m_ctrlMapX.GetGeoSetWidth()); 此方法的缺点是重新显示全图后,实际上是以上一个视图的中心作为屏幕中心进行显示,如果上一个视图在全图中的边缘位置,点击全图工具后实际上不是初始设置的全图。因此可以用如下代码实现: CString mapname=m_ctrlMapX.GetGeoSet();//取得当前地图的名字

MapX入门

第一章MapX 入门 概述 MapInfo MapX是一个用来做地图化工作的OCX控件,它可以很容易地在您的应用程序中加入强大的制图功能。它可以把您的数据用地图的形式显示出来,更易于理解。地图形式可以比简单的图表、图形提供更多的信息,而且描述地图比描述数据表更加简单迅速。本章主要对mapx 的安装和在编程语言中的使用进行讲解。 第一节 MapX 入门 MapX是一个提供给应用程序开发人员的工具。它提供了一个最简单和最节约成本的方法,用来将地图化功能嵌入到新的和现有的应用中。MapX是一个OCX组件,可以被快速集成到使用Visual Basic、PowerBuilder、Delphi、Visual C++或其他面向对象的语言的客户端应用程序以及使用Lotus Script的Lotus Notes (v4.5)中。开发人员可以在他们熟悉的环境中工作,最终用户可以通过他们熟悉的应用程序来访问地图数据。 通过MapX,可以完全按照您的意愿在应用程序中加入强大的制图功能。您可以按点、按专题渲染区域、按饼图或直方图等等来显示数据。启用MapX的分析功能,可以分组和组织数据、执行搜索或在一个指定的半径、矩形区域或指定的点的周围选择地图图元。 例如,MapX能够显示哪一分店最接近您最大的客户,可以计算客户和商店之间的距离;还可以显示去年花销最大的客户;并按销售额给表示商店的符号进行颜色编码。所有这些结合在一起就是您的数据在地图上的直观显示。

第二节MapX 的功能概述 MapX不仅仅是一个“地图浏览器”。通过MapX,可以分析并直观地显示业务数据,创建或编辑地图图元,并按地理位置显示数据结果。MapX的主要功能如下: ?专题制图—使用专题制图显现数据。联合数据和地图中的每个图元,并在地图中用颜色编码(或其他样式)来表示数据。可使用六种不同的样式来观 察数据(色彩范围、点密度、独立值、等级符号、饼图、直方图)。 ?逐层细化制图—可以通过简单的定点和单击来浏览数据,在OLAP/DSS环境下,可以允许用户通过定点和单击逐层细化地图的某个区域。 ?数据绑定—地图可合并来自嵌套OCX的容器、ODBC或DAO数据源(例如MSAccess)的数据。MapX提供多种不同类型数据的绑定,包括邮政编码 级别的地理编码。 ?注释—可以提供定位、高亮显示特定数据的功能,通过添加文本、符号和标注来使您的地图信息变得更加丰富。 ?图层化—显示和控制地图图层的显示,让它只在地图的缩放比例符合事先调整的距离时才显示。还可以使用或创建无缝地图图层,它可以把一组基表 看作一个整体。特殊图层类型可以支持特殊类型的应用,如动态图层(用于 实时跟踪)和用户描绘图层(用于描绘特殊的地图元素,如地图上方的标志)。 ?栅格图像—用一幅放在底层的栅格图像作为地图背景,使您的地图更生动、更详细。 ?自动标注—自动向地图添加标注,同时控制其属性及显示。 ?选择—通过分组和组织数据,发挥MapX的分析特性。即在一个指定的半径、矩形区域或指定点的范围内选择地图图元。 ?图元工厂— FeatureFactory对象使您得以创建、合并和缓冲区或擦除点、线和区域图元。 ?工具—用户可以通过单击和拖动直接与地图交互。通过MapX内置的导航、选择和标注工具或自定义工具来对地图进行操作。 ?地图编辑—可以让用户在地图上添加、修改或删除图元。 ?投影和坐标系— MapX对地图坐标系和投影的完全支持使您可以更精确地调整地图的显示并在自己的坐标系中处理X-Y数据。 ?远程空间服务器连接—可以连接运行在Oracle8.0.5、Informix或其他所支持的数据库上的Oracle8i Spatial和MapInfo SpatialWare上存储的真实数据。为 集中管理和安全起见,空间服务器允许公司在企业数据库中主持他们的地图 数据。象SpatialWare和Oracle8i Spatial之类的空间服务器还提供高级查询处 理功能,并增加了用于处理组织机构的空间数据的服务器性能。在一个

Mapx消息映射列表

VTS_NONE、VTS_I4 、VTS_I2 、VTS_PR4、 VTS_PR4、 VTS_PBOOL等类型,它们标识什么含义,虽然我学习VC有了一段时间,但是VC的内容太多了,我以前就没有遇到过这些类型,不知道该怎么去学习,请指点一下方向,再一次多谢您的帮代表不同的数据类型,看VARAINT的结构定义就知道了,而且常用的也就那么几种. 消息及其函数中的参数设置,在mapx的sample文件夹下的例子里面有说的,你可以找到看看。 具体的消息及其函数中的参数设置都有例子的,在代码里面找到看看就可以了。 // event dispids #define MAPX_DISPID_SELECTION_CHANGED 0x1 #define MAPX_DISPID_RESOLVEDATABIND 0x2 #define MAPX_DISPID_TOOLUSED 0x3 #define MAPX_DISPID_REQUESTDATA 0x4 #define MAPX_DISPID_DATAMISMATCH 0x5 #define MAPX_DISPID_MAPVIEWCHANGED 0x6 #define MAPX_DISPID_ANNOTATIONADDED 0x7 #define MAPX_DISPID_ANNOTATIONCHANGED 0x8 #define MAPX_DISPID_THEMEMODIFYREQUESTED 0x9 #define MAPX_DISPID_DRAWUSERLAYER 0x0a #define MAPX_DISPID_POLYTOOLUSED 0x0b #define MAPX_DISPID_MOUSEWHEEL 0x0c #define MAPX_DISPID_MAPINITIALIZED 0x0d #define MAPX_DISPID_RESOLVEDATABINDEX 0xe #define MAPX_DISPID_MAPDRAW 0xf // dispatch id definitions for ole stock events are // defined in // they are included here for reference #define DISPID_CLICK (-600) #define DISPID_DBLCLICK (-601) #define DISPID_KEYDOWN (-602) #define DISPID_KEYPRESS (-603) #define DISPID_KEYUP (-604) #define DISPID_MOUSEDOWN (-605) #define DISPID_MOUSEMOVE (-606) #define DISPID_MOUSEUP (-607) #define DISPID_ERROREVENT (-608) file://*/ void Click(); void DblClick(); void Error(short Number, BSTR* Description, long Scode, LPCTSTR Source,

MapX地图图层管理

实验四MapX地图图层管理 一、实验目的 在熟悉利用GeoSetManager按图层进行空间数据的组织后,通过在VC++环境下利用MapX编程,能够利用MapX编程进行地图图层的管理(图层增加、删除、新建、激活等)。 二、实验内容与要求 1、利用上海徐汇区实验数据,在GeosetManager中制作MapX需要的地图文件; 2、实现在VC++环境中利用MapX编程进行地图图层的管理功能。 三、实验报告提交 根据个人上机实验情况,写出上机实验报告,要求写出上机实验步骤,包括实验目的、实验内容等,对于实验内容,要求写出对实验内容的理解、心得、发现的问题、以及给出利用MapX组件进行图层管理设置以及进行实例开发的步骤说明。 四、实验操作示例 1、在Visual C++开发环境中新建一个工程名为BasGis的单文档应用程序框架; 2、在BasGis目录下新建一目录MapData,并将需要显示的徐汇区数据拷贝到该目录, 并利用GeosetManager软件在MapData目录中创建xuhuiMap.gst并把徐汇区Tap格 式数据加载到xuhuiMap.gst文件中(其中xuhuiMap.gst不包含“图廓”层,“图廓” 层的4个文件只放到MapData目录下,在后面的编程中动态加载该层)。 3、给应用程序BasGis添加MapX控件:在MapX的安装目录中找到Samples50\C++\cpp 子目录中找到MAPX.H和MAPX.CPP两个文件,将这两个文件拷贝你所创建的 BasGis工程目录下,然后在VC开发环境中的Project菜单点击“Add to Project ->Files…”,将BasGis目录下的MAPX.H和MAPX.CPP添加到工程中,点击 ClassView选项卡,看看你的工程里是否多了很多以CMapX开头的类; 4、编写代码实现MapX地图显示: 在ClassView类视图里找到CBasGisView类,双击该类,打开“BasGisView.h” 文件,在class CBasGisView 类定义代码的前面加入#include “MapX.h”,在CBasGisView类中定义两个公有成员变量CMapX m_ctrlMapX //CMapX对象和BOOL m_bMapData //地图装入的标记。 5、单击工作区的ResourceView,选中BasGis resources项,点击鼠标右键,在弹出的 下拉菜单中选“ID=Resources symbols…”,新建一个ID资源,增加MapX地图的 ID资源IDC_MAP。 6、点击VC菜单的“View->ClassWizard”,弹出“MFC ClassWizard”对话框。在 MessageMaps页面中,选择Class name选项为CBasGisView类,在Messages选项 中选择Windows消息WM_CREATE并双击,新增加成员函数OnCreate,用同样的 方法生成WM_SIZE消息的成员函数OnSize,然后点击“Edit Code”进入 CBasGisView.cpp文件中。编译运行程序,应该没有错误,但也没有任何功能。 7、增加代码,添加功能(红色为添加代码): int CBasGisView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; //tg add SetCapture(); BeginWaitCursor(); try

如何利用MapX构建地图应用[最新]

如何利用MapX构建地图应用[最新] 如何利用MapX构建地图应用 一. MapX是什么, MapX是Mapinfo 公司的能向用户提供强大地图分析功能的ActiveX控件产品。由于它是一种基于Windows 操作系统的标准控件,因而MapX能支持绝大多数标准的可视化开发环境如: Visual Basic, Visual C++ , Delphi, PowerBuilder 等。利用MapX,用户能够简单而快速地在自己的企业应用中嵌入地图化功能,增强企业应用的空间分析能力,实现企业应用的增值。 二(为什么必须使用MapX? 很多企业最初建立的应用并不具有空间分析功能。但是随着企业内部信息量的增加及信息的多元化和复杂化,很多信息采用传统的报表和文档方式已无法清晰地向用户表现。此时,就需要利用MapX在企业应用中增加对信息的空间表现能力。例如,利用MapX可以非常直观地将企业自身在空间位置上的分布特性及客户的住址、邮政编码等信息,以地图化的方式展示出来。 由于采用的是控件技术,因此编程人员在开发过程中并不需要掌握其它专业编程语言,便可轻松地将地图应用功能嵌入到企业应用中。并且应用可以脱离Mapinfo的软件平台运行。相反在构建上述的企业应用系统,如果选用Mapinfo Professional 作为地图化应用的平台,则需要很多技巧来实现企业应用中的公用信息管理系统与地图管理信息系统之间的信息交换与通讯。 三(MapX与MapBasic开发方式的区别在哪里? MapBasic是一种类Basic的地图应用开发语言,它具有自己的语法规则,同时它编译生成的执行程序要依赖于Mapinfo Professional平台。对于想要快速建立以地图空间分析为主要功能的企业应用用户来说,选用MapBasic来开发是一种最

delphi操作mapx部分技巧

Delphi中使用Mapx

目录 一.在地图上创建图层 (1) 二.在符号图元中使用自定义位图 (1) 三.屏幕坐标向地图坐标的转换 (2) 四.查找某一城市 (3) 五.鼠标点击选中一片区域 (3) 六.从数据库绘制MapX地图 (4) 七.MapX使用数据库数据添加专题图 (6) 八.在mapx中画圆 (10) 九.动态加载一个目录下所有图层 (11)

安装好MapX后,选择Delphi的Component->Import Active菜单添加,MapInfo MapX组件。添加完成后,在ActiveX面板上,将会出来一个TMap控件。拖一个TMap 控件到工程中改名为MainMap,这样就产生了一个TMap的对象。 一.在地图上创建图层 使用Layers属性的CreateLayer函数来创建一个图层 https://www.wendangku.net/doc/95985774.html,yers.CreateLayer(Name,[FileSpec],[Position],[KeyLength],[CoordSys]); 参数说明: Name:指定图层的名称 FileSpec:所创建图层的路径名。如'c:\china.tab' Position:它在图层列表中的初始位置.(其实就是在图层列表中的一个序列号) CoorSys:指定存储新图层的坐标系。 附:图层类型参数: miLayerTypeNormal miLayerTypeRaster miLayerTypeSeamless miLayerTypeUnknown miLayerTypeUserDraw miLayerTypeDrilldown FeatureFactory对象的方法使您可以创建新的地图图元,也可通过对现有图元执行操作(例如缓冲区)来创建图元。以下是FeatureFactory对象的方法: BufferFeatures CombineFeatures CreateArc CreateCircularRegion CreateEllipticalRegion CreateLine CreateRegion CreateSymbol CreateText EraseFeature IntersectFeatures IntersectionPoints IntersectionTest 二.在符号图元中使用自定义位图 定义一个cs:CMapXStyle做为图元的样式属性设置

MapX中的坐标系定义与转换

GIS中的坐标系定义是GIS系统的基础,正确定义GIS系统的坐标系非常重要。 1. 椭球体、基准面及地图投影 GIS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定,因此欲正确定义GIS系统坐标系,首先必须 弄清地球椭球体(Ellipsoid)、大地基准面(Datum)及地图投影(Projection)三者的基本概念及它们之间的关系。 基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面,我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国 的两个大地基准面。我国参照前苏联从1953年起采用克拉索夫斯基(Krassovsky)椭球体建立了我国的北京54坐标系,1978年采用国际大地测 量协会推荐的1975地球椭球体建立了我国新的大地坐标系--西安80坐标系,目前大地测量基本上仍以北京54坐标系作为参照,北京54与西安80坐标之 间的转换可查阅国家测绘局公布的对照表。WGS1984基准面采用WGS84椭球体,它是一地心坐标系,即以地心作为椭球体中心,目前GPS测量数据多 以WGS1984为基准。 上述3个椭球体参数如下: 椭球体Mapinfo中代号年代长半轴短半轴1/扁率 Krassovsky 3 1940 6378245 6356863 298.3 IAG 75 31 1975 6378140 6356755 298.25722101 WGS 84 28 1984 6378137.000 6356752.314 298.257223563 椭球体与基准面之间的关系是一对多的关系,也就是基准面是在椭球体基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面,如前苏联的 Pulkovo 1942、非洲索马里的Afgooye基准面都采用了Krassovsky椭球体,但它们的基准面显然是不同的。 地图投影是将地图从球面转换到平面的数学变换,如果有人说:该点北京54坐标值为X=4231898,Y=21655933,实际上指的是北京54基准面下的投影坐标,也就是北京54基准面下的经纬度坐标在直角平面坐标上的投影结果。 2. GIS中基准面的定义与转换 虽然现有GIS平台中都预定义有上百个基准面供用户选用,但均没有我们国家的基准面定义。假如精度要求不高,可利用前苏联的Pulkovo 1942基准 面(Mapinfo中代号为1001)代替北京54坐标系;假如精度要求较高,如土地利用、海域使用、城市基建等GIS系统,则需要自定义基准面。 GIS系统中的基准面通过当地基准面向WGS1984的转换7参数来定义,转换通过相似变换方法实现,具体算法可参考科学出版社1999年出版的《城市地 理信息系统标准化指南》第76至86页。假设Xg、Yg、Zg表示WGS84地心坐标系的三坐标轴,Xt、Yt、Zt表示当地坐标系的三坐标轴,那么自定 义基准面的7参数分别为:三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值;三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时, 分别绕Xt、Yt、Zt的旋转角;最后是比例校正因子,用于调整椭球大小。 MapX中基准面定义方法如下: Datum.Set(Ellipsoid, ShiftX, ShiftY, ShiftZ, RotateX, RotateY, RotateZ, ScaleAdjust, PrimeMeridian) 其中参数:Ellipsoid为基准面采用的椭球体; ShiftX, ShiftY, ShiftZ为平移参数;

MapX学习基本教程

MapX学习基本教程 一、加载地图数据 1、TAB的数据分为两种数据:地图数据(Layers)、属性数据(Datasets)。关系:不可分割的一个数据集的两部分. 2、数据加载:GST文件由GeosetManager40.exe程序生成。在程序使用gsT文件: Map1.Geoset=Filepath+FileName 3、问题:GST文件加载后,只是默认将地图数据加载,属性数据另外需要使用单独的命令进行加载,否则对属性数据的操作全部非法。加载:Map1.Datasets.ADD 属性数据集名称 4、另一种加载方式:使用LayerInfo 对象,这种方式下加载地图数据源的地图集和属性集均可直接使用。示例: dim LayerInfo as https://www.wendangku.net/doc/95985774.html,yerInfo dim Lyr as https://www.wendangku.net/doc/95985774.html,yer LayerInfo.Type = miLayerInfoTypeTab …加载表的类型 LayerInfo.AddParameter "FileSpec", FilePath + LayerName + ".TAB" …加载表的全路径名LayerInfo.AddParameter "NAME", LayerName …地图集的别名 LayerInfo.AddParameter "AutoCreateDataset", 1 …是否加载属性数据集 LayerInfo.AddParameter "datasetname", LayerName …属性数据集别名 https://www.wendangku.net/doc/95985774.html,yers.Add LayerInfo …加载到指定的MapX对象中,立即可直接使用 5、第三种加载数据方式:GST文件+ LayerInfo方式。示例: 使用两个MapX对象:MainMap、TempMap TempMap.Geoset=GST文件 MainMap.geoset=”” TempMap.Refresh For I=1 to https://www.wendangku.net/doc/95985774.html,yers.Count FileName=https://www.wendangku.net/doc/95985774.html,yers.Item(I).Filespec …直接引用LayerInfo方式加载地图数据到MainMap Next 二、创建地图对象 必要:创建地图对象,必须使用FeatureFactory对象 1、创建一个点对象 点对象有一个坐标点(X,Y),点对象变量是Point类型,点对象的样式(Style)是符号样式。 Dim Pnt AS MapXLib.Point Dim FeaFac AS MapXLib.FeatureFactory Dim Lyr AS https://www.wendangku.net/doc/95985774.html,yer Dim Ftr AS MapXLib.Feature

MapX常见问题解答

MapX常见问题解答(1 ) 时间:2005-1-7 11:12:18 作者:MICROGERM 点击:69 评论 在阅读以下资料之前,请仔细查看本站资料使用条款及版权申明,如果您不接受本站相关条款申明,请离开本页面。

;模糊查询 Set ftrs = lyr.Search("Character_Name = ""北京市 nnn + Set ftrs = lyrUSA.Search("TOTPOP >

thm.AutoRecompute = True thm.Visible = True 7. 用MapX输出表格 用mapx直接输出图象是可以的,但是输出数据,可以有以下两种方式: 1。输出为文本文件,然后由VB读取 2。转换为VB中的groud 8. mapxtreme2.0 for NT 下,非地球坐标系出现的问题 假设line.tab 地图的投影为非地球坐标系,单位为米,边界为(-40,030.15474 ,-10,007.53869 )( 40,030.15474 , 10,007.53869 )。 (1) 对地图的处理。 a. 文件/另存为,在弹出的另存为对话框上点击投影按钮,确认,弹出边界对话框,将原来的边界值乘以 1.609再添入,即 -40030.15474*1.609=-64408.51898 。四个边界值作同样处理。 b. 输入文件名如linenew.tab,确认. (2) 在geoset manager中调入文件linenew.tab.设置其视野范围。如果实际设置为0至U 0.19,则输入到对话框 中时为0至U 0.19*1.609.但在设置zoom(视野值)时的范围仍为0-0.19. 9. 如何实现测距 a. //创建测距工具 global const calculatedistance=1 Private Sub Form_Load() map1.CreateCustomTool(calcilatedistance,miToolTypepoly ,microsscursor) End Sub Private Sub Distances_Click() map1.currenttool=calculatetool End Sub b. // 在mapx 的PolyToolUsed 事件中, 用Distance( x1,y1,x2,y2 ) 计算距离,由状态条中或label显示。 Private Sub Map1_PolyToolUsed(ByVal ToolNum As Integer , ByVal Flags As Long, ByVal points As Object, ByVal bShift As Boolean, ByVal bCtrl As Boolean, EnableDefault As Boolean) Dim DisSum As Double Dim Dis As Double Dim n As Integer Dim pts As New MapXLib.points Dim x1 As Double, y1 As Double, x2 As Double, y2 As Double Set pts = points DisSum = 0

基于MapX控件的电子地图软件的研究与实现

- 47 - 基于MapX 控件的电子地图软件的研究与实现 郎 杰,徐 虹 (桂林长海发展有限责任公司,广西 桂林 541001) 【摘 要】文章应用MapX 控件实现了电子地图软件的基本功能,着重以Visual C++显示地图和对图层进行操作为例,说明利用MapX 控件进行Maplnfo 地理信息系统二次开发的方法,并对软件构成和实现功能进行了详细的介绍。 【关键词】MapX;Visual C++;电子地图;Maplnfo 【中图分类号】TP311 【文献标识码】A 【文章编号】1008-1151(2009)08-0047-02 (一)引言 MapX 是MapInfo 公司提供的具有强大地图分析功能的ActiveX 控件产品,它提供了一个最简单和最节约成本的方法,用来将地图功能嵌入到新的和现有的应用中。它可以被 快速集成到使用面向对象语言的客户端应用程序中。通过 MapX,可以按照开发人员的意愿在应用程序中加入强大的制 图功能。只需在设计阶段将MapX 控件放入窗体中,并对其进行编程,设置属性、调用方法或相应事件,即可实现数据可视化,专题分析,地理查询,地理编码等丰富的地图信息系统功能。MapX 还可以方便地将一些有特殊意义的数据记录在地图上,使用户更直观地了解地理信息,从而为用户的决策提供根据。VC++是目前较为流行的可视化开发编程工具,有较好的组件集成功能,是电子地图应用程序较为理想的开发环境。随着计算机的飞速发展,电子地图在农林、水利、交通、城市、资源管理与灾害监测等方面取得了广泛的应用。下面本文将讨论以Visual C++为开发平台,用MapX 开发电子 地图软件的具体方法。 (二)软件构成 1.软件的特点 软件采用MapX 组件与面向对象可视化编程语言Visual C++集成的二次开发模式,具有电子地图所必备的基本功能;同时该软件还具有可扩展性,使开发者能根据实际情况添加其它应用功能,能够根据应用的变化而不断改进系统功能。软件界面友好,使用方便,维护简单,稳定性好,通用性强。 2.软件的主要功能介绍 软件的主要功能包括文件、编辑、查看、工具等。并提供地图工具栏,方便用户的使用。 (1)文件 “文件”菜单中可以打开电子地图或者导入电子地图的图层,也可以把用户编辑过的地图场景保存下来。MapX 支持 与MapInfo 一致的数据格式,可直接开.tab、.gst 等文件。 (2)编辑 “编辑”菜单中选项可以根据用户不同需要,在图层上 进行放置符号注释、文本注释、图元标注等编辑操作。 (3)查看 “查看”菜单提供了查看属性页、查看整个图层、工具栏、比例尺等子菜单。查看整个图层,使用户可以浏览全图。工具栏、比例尺何以由用户选择加载或隐藏软件的工具栏及是否在地图上显示当前比例尺。 (4)工具 “地图工具”菜单中选项具有地图的放大、缩小、居中、漫游、平移、点选图元、圆选图元、多边形选择等功能。同时用户可以输入经纬度对地图定位、进行地名查找和距离测量,方便用户使用。 3.软件的界面 软件的运行界面,如图1所示。 图1 软件运行界面 (三)软件的实现 在VC 环境下集成MapX 开发电子地图软件是将MapX 作为控件插入到应用程序中,然后通过设置其属性和调用其方法,响应其事件来实现的。系统具体的开发步骤如下: 1.软件框架的生成 首先打开VC新建一个基于MFC的应用程序,然后在工程中包含MapX控件,方法为从“Project”菜单中选择“Add To Project”的“Files”选项,将MapX.cpp和MapX.h文件包含到工程中,在视图类CDituView中定义一个MapX实例:CMapX m_ctrlMapX,并声明MapX的控件ID:#define IDC_MAP 100,就可以通过VC调用MapX的属性和方法来实现所需的功能。 2.软件初始化 首先在类向导中为WM_CREATE、WM_SETFOCUS和WM_SIZE消 息创建处理程序,以在创建视图时创建MapX控件,语句如下: if (m_ctrlMapX.Create(NULL, WS_VISIBLE, CRect(0,0,600,600),this, IDC_MAP) == false) { return -1; } 【收稿日期】2009-04-15 【作者简介】郎杰(1982-),男,桂林长海发展责任有限公司设计师,从事装备系统软件设计;徐虹(1986-),女,桂林长海发展责任有限公司设计员,从事终端软件设计。

用VC++对MapX进行二次开发总结

用VC++对MapX进行二次开发总结(二) 1839发表评论查看评论3.MapX在VC++ 环境下GIS基本功能的实现 在进行MapX 开发之前,确保已经在计算机中正确的安装了MapX 控件。下面就用一个具体的实例,介绍在VC+ +中集成MapX 的方法。 3.1 将MapX支持类库加入工程 在您的项目中包括MapX.cpp和.h文件。这两个文件包含用于对MapX控件进行访问的类定义和方法实现。MapX.h 和 MapX.cpp 文件可能位于安装有 MapX 的 Samples50\CPP 子目录中(如果您安装的事MapX 4.0,则路径为…\ Samples40\C++\Cpp)。 利用VC++ 环境下的应用程序生成向导创建一单文档应用程序MapSample。将MapX.h和MapX.cpp文件拷贝到当前工程路径下,然后从Project菜单中选择Add to Project >Files命令,此时打开Insert Files into Project对话框,选择MapSample文件夹下的MapX.h和MapX〉cpp文件加入到工程中。 警告:不要选择Project菜单中的Add to Project > Components And Controls命令。这样做将会创建一个.cpp文件,但该文件将是不完整的。我一开始就是这么做的,结果很多常用函数都没有,郁闷了我很长时间。希望大家一起要切记这一点。 3.2 使用VC++创建MapX控件 在将包含该控件得视图中包括它: #include “MapX.h” : : : Class CMapXSampleView : public CView {:::Protected:CMapX m_ctrlMapX;::} 要声明表示用于MapX的控件ID的常数: (1)选择“View”>”Resource Symble”。 (2)单击“New”。 (3)键入“IDC_MAP”来作为名称。 要在类向导中为WM_SIZE和WM_CREATE消息创建处理程序: (1)转入”View”>”ClassWizard”; (2)从“Class Name”组合框中选择您的视图类。 (3)在“Messages”列表框中,单击“WM_CREATE”,然后单击“Add Function”。 (4)接着还在该消息框中选择” WM_SIZE”并单击“Add Function”。 (5)然后,单击“Edit Code” 在创建视图时创建该控件。在CMapXSampleView::OnCreate中: //create map with default size //resize message will cause it to be size to the client area of the view If(!m_ctrlMapX.Create(NULL,WS_VISIBLE, CRect(0,0,100,100),this,IDC_MAP)) Returen -1; Keep the control’s size in sync with the containing window; //resize the map to be the same size as our client area Void CMapXSampleView:: OnSize(UINT nType, int cx, int cy) {CView::OnSize(nType, cx, cy);if(cx!=0 && cy!=0)m_ctrlMapX.MoveWindow(0,0,cx,cy);} 像您为WM_CREATE消息所作的一样为WM_SETFOCUS消息创建新消息标头。 在我们的示例中,我们想要确保只要窗口被激活MapX就获得焦点: void CMapXSampleView::OnSetFocus(CWnd* pOldWnd)

基于MapInfo与MapX的电子地图

基于MapInfo与MapX的电子地图① 彭 刚1,王艳琴2,王 涛1,刘 宇2 1(桂林空军学院教育技术中心,桂林 541003) 2(桂林电子科技大学计算机科学与工程学院,桂林 541004) 摘 要:随着GIS(地理信息系统)的发展与完善,它的开发工具也日趋成熟。MapInfo公司顺应这发展潮流,开发了MapInfo以及MapX控件,可以实现复杂的GIS系统设计。根据桂林市规划地图,首先利用MapInfo 9.5构建地图数据,然后通过Geoset Manager生成Geoset格式文件,最后在Visual Studio 2008编程环境下、利用C# 编程语言对MapX控件进行二次开发,最终实现桂林市电子地图。 关键词:GIS;MapInfo 9.5;MapX;C#;电子地图 Electronic Map Based on MapInfo and MapX PENG Gang1, WANG Yan-Qin2, WANG Tao1, LIU Yu2 1(Educational Technology Center, Guilin Air Force Academy, Guilin 541003, China) 2(Institute of Computer Science and Engineering, Guilin University of Electronic Technology, Guilin 541004, China) Abstract: With the development and perfection of GIS (Geographical Information System), its developing tools have been getting riper day by day. Complying with this trend, MapInfo Company has developed MapInfo and MapX control, which can realize the design of complicated GIS system. The paper is based on Guilin planning maps. Firstly, we use MapInfo 9.5 to structure map data and build Geoset file through Geoset Manager. Then, we carry out the secondary development to MapX control under Visual Studio 2008 programming environment and by C# programming language. Finally, the electronic map of Guilin is implemented. Key words: GIS; MapInfo 9.5; MapX; C#; electronic map 本课题以桂林市规划地图为基础,在Visual Studio 2008开发环境下,通过利用C# 语言对MapX控件进行二次开发。在构建地图数据阶段,利用MapInfo 9.5实现了地图的基本绘制。 1工具概述 1.1 MapInfo 9.5 MapInfo是美国MapInfo公司的桌面地理信息系统软件,是一种数据可视化、信息地图化的桌面解决方案。MapInfo公司把MapInfo软件的市场定位总结为MapInfo = Mapping + Information(地图+信息),正是基于该思想,MapInfo软件充分体现了小型、灵活、简单的特点。目前,该软件的最新版本为MapInfo ①基金项目:国家自然科学基金(60933011) 收稿时间:2010-12-19;收到修改稿时间:2011-01-15 Professional 9.5及其系列软件。 MapInfo采用分层,使复杂的地图变成了简单易处理的多层次的地图层[1]。例如,桂林市的地图可设置县界、市区道路、商场大厦、政府单位、综合信息等层,给地图的输入、编辑带来很大的方便。 1.2 MapX控件 MapBasic是MapInfo自带的二次开发语言,利用MapBasic编辑生成的 .mbx文件能在MapInfo软件平台上运行,早期的MapInfo二次开发都是基于MapBasic进行的。为了适应组件式软件开发的需要,MapInfo公司在1996年推出了基于ActiveX技术的可编程控件MapX,该软件随着MapInfo的升级而升级。 MapX为开发人员提供了一个快速、易用、功能

MapXtreme(MapX)下载地址

MapXtreme(MapX)下载地址 MapXtreme(MapX)下载地址+破解 MapInfo MapXtreme是基于Internet和Intranet的地图应用服务器,利用MapXtreme所提供的强大功能,企业可以快速部署基于Internet和Intranet的地图应用,实现地图数据和其他商业信息的发布和共享。 通过Web形式的地图应用系统,实现数据可视化。以图形的方式,方便、直观地展现数据和地理信息的关系,揭示出数据背后不易察觉的规律和发展趋势,改善企业的运营机制,提高生产效率,辅助客户做出更具洞察力的分析和决策。 MapXtreme功能简介 ★基于Internet/Intranet的地图分布 通过MapXtreme,用户可以在Internet/Intranet上发布基于电子地图的应用系统。所有的最终用户只需在自己的机器上安装浏览器(如Microsoft Internet Explorer或Netscape)即可访问存放在服务器端的空间数据,用户可以很方便地对地图进行放大、缩小、漫游、查询、统计等操作。 ★ 强大的地图功能 MapXtreme强大的地图功能,满足用户的不同层次的需要,包括:专题图、缓冲区分析、地图编辑、查找、直接读取

LotusNotes、图层控制、空间选择、访问各种数据源等。 ★ 集中式数据管理模式 使用MapXtreme,开发人员能集中地控制和维护地图和数据库数据,并集中实现应用程序功能,避免了以往系统的维护、同步困难的问题,尤其适合信息量大,用户众多的情况。 ★ 低成本的运营模式 欢迎光临学网,收藏本篇文章[1] [2] $False$ MapXreme 集中式的软件管理和数据管理方式使管理成本 和运营成本大大降低。 ★ 与DBMS无缝结合 MapXreme和MapInfo的Spatialware无缝接合。两者的结合能够提供更优异的性能、集中化的管理和可靠的安全保障。 ★ 高度的可伸缩性 当需要增加客户容量时,只需增加服务器即可,而不需要进行新的开发。 ★ 标准的开放式结构 MapXreme 的开放式结构可以和所有的Web服务器兼容,并能够和ISAPI、NSAPI以及CGI很好的协作,支持从瘦客户到胖客户的各种Web体系结构。 ★ 支持多种浏览器

相关文档