专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »VB教程 » vbmapx:应用MapX编程两例-vb教程 »正文

vbmapx:应用MapX编程两例-vb教程

来源: 发布时间:星期四, 2008年9月25日 浏览:157次 评论:0
sp; 应用MapX编程两例
citylamp

0 MapX简介
MapX是MapInfo公司提供的具有强大地图分析功能的ActiveX控件产品。由于它是一种基于Windows操作系统的标准控件,因而能支持绝大多数标准的可视化开发环境,如Visual C++、Visual Basic、Delphi、PowerBuilder、Visual Studio.NET等。编程人员在开发过程中可以选用自己最熟悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。利用MapX,能够简单快速地在软件中嵌入地图化功能,增强软件的空间分析能力。MapX采用基于MapInfo Professional相同的地图化技术,可以实现MapInfo Professional具有的绝大部分地图编辑和空间分析功能。
MapX的主要功能包括:
[1]专题地图绘制 使用专题地图绘制可以直观地表示数据。将数据与地图上的对象相关联,然后使用颜色编码(或其它样式)来直观地表现数据。可使用六种不同样式的任何一种(颜色范围、点密度、单独值、分级符号、饼图或条形图)查看数据。
[2]逐层细化地图绘制 通过简单的点击即可详查数据。对于OLAP/DSS,可以通过点击让用户逐层细化到地图上的区域。
[3]数据绑定 地图可以与嵌套了MapX的容器、ODBC或DAO数据源相连。MapX 提供了若干不同类型的数据绑定,包括邮政编码级别的地理编码。
[4]注释 可以自行定义注释的显示方位。突出显示特定数据。还可加入文本、符号、表格使地图信息更加丰富直观。
[5]图层化 可以显示和控制地图图层,使其缩放程度在预设的距离内时才显示。可以使用或创建无缝图层,从而就像处理一个表一样处理一组表。可以通过特殊图层来支持特殊的应用,这些特殊图层包括动画图层(用于实时跟踪)和UserDraw 图层(用于在地图顶部绘制特殊地图元素,例如徽标)。
[6]栅格图像 在图层中加入一个栅格图像层作为背景可以使最终的地图更加清晰、美观。
[7]自动标签 可以自动向地图添加标签,并可以控制其属性和显示。
[8]选取对象 可在地图上拖动鼠标在圆、矩形或特定的点上选择一个或多个对象或记录以供分析。
[9]特征工厂 用FeatureFactory对象可以创建、合并、缓冲或清除点、线、区域对象。
[10]工具集 用户可以通过单击和拖放操作来与地图交互。可以使用MapX内置的导航、选择、标签、缩放工具,或者创建自定义的工具来满足程序的要求。
[11]地图编辑 允许用户添加、修改、删除地图上的文本、编辑区域、点等特殊对象。
[12]投影和坐标系 通过支持各种坐标系统和地图投影,MapX允许微调地图的显示并在本地坐标中处理X-Y坐标数据。
[13]远程空间服务器连接 可以访问存储在Oracle 8i 和MapInfo SpatialWare中的远程地图数据。空间数据服务器如SpatialWare和Oracle 8i等都提供了先进的查询处理能力 ,提高了空间数据组织的性能。将空间数据存储到关系型数据库中,可以增加应用程序的灵活性和地图数据的安全性。


1简单的GIS功能
对于地图缩放、平移、选取、标签等比较简单的功能,可以通过设置MapX控件对象的CurrentTool属性方便地获得。如平移功能就可以简单地用以下语句获得:
Map1.CurrentTool = miPanTool (假设MapX控件名字是Map1)


2 对象闪烁功能
很多GIS系统中要用到图形对象的闪烁功能。比如:节点在状态未知时显示灰色,在接受查询时以闪烁以表明状态。这部分功能是借助定时器控件实现的。程序代码主要部分如下:

´记录目前正在处理的节点图标
Dim CurCusSym As New MapXLib.Feature
´两个交替显示的图标
Dim NewStyle As New MapXLib.Style, OldStyle As New MapXLib.Style
´用于更换图标的布尔值
Dim blnold As Boolean
…………
Private Sub Timer1_Timer() (每次定时器间隔时间到时调用此函数)
Set lyr = Map1.Layers.Item(1)
Set FeaFac = Map1.FeatureFactory
With NewStyle
.SymbolType = miSymbolTypeBitmap
.SymbolBitmapSize = 24
.SymbolBitmapTransparent = True
.SymbolBitmapName = \"red.BMP\" (要显示的第一张图片)

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: