MapInfo MapX是一个用来做地图化工作的OCX控件,
首先是简介
是mapinfo4.0以后才有的
MapX是一个OCX组件,可以被快速集成到使用Visual Basic、PowerBuilder、Delphi、Visual C++或其他面向对象的语言的客户端应用程序以及使用Lotus Script的Lotus Notes (v4.5)中。开发人员可以在他们熟悉的环境中工作,最终用户可以通过他们熟悉的应用程序来访问地图数据。
MapX 的功能
MapX不仅仅是一个“地图浏览器”。通过MapX,可以分析并直观地显示业务数据,创建或编辑地图图元,并按地理位置显示数据结果。
1、专题制图 - 使用专题制图显现数据。联合数据和地图中的每个图元,并在地图中用颜色编码(或其他样式)来表示数据。可使用六种不同的样式来观察数据(色彩范围、点密度、独立值、等级符号、饼图、直方图)。
2、逐层细化制图 - 可以通过简单的定点和单击来浏览数据,在OLAP S环境下,可以允许用户通过定点和单击逐层细化地图的某个区域。
3、数据绑定 - 地图可合并来自嵌套OCX的容器、ODBC或DAO数据源(例如MSAccess)的数据。MapX提供多种不同类型数据的绑定,包括邮政编码级别的地理编码。
4、注释 - 可以提供定位、高亮显示特定数据的功能,通过添加文本、符号和标注来使您的地图信息变得更加丰富。
5、图层化 - 显示和控制地图图层的显示,让它只在地图的缩放比例符合事先调整的距离时才显示。还可以使用或创建无缝地图图层,它可以把一组基表看作一个整体。特殊图层类型可以支持特殊类型的应用,如动态图层(用于实时跟踪)和用户描绘图层(用于描绘特殊的地图元素,如地图上方的标志)。
6、栅格图像 - 用一幅放在底层的栅格图像作为地图背景,使您的地图更生动、更详细。目前,主要是配合卫星行片,使地图更加逼真
7、自动标注 - 自动向地图添加标注,同时控制其属性及显示。
8、选择 - 通过分组和组织数据,发挥MapX的分析特性。即在一个指定的半径、矩形区域或指定点的范围内选择地图图元。
图元工厂 - FeatureFactory对象使您得以创建、合并和缓冲区或擦除点、线和区域图元。
工具 - 用户可以通过单击和拖动直接与地图交互。通过MapX内置的导航、选择和标注工具或自定义工具来对地图进行操作。
地图编辑 - 可以让用户在地图上添加、修改或删除图元。
投影和坐标系 - MapX对地图坐标系和投影的完全支持使您可以更精确地调整地图的显示并在自己的坐标系中处理X-Y数据。
9、远程空间服务器连接 - 可以连接运行在Oracle8.0.5、Informix或其他所支持的数据库上的Oracle8i Spatial和MapInfo SpatialWare上存储的真实数据。为集中管理和安全起见,空间服务器允许公司在企业数据库中主持他们的地图数据。象SpatialWare和Oracle8i Spatial之类的空间服务器还提供高级查询处理功能,并增加了用于处理组织机构的空间数据的服务器性能。在一个RDBMS中存储空间数据对于需要进行大量地图编辑和处理大型数据集的应用程序也是必要的。
但需要说明的是,mapinfo公司有专门用于web的maoxtrem
安装 MapX
因为MapX是32位OCX,所以它需要一个32位版本的Windows (Windows 95/98或Windows NT 4.0)。MapX应用程序不能在Windows 3.1 中运行。
下面讲组织数据和地图
要使用 MapX,需要有您的记录和MapInfo地图文件。MapX 以 MapInfo 表的形式组织所有潜在信息。每个表都是一组用来在地图中创建图层的 MapInfo 文件。
文件如何组成表?
所有的 MapInfo 表都会拥有下列文件:
<文件名>.tab:描述 MapInfo 表的结构。它是描述包含数据的文件的格式的小文本文件。
<文件名>.dat:(.mdb、.aid 或 .dbf):这些文件含有表格格式数据。
<文件名>.map:描述图形对象(如果表没有地图对象则不存在该文件)。
<文件名>.id:是链接对象和数据的交叉引用文件(如果表没有地图对象则不存在该文件)。
<文件名>.ind:索引文件。索引文件允许使用 Find 对象来查找地图对象。
不熟悉,就讲一下MapInfo 表和 MapX 图层
每个可用地图表示的 MapInfo 表都能在地图上作为图层显示。例如,您可以显示客户表、街道表以及县边界表。
图层是透明的,而每一层都包含了地图的不同部分。这些图层是一层层叠加,这样您就可以看到整个地图信息。
什么是 GeoSets?
Geoset 保存了地图图层的集合以及一些对您来说简单易用的设置。其名称的由来是因为 Geosets 是由一些表示同一地理区域的以标准 MapInfo 格式出现的地图文件(.tab)组成的数据集。当您希望将多个图层作为示例地图使用时,会发现单独打开和显示多个图层是件多么费时的工作,Geoset 使您避免这样的情况。Geoset 的扩展名是 .gst。.gst 文件是文本文件,它包含若干用来告诉 MapX 显示什么表以及如何显示的元数据键值。
当打开 Geoset 时,它自动打开所有包括在 Geoset 中的文件并默认显示。开发者可以更改“默认显示”来迎合自己的需要。Geoset 设置包括投影、默认缩放值,对象的自动标注,缩放范围以及打开的表是否可见。MapX 也可以打开开发者指定的任意单个(.tab)地图文件。使用 Geoset 非常方便,无需 MapX 就能运行。MapX 将不会打开 MapInfo 工作空间(.wor 文件类型)。但在地图的组织上相当于MapInfo 工作空间
第三个概念:地图图元
以上是入门
下面讲的也是基础性的
Map 对象
下列图表是 MapX 对象体系的局部,您可以看到 Map 对象存在于最顶端。每个 MapX 的对象、属性和方法都衍生于 Map 对象。每个在 Map 对象之下的属性和方法都会对生成整个 Map 对象有所影响。主要是由 DataSets、Layers 和 Annotations 对象定义每一个 Map 对象。
下表显示了一些由数值表示的 Map 对象属性。可以在“设计时”改变这些属性,也可以在“运行时”使用以下代码示例来更改。
属性 描述 代码示例
Zoom 设置在地图中显示的英里(默认的距离单位)数。 Map1.Zoom = 500
Rotation 对地图旋转指定的度数 Map1.Rotation = 179
CenterX 设置 x 和 y 坐标,它们可能代表经纬度。这是由地图的投影来决定的。 Map1.CenterX = -79.4458
CenterY 设置 x 和 y 坐标,它们可能代表经纬度。这是由地图的投影来决定的。 Map1.CenterY = 44.9932
显示不正常
Zoom 设置在地图中显示的英里(默认的距离单位)数。 Map1.Zoom = 500
Rotation 对地图旋转指定的度数 Map1.Rotation = 179
CenterX 设置 x 和 y 坐标,它们可能代表经纬度。这是由地图的投影来决定的。 Map1.CenterX = -79.4458
CenterY 设置 x 和 y 坐标,它们可能代表经纬度。这是由地图的投影来决定的。 Map1.CenterY = 44.9932
用 Map 对象,可以通过操纵地图的几个方法和属性来控制地图如何来显示。有一些属性是由其他对象来表示的。例如,当您看到 MapX 地图时,也就是看到单独图层的集合,它是由 Layers 集合来表示的。Layers 集合是 Map 对象的属性。
现在让我们来看一看如何改变地图的属性。属性页允许我们操作 Map 对象的多个属性。
上面是属性页,可以直接修改,也可以在程序里修改
下面讲图层
每一幅单独的地图是一个图层,MapX 把地图存储为图层的集合。
区域地图
图层集合还有很多,以后再详细讲
下面是GeoSets
GeoSet 是地图图层及其设置的集合。可以在“设计时”指定GeoSet 。如果在“运行时”设置,则先要删除所有已加载的图层和数据集,然后加载新的 GeoSet。
如前所述,在运行时指定要加载的其他 GeoSet、给地图对象添加图层,或是操作图层的外观等操作都可以通过属性页来实现,或者可以通过与 MapX 一起装载的 MapX Geoset Manager 程序 来实现(此程序可以在 MapX 程序组中找到)。
可以利用GeoSetManager管理工具更改图层设置,当认为满意时,就可以保存地图。这将把 GeoSet 文件(*.GST)写到驱动器中。当打开该 GeoSet 文件时,将返回所有的地图图层和设置。Geoset Manager 使您可以修改图层、管理缩放等级、标注,以及其他属性。
下面是GeoDictionary,数据绑定的
你可以把图片打包,压缩传他
利用MapXz作数据绑定或创建专题地图时,可以用 GeoDictionary来匹配数据源与地图图层。GeoDictionary 是一个保存了关于哪个地图图层可以匹配、哪个字段可以用作匹配字段的信息文件(一般命名为 geodict.dct)。如果想运用自动匹配/自动绑定,则必须在 GeoDictionary 中注册文件。例如,如果拥有按州划分的销售额的数据,那么 GeoDictionary 就可以确定此数据和“USA”地图图层相匹配。
修改 GeoDictionary
如果在做数据绑定时要利用自动匹配,则在 GeoDictionary 里注册 MapInfo表是必要的。在 MapX GeoSet Manager 的工具菜单下有执行GeoDictionary 程序的选项。MapX GeoDictionary 程序允许把新的MapInfo 表注册到 GeoDictionary 中。同时,在 MapX GeoDictionary 中,单击注册表……按钮,然后选择要注册的表,设置表属性并为其输入描述。如果要想自动地把这张表加载到 GeoSet 中,请单击添加按钮然后选择要把表添加进的
GeoSet 。
下面是基础部分的第五个问题:DataSets
DataSets使您可以将数据绑定到地图。例如,如果您有一个按县划分的关于销售额的 MS Access 数据库和一幅县地图,您就可以把数据绑定在这幅县地图上,并可以发现这个按县划分的销售额趋势图,而以表格数据的形式则不容易突出显示该趋势。
如上所示,当 MapX 需要在数据和地图之间指定某个匹配时,该匹配是通过称为自动匹配/自动绑定的处理过程来确定的。如要利用自动匹配/自动绑定,首先必须在 GeoDictionary 中注册地图。一旦将数据和地图绑定,就可以看到相关的地理化信息。数据的直观表示使得专题地图的创建变得可行。专题就是以颜色划分的地图,以该方式来表现数据的变化趋势。我们将在以后章节中详细的讲解专题图的制作。
Annotations 集合是把文本和符号放在地图上的简单方法。注释放在所有其他图层的最顶端,并且不和任何数据链接。如果您熟悉 MapInfo,Annotations的概念在目的上与地图的装饰图层比较相似。
下表列出了 Annotations 集合对象的方法和属性:
Annotations 集合方法
表格显示不正常,表格项依次是
方法 描述 代码示例
AddSymbol 向 Annotation 集合添加符号。使用默认样式(由 Map.DefaultStyle 指定)。 Map1.Annotations.AddSymbol X, Y
AddText 向 Annotation 集合添加文本。第四个参数表示文本在指定坐标系中的初始位置。 Map1.Annotations.AddText _ “Developer Services”, _ 79.44, 46.8889, _ miPositionTL Remove 从集合中删除指定的 Annotation。 Map1.Annotations.Remove 1
RemoveAll 从集合中删除所有的 Annotation。 Map1. Annotations.RemoveAll
Annotation 集合属性
Editable 指定注释是否能够编辑。 Map1.Annotations.Editable _ = True
Type 指定 Annotation 对象类型。 If Map1.Annotations(2).Type_
Graphic 包含了拥有 Annotation 属性的 Graphic 对象。请参阅联机帮助中的 Graphic 对象描述。
请注意在注释对象中没有关于位置、符号样式或是注释的属性。注释的图形属性包含了该信息的图形对象。要修改注释,可修改注释的图形对象。
下列代码在指定位置添加符号:
'Add a symbol at location
Map1.Annotations.AddSymbol(X1, Y1);
第七个问题:创建对象
在 MapX 对象模型中,可以使用下列对象类来创建独立对象。
BindLayer ODBCQueryInfo
BitmapSymbols 点集的集合
Feature Point
Fields Points
NotesQueryInfo Rectangle
NotesViewInfo Style
Delphi 示例
Var
s : variant;
begin
s := CreateOleObject('MapX.Style.4');
s.PickRegion;
MapObject.Layers.Item(1).Style := s;
End
相关推荐
VC++下Mapx+MapInfo编程流程
记录自己的在VC++开发地图的流程。用MapX结合MapInfo地图
Mapinfo、MapX笔记
1. MapX的GeoSet在VB的设计环境调入GeoSet后,通过MapX的自定义对话框定义的属性存储在frm文件中,也就是说,此时的设置更改并不会存储回GeoSet文件,只对此项目起作用,原GeoSet文件还是原来的。 2. 使用MapInfo编辑好地图后,通过设置各层属性,包括显示、标注等,信息保存于工作空间文件,可以将这些设置保存于一个GeoSet文件(工具),然后在VB中读入即可。这个...
Mapinfo Mapx Mobile
MapInfo MapX Mobile是一个可以用在Pocket PC的MapX 平台,譬如Compaq的 iPAQ 和 HP 的Jornada.。它是一个开发工具,可以让我们的客户开发新的移动软件,进而扩展现有的软件。用 MapX Mobile 建立的软件可以单独在设备上运行,并能够和Pocket PC的Windows CE操作系统兼容,不需要无线连接。
用delphi操作mapinfo
1.概述 MapInfo Professionnal 6.0是美国MapInfo公司开发的一种桌面地理信息系统开发平台,因为它小巧玲珑、易学易用,同时对空间数据具有强大的采集、存贮、分析等功能,所以成为世界上最为流行的桌面地理信息系统。目前利用MapInfo开发应用程序主要有三种方式。分别是单纯利用MapBasic开发、利用可视化编程工具集成二次开发和利用MapX开发。 在这三种方法中,单纯M
mapX记录 -- 开发环境
mapX记录 -- 开发环境
【old】mapX距离工具源码,delphi7+mapx5.0
delphi7+mapx5开发的测量距离工具,界面和mapinfo一样,使用十分简单。 Author: 杜长宇 junqilian@163.comPurpose: 量距离工具History: 2005-05-21 开发环境: delphi7+mapX 5.02.38windows XP Sp2 许可:您可以自由的使用本代码进行学习或非商业、商业应用,你可以自由更改本代码以便更适合你的应用,但请保留...
MapX 简介
进行MapInfo的开发,即使是使用OLE Automation方式,也需要熟悉MapBasic。在有几千个点的装机数或要制作CD-ROM地图集的情况下,用户也希望以较低的价格获得。MapX是一个基于ActiveX(OCX)技术的可编程控件。它使用与MapInfo Professional一致的地图数据格式,并实现了大多数MapInfo Professional的功能。MapX为开发人...
MapX 简介 (转)
MapX 简介 (转)[@more@]Mapinfo MapX 进行MapInfo的开发,即使是使用OLE Automation方式,也需要熟悉MapBasic。在有几千个点的装机数或要制作CD-ROM地图集的情况下,...
OLE自动化技术在Delphi与MapInfo集成地图开发中
摘要:本文论述了利用OLE 自动化技术和可视化编程工具Delphi 来实现MapInfo 地图的集 成,并通过例程的方式介绍了集成地图的方法以及对MapInfo 的消息回调。从而实现了 MapInfo 集成到Delphi 应用系统中,达到高效开发应用型GIS(地理信息系统)软
【old】仿MapInfo图层信息工具源码类,使用很简单
n年前写的基于MapInfo的信息查询工具,曾发布到当时比较火的GIS论坛。没想到现在还经常有人问我要,因为原先的论坛访问不了。虽然现在不用MapInfo了,但也算了为了存档放在这里吧。 {-----------------------------------------------------------------------------Unit Name: TMapInf...
MapInfo Professionnal 6.0简介
MapInfo Professionnal 6.0是美国MapInfo公司开发的一种桌面地理信息系统开发平台,因为它小巧玲珑、易学易用,同时对空间数据具有强大的采集、存贮、分析等功能,所以成为世界上最为流行的桌面地理信息系统。目前利用MapInfo开发应用程序主要有三种方式。分别是单纯利用MapBasic开发、利用可视化编程工具集成二次开发和利用MapX开发。 在这三种方法中
MapX 创建新的永久图层。
<br />/*<br />MapInfo Products Knowledge Base<br />Product: MapX<br />Version: 4.5<br />Platform: Win9xNT0<br />Category: VC++ Code Samples<br />Summary:<br />Creating a new table in Visual C++.<br />Question:<br />Is there a C++ code example for how to c
原来MapX和MapXtreme差这么多
一直做MapX今天准备改MapXtreme2004,一看开发手册,原来这两个东西差这么多,感觉象是个新东西了,看来要下点功夫了! 转载于:https://www.cnblogs.com/feng-yan/archive/2005/12/21/301935.html...
Delphi.Net还是没有把Windows底层的东西研究明白!
我通过一个WebGIS得出结论:Delphi.Net还是没有把Windows底层的东西研究明白!以前我用 Borland Delphi 6 + MapInfo MapX 5 开发了一套Win32-GIS应用系统,现在打算移植到WebGIS平台,考虑到精力、时间、难以程度等因素,顺理成章地选择了 Borland Delphi 2006(ASP.Net) + MapInfo MapXtreme 2
394




被折叠的 条评论
为什么被折叠?



