在Delphi下基于MapWinGIS添加和删除图层标注的方法
- unit Form_MainU;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs,MapWinGIS_TLB, DB, Grids, DBGrids, DBTables, OleCtrls, ComCtrls,
- StdCtrls ;
- type
- TForm1 = class(TForm)
- Button1: TButton;
- PageControl1: TPageControl;
- TabSheet1: TTabSheet;
- TabSheet2: TTabSheet;
- Map1: TMap;
- Table1: TTable;
- DBGrid1: TDBGrid;
- DataSource1: TDataSource;
- OpenDialog1: TOpenDialog;
- Button2: TButton;
- StatusBar1: TStatusBar;
- Button3: TButton;
- procedure Button1Click(Sender: TObject);
- procedure Map1MouseMove(ASender: TObject; Button, Shift: Smallint; x,
- y: Integer);
- procedure Button2Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- private
- { Private declarations }
- AShape:Shapefile;
- MapHanle:integer;
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- self.OpenDialog1.FileName :='*.SHP';
- if self.OpenDialog1.Execute() then
- begin
- AShape:=MapWinGIS_TLB.CoShapefile.Create;
- AShape.Open(self.OpenDialog1.FileName,nil);
- MapHanle:=self.Map1.AddLayer(AShape,true);
- self.Table1.TableName :=ExtractFilePath(self.OpenDialog1.FileName)+'grid.dbf';
- self.Table1.Active:=true;
- end;
- end;
- procedure TForm1.Map1MouseMove(ASender: TObject; Button, Shift: Smallint;
- x, y: Integer);
- var
- XX,YY:Double;
- begin
- Self.Map1.PixelToProj(x,y,XX,YY);
- Self.StatusBar1.Panels[].Text :='X='+formatFloat('#.##',XX);
- Self.StatusBar1.Panels[].Text :='Y='+formatFloat('#.##',YY);
- end;
- procedure TForm1.Button2Click(Sender: TObject);
- var
- i:Integer;
- x,y:Double;
- begin
- for i:= to AShape.NumShapes- do
- begin
- x:=AShape.Shape[i].Extents.xMin;
- y:=AShape.Shape[i].Extents.yMin;
- Self.Map1.AddLabel(MapHanle,'v',clBlack,x,y,MapWinGIS_TLB.hjCenter);//添加标注
- Self.Map1.Redraw;//图层刷新
- end;
- end;
- procedure TForm1.Button3Click(Sender: TObject);
- begin
- self.Map1.ClearLabels(MapHanle);//删除标注
- Self.Map1.Redraw;//刷新
- end;
- end.
MapWinGIS添加标注的速度还是很快的,9万多个标注添加到图层上,等待的时间还是可以忍受的,大概6~9秒钟吧。
在Delphi下基于MapWinGIS添加和删除图层标注的方法的更多相关文章
- Delphi下使用MapWinGIS控件打开GIS图层
unit Unit3; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...
- Linux下基于LVM调整分区容量大小的方法
Linux下调整分区容量大小的方法(适用于centos6-7) 说明:以下方法均使用centos6.9和centos7.4进行测试. Centos6分区容量调整方法 1.web分区空间不足,新添加一块 ...
- delphi TreeView 从数据库添加节点的四种方法
方法一:delphi中递归算法构建treeView 过程:通过读取数据库中table1的数据,来构建一颗树.table1有两个字段:ID,preID,即当前结点标志和父结点标志.所以整个树的表示为父母 ...
- DELPHI下的SOCK编程(转)
DELPHI下的SOCK编程 本文是写给公司新来的程序员的,算是一点培训的教材.本文不会涉及太多的编程细节,只是简单讲解在DELPHI下进行Winsock编程最好了解的知识. 题外话:我认为 ...
- DELPHI下的SOCK编程
DELPHI下的SOCK编程(转自http://www.cnblogs.com/devcjq/articles/2325600.html) 本文是写给公司新来的程序员的,算是一点培训的教材.本文不会 ...
- 深入Delphi下的DLL编程
深入Delphi下的DLL编程 作者:岑心 引 言 相信有些计算机知识的朋友都应该听说过“DLL”.尤其是那些使用过windows操作系统的人,都应该有过多次重装系统的“悲惨”经历——无论再怎样小心, ...
- .NET环境下基于RBAC的访问控制
.NET环境下基于RBAC的访问控制 Access Control of Application Based on RBAC model in .NET Environment 摘 要:本文从目前信息 ...
- 在Jena框架下基于MySQL数据库实现本体的存取操作
在Jena框架下基于MySQL数据库实现本体的存取操作 转自:http://blog.csdn.net/jtz_mpp/article/details/6224311 最近在做一个基于本体的管理系统. ...
- 在XP下基于VHD版XP 2003 win7制作的RAMOS心得
在XP下基于VHD版win7制作的RAMOS心得1.用DiskGenius创建1.85G的VHD固定磁盘文件,以win7prosen.vhd为例,然后进行分区格式化,格式化时启用NTFS压缩.2.为了 ...
随机推荐
- C++程序设计课程学习的网址
很详细 C++程序设计课程主页 http://blog.csdn.net/sxhelijian/article/details/7910565 孙鑫C++视频教程 rmvb格式 全20CD完整版 ...
- NDK开发
1 CDT 是 Eclipse 插件,它将把 Eclipse 转换为功能强大的 C/C++ IDE. C/C++在Eclipse平台下的开发工具.它提供的功能包括:C/C++编辑器(一些基本的功能:语 ...
- 拼接JSONStringer出现的不正确的情况。
错误现象: 错误分析及其解答: JSONStringer可以直接嵌套JSONArray,JSONArray可以作为JSONStringer的值.我错误的原因是本质是:JSONArray存放的是JSON ...
- 【HTML5】表单属性
* autocomplete autocomplete 属性规定 form 或 input 域应该拥有自动完成功能. 注释:autocomplete 适用于 <form> 标签,以及以下类 ...
- Android Bitmap详细介绍
package com.testbitmapscale; import java.io.File; import java.io.FileInputStream; import java.io.Fil ...
- SU Demos-02Filtering-07Sumedian
不足之处,欢迎批评指正. 先看脚本内容: 脚本中用到的4个参数文件,是一系列x,t数据对,数组(x,t) 运行结果,
- B 倒不了的塔
Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: 无限制 描述 Dota是Defense of the Ancients的简称,是一个dhk和y ...
- Oracle TNS配置浅析
1. 什么是TNS? TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置T ...
- extjs 2.0获取选中的radio的值
var temp=winFormPanel.getForm().findField('selectedType').getGroupValue();
- 【BZOJ】1027: [JSOI2007]合金(凸包+floyd)
http://www.lydsy.com/JudgeOnline/problem.php?id=1027 题意:$n$种材料,$m$种需求.每种材料有三个属性,给出三个属性的含量(和为1),问能否通过 ...