Mapx数据绑定



Delphi+MapX5+Access数据绑定实例

Delphi+MapX5+Access数据绑定实例

从网上搜一下,Delphi+MapX+Access数据绑定的例子不少,但大多没法运行.本人也是初学,经过试验实践,终于成功,总结如下.

学MapX这些天以来,在几个QQ群上发现一个通病:似乎学MapX的前辈们都很保守, 抱着自己的一点点技术象看家宝贝? 初学者提点问题,大家都不愿回答. 太小气,太以为自己了不起了吧.

*本文部分代码修改自互联网

关键点:

1、表的结构要与TAB的结构相同,或者至少要有一个相对应的索引字段。

2、要先创建一个新图层,然后再把DataSet绑定到该图层。

3、绑定的方法就是Tmap.Datasets.Add

实例步骤:

1、创建MDB文件:

2、创建一个TAB图层文件

3、创建ADO链接和查询的代码:

procedure TForm1.FormCreate(Sender: TObject);

begin

with Self.ADOConnection1 do begin

    if Connected then Close;

    LoginPrompt := False;

    ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='

      +SysUtils.ExtractFilePath(ParamStr(0))

      +'db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password=';

end;

Self.ADOQuery1.Connection := Self.ADOConnection1;

Self.ADOQuery1.SQL.Text := 'select ID, Name, X, Y from MyTab';

Self.ADOQuery1.Open;

end;

4、绑定的代码:

procedure TForm1.Button1Click(Sender: TObject);

var

oBLayer : BindLayer;    

SearchLayer : Layer;

ds : Dataset;

begin

Map1.Layers.RemoveAll;//先删除a图层。事实上,后来我用一个没有a图层的GST也测试成功,当然,就没必要写RemoveAll这句了

oBLayer := coBindLayer.Create;

oBLayer.LayerName := 'a';

oBLayer.LayerType := miBindLayerTypeXY;//必须使用这个参数才能绑定XY坐标

oBLayer.RefColumn1 := 'X';//第一个参数必须指定为横坐标

oBLayer.RefColumn2 := 'Y';//纵坐标

//添加数据集

ds := map1.Datasets.Add(12,//数据集类型,这是miDataSetADO,即ADO专用的

                        Self.ADOQuery1.Recordset,//使用这个方法获得ADO中的_Recordset类型

                             'MyTab',//数据集名称

                             'ID',//传入的是Xunit表中的字段ID的名称

                             EmptyParam,

                             oBLayer,//BindLayer

                             EmptyParam,

EmptyParam);

//下边将设置新图层的各项属性

searchLayer := map1.Layers._Item('a');//长尾兔注:应该是_Item而不是Item

//字体颜色

searchLayer.LabelProperties.Style.TextFontColor := miColorPurple;

searchLayer.LabelProperties.Style.TextFontHalo := true;

searchLayer.LabelProperties.Style.TextFontBackColor := miColorWhite;

//设置图元显示的标签

searchLayer.LabelProperties.Dataset := ds;

searchLayer.LabelProperties.DataField := ds.Fields._Item('Name'); //长尾兔注:应是_Item

searchLayer.LabelProperties.LabelZoom := true;

{ //设置图层缩放比例范围

searchLayer.ZoomMin := 0;

searchLayer.ZoomMax := 200;

searchLayer.ZoomLayer := true;

//设置标签缩放比例范围

searchLayer.LabelProperties.LabelZoomMin := 0;

searchLayer.LabelProperties.LabelZoomMax := 200;

searchLayer.LabelProperties.LabelZoom := true;

//自动标记图元

searchLayer.AutoLabel := true;}

end;

附:

以下是用默认的北美地图做试验:

相应的把座标改了一下,位置在墨西哥西北部:

C#开发MapX的资料 很实用 第四章 MAPX与C#实例 5 4.1 MAPX图层建立 5 4.1.1 MapX数据与地图的组织结构 5 4.1.2 实例1:建立/添加一个用户自定义图层 5 4.1.3 在MapX中使用栅格图层 7 4.1.4 实例2:栅格图层的建立 8 4.2 图元自动标注 9 4.2.1 实例3:给图层加上自动标注功能 9 4.3 MAPX地图集 9 4.3.1 什么是MapX地图集(Geoset)? 9 4.3.2 实例4:打开已存在的地图集文件 10 4.3.3 实例5:保存地图集 10 4.4 内置工具的使用 11 4.4.1 使用标准工具 11 4.4.3 实例6:内置标准工具的使用 11 4.5自定义工具 12 4.5.1 创建自定义工具 12 4.5.2 实例7:创建测量长度和面积自定义工具 13 4.6 MAPX地图符号样式的定制 14 4.7在图层上添加自定义图元 15 4.7.1 实例8:鼠标点击向图层上添加图元 15 4.7.2 实例9:给定坐标向图层上自动添加图元 17 4.8 获得图元属性 20 4.8.1实例10:获取选定图元的属性 20 4.9 图元的选取 21 4.9.1 实例11:实现InfoTip功能 21 4.10 图元属性的修改 22 4.10.1 实例12:修改图元属性 22 4.11 实例13:图元的查询 23 4.12 实例14:鹰眼图的实现 24 4.13 数据绑定 26 4.14 GPS在GIS系统中的应用 27 4.14.1定位信息的接收 27 4.14.2定位信息的提取 27 4.14.3定位信息在MapX中的显示 28 4.14.4 实例15:GPS定位系统的应用 28 4.15 多媒体信息在GIS系统中的应用 33 4.15.1 GIS中嵌入多媒体的方法 33 4.15.2 实例16:在MapX系统中嵌入多媒体数据 33 第五章 MAPX与ORACLE结合 35 5.1 ORACLE数据库对GIS的支持 35 5.1.1面向对象的数据库支持 35 5.1.2.Oracle spatial组件的引入 35 5.2 循序渐进学习ORACLE SPATIAL在MAPX中的应用 36 5.2.1 oralce服务器的安装 36 5.2.2 准备由Oracle Spatial存储的图层文件 36 5.2.3 Easyloader上载工具 36 5.2.4 图层信息在Oracle中的存储结构 38 5.2.5用程序实现MapX图元到oracle数据库的上载 42 5.2.6 用程序实现oracle数据数据下载至MapX中显示 44 5.2.7 图元样式的还原 46 5.3 在网络环境下实现图层信息共享 47 第六章 MAPCTRL控件的开发方法 57 6.1 主要功能 57 6.2 开发步骤 57 6.3 程序实现 58 第七章 分发基于.NET平台的MAPX应用程序 91 7.1 .NET FRAMEWORK 概述 91 7.2 .NET FRAMEWORK 的主要组件和功能 92 7.2.1公共语言运行库 92 7.2.2 .NET Framework 类库 92 7.3 安装 .NET FRAMEWORK 93 7.4 MAP客户安装 93 7.5 制作安装程序 93
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值