网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.在Delphi技巧实现权限管理.
.PHP+MYSQL网站注入扫描.
.变速齿轮Delphi实现.
.用DELPHI制作在线程序升级信息查.
.运行期间生成代码的动态执行.
.算术编码算法.
.改进的socket控件.
.用Delphi做一个有颜色属性的按钮.
.mscomm32的简单应用.
.delphi7从入门到精通之(一).
.使用XMLDocment遍历CSDN论坛帖子.
.利用书签功能对TDBGrid控件中多个.
.对Delphi控件的一点改良.
.中港台譯名對照表簡易語法版.
.如何使用Delphi设计强大的服务器.
.delphi连接数据库浅谈.
.如何访问一个进程的内存空间.
.几个delphi书中没提过的数据库问.
.Delphi之快速设计(程序设计篇).
.控制面板的编程.

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

发表日期:2006-2-4


从数据库绘制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;
 
这个方法比上文提到的方法应该快了很多很多,哈哈~~
二〇〇四年七月十三日
上一篇:DELPHI的原子世界 人气:2745
下一篇:Delphi中取某整数的某位的位状态的小函数 人气:4720
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐