1. unit Form_MainU;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs,MapWinGIS_TLB, DB, Grids, DBGrids, DBTables, OleCtrls, ComCtrls,
  8. StdCtrls ;
  9.  
  10. type
  11. TForm1 = class(TForm)
  12. Button1: TButton;
  13. PageControl1: TPageControl;
  14. TabSheet1: TTabSheet;
  15. TabSheet2: TTabSheet;
  16. Map1: TMap;
  17. Table1: TTable;
  18. DBGrid1: TDBGrid;
  19. DataSource1: TDataSource;
  20. OpenDialog1: TOpenDialog;
  21. Button2: TButton;
  22. StatusBar1: TStatusBar;
  23. Button3: TButton;
  24. procedure Button1Click(Sender: TObject);
  25. procedure Map1MouseMove(ASender: TObject; Button, Shift: Smallint; x,
  26. y: Integer);
  27. procedure Button2Click(Sender: TObject);
  28. procedure Button3Click(Sender: TObject);
  29. private
  30. { Private declarations }
  31. AShape:Shapefile;
  32. MapHanle:integer;
  33. public
  34. { Public declarations }
  35. end;
  36.  
  37. var
  38. Form1: TForm1;
  39.  
  40. implementation
  41.  
  42. {$R *.dfm}
  43.  
  44. procedure TForm1.Button1Click(Sender: TObject);
  45. begin
  46. self.OpenDialog1.FileName :='*.SHP';
  47. if self.OpenDialog1.Execute() then
  48. begin
  49. AShape:=MapWinGIS_TLB.CoShapefile.Create;
  50. AShape.Open(self.OpenDialog1.FileName,nil);
  51. MapHanle:=self.Map1.AddLayer(AShape,true);
  52. self.Table1.TableName :=ExtractFilePath(self.OpenDialog1.FileName)+'grid.dbf';
  53. self.Table1.Active:=true;
  54. end;
  55. end;
  56.  
  57. procedure TForm1.Map1MouseMove(ASender: TObject; Button, Shift: Smallint;
  58. x, y: Integer);
  59. var
  60. XX,YY:Double;
  61. begin
  62. Self.Map1.PixelToProj(x,y,XX,YY);
  63. Self.StatusBar1.Panels[].Text :='X='+formatFloat('#.##',XX);
  64. Self.StatusBar1.Panels[].Text :='Y='+formatFloat('#.##',YY);
  65. end;
  66.  
  67. procedure TForm1.Button2Click(Sender: TObject);
  68. var
  69. i:Integer;
  70. x,y:Double;
  71. begin
  72. for i:= to AShape.NumShapes- do
  73. begin
  74. x:=AShape.Shape[i].Extents.xMin;
  75. y:=AShape.Shape[i].Extents.yMin;
  76. Self.Map1.AddLabel(MapHanle,'v',clBlack,x,y,MapWinGIS_TLB.hjCenter);//添加标注
  77. Self.Map1.Redraw;//图层刷新
  78. end;
  79. end;
  80.  
  81. procedure TForm1.Button3Click(Sender: TObject);
  82. begin
  83. self.Map1.ClearLabels(MapHanle);//删除标注
  84. Self.Map1.Redraw;//刷新
  85. end;
  86.  
  87. end.

MapWinGIS添加标注的速度还是很快的,9万多个标注添加到图层上,等待的时间还是可以忍受的,大概6~9秒钟吧。

在Delphi下基于MapWinGIS添加和删除图层标注的方法的更多相关文章

  1. Delphi下使用MapWinGIS控件打开GIS图层

    unit Unit3; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...

  2. Linux下基于LVM调整分区容量大小的方法

    Linux下调整分区容量大小的方法(适用于centos6-7) 说明:以下方法均使用centos6.9和centos7.4进行测试. Centos6分区容量调整方法 1.web分区空间不足,新添加一块 ...

  3. delphi TreeView 从数据库添加节点的四种方法

    方法一:delphi中递归算法构建treeView 过程:通过读取数据库中table1的数据,来构建一颗树.table1有两个字段:ID,preID,即当前结点标志和父结点标志.所以整个树的表示为父母 ...

  4. DELPHI下的SOCK编程(转)

    DELPHI下的SOCK编程      本文是写给公司新来的程序员的,算是一点培训的教材.本文不会涉及太多的编程细节,只是简单讲解在DELPHI下进行Winsock编程最好了解的知识. 题外话:我认为 ...

  5. DELPHI下的SOCK编程

     DELPHI下的SOCK编程(转自http://www.cnblogs.com/devcjq/articles/2325600.html) 本文是写给公司新来的程序员的,算是一点培训的教材.本文不会 ...

  6. 深入Delphi下的DLL编程

    深入Delphi下的DLL编程 作者:岑心 引 言 相信有些计算机知识的朋友都应该听说过“DLL”.尤其是那些使用过windows操作系统的人,都应该有过多次重装系统的“悲惨”经历——无论再怎样小心, ...

  7. .NET环境下基于RBAC的访问控制

    .NET环境下基于RBAC的访问控制 Access Control of Application Based on RBAC model in .NET Environment 摘 要:本文从目前信息 ...

  8. 在Jena框架下基于MySQL数据库实现本体的存取操作

    在Jena框架下基于MySQL数据库实现本体的存取操作 转自:http://blog.csdn.net/jtz_mpp/article/details/6224311 最近在做一个基于本体的管理系统. ...

  9. 在XP下基于VHD版XP 2003 win7制作的RAMOS心得

    在XP下基于VHD版win7制作的RAMOS心得1.用DiskGenius创建1.85G的VHD固定磁盘文件,以win7prosen.vhd为例,然后进行分区格式化,格式化时启用NTFS压缩.2.为了 ...

随机推荐

  1. C++程序设计课程学习的网址

    很详细 C++程序设计课程主页  http://blog.csdn.net/sxhelijian/article/details/7910565 孙鑫C++视频教程 rmvb格式 全20CD完整版  ...

  2. NDK开发

    1 CDT 是 Eclipse 插件,它将把 Eclipse 转换为功能强大的 C/C++ IDE. C/C++在Eclipse平台下的开发工具.它提供的功能包括:C/C++编辑器(一些基本的功能:语 ...

  3. 拼接JSONStringer出现的不正确的情况。

    错误现象: 错误分析及其解答: JSONStringer可以直接嵌套JSONArray,JSONArray可以作为JSONStringer的值.我错误的原因是本质是:JSONArray存放的是JSON ...

  4. 【HTML5】表单属性

    * autocomplete autocomplete 属性规定 form 或 input 域应该拥有自动完成功能. 注释:autocomplete 适用于 <form> 标签,以及以下类 ...

  5. Android Bitmap详细介绍

    package com.testbitmapscale; import java.io.File; import java.io.FileInputStream; import java.io.Fil ...

  6. SU Demos-02Filtering-07Sumedian

    不足之处,欢迎批评指正. 先看脚本内容: 脚本中用到的4个参数文件,是一系列x,t数据对,数组(x,t) 运行结果,

  7. B 倒不了的塔

    Time Limit:1000MS  Memory Limit:65535K 题型: 编程题   语言: 无限制 描述 Dota是Defense of the Ancients的简称,是一个dhk和y ...

  8. Oracle TNS配置浅析

    1. 什么是TNS? TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置T ...

  9. extjs 2.0获取选中的radio的值

    var temp=winFormPanel.getForm().findField('selectedType').getGroupValue();

  10. 【BZOJ】1027: [JSOI2007]合金(凸包+floyd)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1027 题意:$n$种材料,$m$种需求.每种材料有三个属性,给出三个属性的含量(和为1),问能否通过 ...