Delphi 开发Arcgis 之 放大缩小漫游 操作
来源:互联网 发布:mac与虚拟机共享文件 编辑:程序博客网 时间:2024/04/30 10:06
放大缩小漫游等操作当然可以自己使用toolbar中的控件关联,也可以自己写代码控制,用toolbar控制请查看我的前面的博客
1. 创建工程,放置arcgismapcontrol到form中,设置地图信息(参看前面的博客)
2.直接贴代码吧,
unit Unit3;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, esriControls_TLB,esriGeometry_TLB, OleCtrls, ExtCtrls, Buttons, ToolWin, ComCtrls,ComObj,ActiveX;type TMapState = (msNone,msZoomIn,msZoomOut,msMove); TForm3 = class(TForm) Panel1: TPanel; Panel2: TPanel; ArcGisMapControl1: TArcGisMapControl; ArcGisLicenseControl1: TArcGisLicenseControl; CoolBar1: TCoolBar; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; procedure SpeedButton1Click(Sender: TObject); procedure ArcGisMapControl1MouseDown(ASender: TObject; button, shift, X, Y: Integer; mapX, mapY: Double); procedure ArcGisMapControl1MouseUp(ASender: TObject; button, shift, X, Y: Integer; mapX, mapY: Double); procedure ArcGisMapControl1MouseMove(ASender: TObject; button, shift, X, Y: Integer; mapX, mapY: Double); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); private { Private declarations } public state :TMapState; spt,dpt:TPoint; { Public declarations } end;var Form3: TForm3;implementation{$R *.dfm}procedure TForm3.ArcGisMapControl1MouseDown(ASender: TObject; button, shift, X, Y: Integer; mapX, mapY: Double);var zoomrt:TRect; ipcurExt,ipTrkExt,ipNewExt:IEnvelope; xC1,xC2,yC1,yC2,xT1,xT2,yT1,yT2,xN1,xN2,yN1,yN2:double;begin case state of msNone: ; msZoomIn: begin //缩小 ArcGisMapControl1.ActiveView.Get_Extent(ipcurExt); //取得当前显示区域 ipTrkExt:= ArcGisMapControl1.TrackRectangle;//框定的矩形区域 ipcurExt.QueryCoords(xc1,yc1,xc2,yc2); // ipTrkExt.QueryCoords(xt1,yt1,xt2,yt2); xN1 := xc1 - (xt1-xc1)*((xc2-xc1)/(xt2-xt1)); yN1 := yc1 - (yt1-yc1)*((yc2-yc1)/(yt2-yt1)); xN2 := xc2 - (xt2-xc2)*((xc2-xc1)/(xt2-xt1)); yN2 := yc2 - (yt2-yc2)*((yc2-yc1)/(yt2-yt1)); CoCreateInstance(Class_Envelope,nil,CLSCTX_INPROC_SERVER,iid_IEnvelope,ipNewExt); ipNewExt.PutCoords(xn1,yn1,xn2,yn2); ArcGisMapControl1.ActiveView.Set_Extent(ipNewExt); end; msZoomOut: begin //放大 ArcGisMapControl1.ActiveView.Set_Extent(ArcGisMapControl1.TrackRectangle); end ; msMove:begin ArcGisMapControl1.Pan end ;//漫游 end; ArcGisMapControl1.ActiveView.Refresh;end;procedure TForm3.ArcGisMapControl1MouseMove(ASender: TObject; button, shift, X, Y: Integer; mapX, mapY: Double);begin case state of msNone: ArcGisMapControl1.MousePointer := 0; msZoomIn: ArcGisMapControl1.MousePointer := 52; msZoomOut: ArcGisMapControl1.MousePointer := 51; msMove: ArcGisMapControl1.MousePointer := 53 ; end;end;procedure TForm3.ArcGisMapControl1MouseUp(ASender: TObject; button, shift, X, Y: Integer; mapX, mapY: Double);begin case state of msNone: ; msZoomIn:;// ArcGisMapControl1.Extent := ArcGisMapControl1.TrackRectangle; msZoomOut: ArcGisMapControl1.MousePointer := 51; msMove: ; end;end;procedure TForm3.SpeedButton1Click(Sender: TObject);begin state := msZoomOut;//放大end;procedure TForm3.SpeedButton2Click(Sender: TObject);begin state := msZoomin;//缩小end;procedure TForm3.SpeedButton3Click(Sender: TObject);begin state := msmove;//漫游end;procedure TForm3.SpeedButton4Click(Sender: TObject);begin state := msnone;end;end.
0 0
- Delphi 开发Arcgis 之 放大缩小漫游 操作
- C# ArcGIS 三维地图 arcgloblecontrol 基础操作 加载地图 漫游 放大 缩小
- ArcGIS Engine 开发(一)对地图放大、缩小、漫游、全局等功能
- AE开发中、放大、缩小、漫游、全图的实现
- AE开发中、放大、缩小、漫游、全图的实现
- 实现地图放大(拉框和单击)、缩小(拉框和单击)、漫游操作的简易代码
- video视频操作之暂停开始放大缩小
- Android基础之操作图片(放大缩小旋转镜像)
- VC+MO实现地图的放大,缩小和漫游
- ArcEngine开发之自定义工具栏--地图放大、缩小(C#)
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
- Android开发之GridView的Item放大缩小
- Android开发之GridView的Item放大缩小
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
- scrollview元素放大缩小操作
- Android图片操作-放大缩小
- Andriod开发 放大缩小功能
- synchronized详解
- 百度2014研发类校园招聘笔试题解答
- CCAnimation can NOT be run in CCLayer
- GitHub玩起来(持续更新一下做记录)
- 人造草坪在维护是应该注意哪些问题
- Delphi 开发Arcgis 之 放大缩小漫游 操作
- Unity+NGUI打造网络图片异步加载与本地缓存工具类(二)
- MFC操作父窗口的子控件
- Java学习笔记(二)Java的特点
- POJ 1042 Gone Fishing(贪心+枚举)
- ubuntu12.04下装完搜狗输入法chrome书签乱码解决方案
- HDU 1207 汉诺塔II
- 看清代码,想好在写
- 又是夸张的谎言——关于GB18030、GBK、UTF8