WEB开发网
开发学院软件开发Delphi 从数据库绘制MapX地图(二) 阅读

从数据库绘制MapX地图(二)

 2006-02-04 13:48:55 来源:WEB开发网   
核心提示:从数据库绘制MapX地图(二)主题:MapX Delphi数据库 地图 Layer Style Font 我在二〇〇四年四月十五日发表文章《从数据库绘制MapX地图》之后,我收到大量读者的来信,从数据库绘制MapX地图(二),由于繁忙,不能一一回复,不会翻译^_^ oBLayer := coBindLayer.Cre
从数据库绘制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 二〇〇四年七月十三日

Tags:数据库 绘制 MapX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接