再谈从数据库绘制MapX地图

blue_bat 2004-07-16 02:11:12
再谈从数据库绘制MapX地图
再谈从数据库绘制MapX地图
主题:MapX Delphi数据库 地图 Layer Style Font

我在二〇〇四年四月十五日发表文章《从数据库绘制MapX地图》之后,我收到大量读者的来信,由于繁忙,不能一一回复,在这里对此表示真诚的歉意!仅以此文感谢对我表示支持的众位兄弟姐妹,谢谢你们。
这里提供的是一种更为高效的从数据库绘制MapX地图的方法,我在数据库中建立了如下的数据表:
表名称:Xunit
ID :字符串 //用于唯一标识各个图元,也可以是数字类型的
NAME :字符串 //图元的名称
X :浮点数 //图元横坐标
Y :浮点数 //图元纵坐标

代码清单:
//aqXUnit是一个TADOQuery,其中SQL语句为“SELECT * FROM XUNIT”。
procedure TfrmMain.DrawLayerFromDB;
var
oBLayer : BindLayer;
SearchLayer : Layer;
ds : Dataset;
begin
//使用这个过程必须保证aqXUnit表已经打开!
if not aqXUnit.Active then
begin
GiveMsg('系统基础表没有打开!');//调用自定义提示方法
exit;
end;
//创建BindLayer,非常讨厌半英半汉,没办法,不会翻译^_^
oBLayer := coBindLayer.Create;
oBLayer.LayerName := 'ARTEMIS';
oBLayer.LayerType := miBindLayerTypeXY;//必须使用这个参数才能绑定XY坐标
oBLayer.RefColumn1 := 'X';//第一个参数必须指定为横坐标
oBLayer.RefColumn2 := 'Y';//纵坐标
//添加数据集
ds := mapMain.Datasets.Add(12,//数据集类型,这是miDataSetADO,即ADO专用的
aqXUnit.Recordset,//使用这个方法获得ADO中的_Recordset类型
'DS_SK',//数据集名称
'ID',//传入的是Xunit表中的字段ID的名称
EmptyParam,
oBLayer,//BindLayer
EmptyParam,
EmptyParam);
//下边将设置新图层的各项属性
searchLayer := mapMain.Layers.Item('ARTEMIS');
//字体颜色
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');
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;

这个方法比上文提到的方法应该快了很多很多,哈哈~~
杨雨田 YangYutian@Hotmail.Com
二〇〇四年七月十三日

...全文
161 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lym_1978 2004-07-17
  • 打赏
  • 举报
回复
up
2004v2004 2004-07-17
  • 打赏
  • 举报
回复
支持

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧