1.功能简介

地图范围设置主要就是对图层的地图浏览控制,例如地图的放大、缩小、漫游、全图显示、1:1视图、比例尺等功能,能更好的与地图有一个互动的地图浏览体验。PIE SDK对地图范围设置主要利用ICommand命令或者ITool对对应功能命令的调用,调用简单易于实现。

2.功能实现说明

2.1. 实现思路及原理说明

第一步

创建对应的命令实例化对象

第二步

创建插件对象

第三步

调用OnClick方法触发事件

2.2. 核心接口与方法

接口/类

方法/属性

说明

PIE.SystemUI.ICommand

OnClick

点击事件

OnCreate

创建插件对象

PIE.Controls

MapZoomInTool

拉框放大构造函数

MapZoomOutTool

拉框缩小构造函数

PanTool

平移漫游构造函数

FullExtentCommand

全图显示构造函数

ZoomToNativeCommand

1:1显示构造函数

CenterZoomInCommand

中心放大构造函数

CenterZoomOutCommand

中心缩小构造函数

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/02.地图操作/01.地图范围设置

数据路径

百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif

视频路径

百度云盘地址下/PIE视频教程/02.地图操作/01.地图范围设置.avi

示例代码

         /// <summary>
/// 地图放大事件
/// </summary>
/// <param name="sender">事件触发器</param>
/// <param name="e">事件参数</param>
private void toolStripButton_ZoomIn_Click(object sender, EventArgs e)
{
ITool tool = new PIE.Controls.MapZoomInTool();
(tool as ICommand).OnCreate(mapControlMain);
mapControlMain.CurrentTool = tool;
}
/// <summary>
/// 地图缩小事件
/// </summary>
/// <param name="sender">事件触发器</param>
/// <param name="e">事件参数</param>
private void toolStripButton_ZoomOut_Click(object sender, EventArgs e)
{
ITool tool = new PIE.Controls.MapZoomOutTool();
(tool as ICommand).OnCreate(mapControlMain);
mapControlMain.CurrentTool = tool;
} /// <summary>
/// 地图平移事件
/// </summary>
/// <param name="sender">事件触发器</param>
/// <param name="e">事件参数</param>
private void toolStripButton_ZoomPan_Click(object sender, EventArgs e)
{
ITool tool = new PIE.Controls.PanTool();
(tool as ICommand).OnCreate(mapControlMain);
mapControlMain.CurrentTool = tool;
} /// <summary>
/// 全图显示事件
/// </summary>
/// <param name="sender">事件触发器</param>
/// <param name="e">事件参数</param>
private void toolStripButton_FullExtent_Click(object sender, EventArgs e)
{
ICommand command = new PIE.Controls.FullExtentCommand();
command.OnCreate(mapControlMain);
command.OnClick();
} /// <summary>
/// 中心缩小
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton1_Click(object sender, EventArgs e)
{
ICommand cmd = new PIE.Controls.ZoomToNativeCommand();
cmd.OnCreate(mapControlMain);
cmd.OnClick();
} /// <summary>
/// 中心放大
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_CenterZoomIn_Click(object sender, EventArgs e)
{
ICommand cmd = new PIE.Controls.CenterZoomInCommand();
cmd.OnCreate(mapControlMain);
cmd.OnClick();
} /// <summary>
/// 中心缩小
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_CenterZoomOut_Click(object sender, EventArgs e)
{
ICommand cmd = new PIE.Controls.CenterZoomOutCommand();
cmd.OnCreate(mapControlMain);
cmd.OnClick();
}
/// <summary>
/// 地图1:1显示
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton1_ZoonToNativeCmd_Click(object sender, EventArgs e)
{
ICommand cmd = new PIE.Controls.ZoomToNativeCommand();
cmd.OnCreate(mapControlMain);
cmd.OnClick();
}
/// <summary>
/// 地图比例尺
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tbn_MapScale_Click(object sender, EventArgs e)
{
double beforeMapScale = mapControlMain.ActiveView.DisplayTransformation.MapScale;
mapControlMain.ActiveView.DisplayTransformation.MapScale =;
double lastMapScale= mapControlMain.ActiveView.DisplayTransformation.MapScale;
MessageBox.Show(string.Format("修改前地图比例尺为:1:{0};\r\n修改后比例尺为:1:{1}", beforeMapScale, lastMapScale), "提示");
mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

2.4. 示例截图

以地图放大和地图比例尺为例截图显示:

PIE SDK地图范围设置的更多相关文章

  1. PIE SDK地图范围设置和图层事件监听

    1. 功能简介 地图范围设置的监听就是通过IMapControlEvents接口对地图的视图范围更新或者地图的分辨率发生变化进行监听,然后做出相应的操作. 图层事件的监听就是通过IActiveView ...

  2. PIE SDK地图图层渲染方案管理

    1. 功能简介 在数据种类较多.渲染规则复杂的情况下,逐个设置其渲染方式是一件繁琐的工作.PIE SDK提供了一种省力省心的办法, PIE SDK提供栅格和矢量数据渲染方案的打开与保存.能够将配色方案 ...

  3. PIE SDK地图鹰眼图

    鹰眼图,是GIS的一个基本功能,在鹰眼图上可以像从空中俯视一样查看地图框中所显示的地图在整个图中的位置,是对全局地图的一种概述表达,能够起到很好的空间提示和导航的作用.网上有很多Arcengine 二 ...

  4. PIE SDK地图平移校正

    地图平移校正,当加载两幅空间参考一样的影像,其中一幅影像有点偏移,这时就以另一幅影像为基准将其进行平移校正,然后保存,再次加载就不会出现偏移了. 下面来介绍下实现的主要代码: 首先通过选中目录树中的要 ...

  5. PIE SDK地图鼠标事件监听

    1.功能简介 地图鼠标事件包含鼠标的按下MouseDown(),弹起MouseUp(),移动MouseMove()等事件,通过这些事件可以对地图进行动态的操作,接下来以地图状态栏的信息为例具体介绍如何 ...

  6. PIE SDK地图显示范围截图

    1.1. 功能简介 地图显示范围截图是将当前地图显示的范围进行输出.输出的 格式是png.bmp,主要思路就是通过IActiveView接口下的Output()方法进行输出 1.2. 功能实现说明 2 ...

  7. PIE SDK地图书签

    地图书签,可以理解为暂时记录当前地图的范围和放大级别,在后续的操作中如果想回到地图之前的状态,就可以点击保存的书签就可以回到此状态,如图所示: 地图刚加载的时候是一幅世界地图 我们将地图的中心拖到南美 ...

  8. PIE SDK地图放大镜

    放大镜,在地图的浏览过程中在主地图和次地图中起到很好的辅助作用, 要实现放大镜功能主要就是通过两个mapControl控件,主地图控件是mapControlMain,放大镜控件是UserControl ...

  9. PIE SDK地图图层控制

    1. 功能简介 地图图层控制就是图层的相关操作,如地图图层数据的添加.删除.移动和拖拽等功能. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 图层添加是调用AddLayer方法将图层添加到 ...

随机推荐

  1. C# 世界坐标 页面坐标 PageUnit PageScale

    PageScale:  获取或设置此 Graphics 的世界单位和页单位之间的比例.PageUnit:  获取或设置用于此 Graphics 中的页坐标的度量单位. 话不多说,上代码: privat ...

  2. (回文串)leetcode各种回文串问题

    题目一:最长连续回文子串. 问题分析:回文串顾名思义表示前后读起来都是一样,这里面又是需要连续的.分析这个问题的结构,可以想到多种方法.暴力解决的方式,2层循环遍历得出各个子串,然后再去判断该子串是否 ...

  3. HttpUploader6.2-process版本

    1.优化JS逻辑,在上传前先同步相同文件进度,提高多用户上传效率. 2.优化文件块保存逻辑,减少相同文件块的写入操作,减少服务器IO操作,提高上传效率.   js变化: up6.js新增UrlQuer ...

  4. Unity破解不成功解决方案

    你是不是遇到过Unity新版本出来的时候就急着使用,但是安装好了,却破解不成功的问题(你之前的版本破解过).这是由于你的注册表没有彻底的删除,接下来我们图解如何清理. 1.卸载以前的版本,卸载完了删除 ...

  5. 图的遍历——BFS

    原创 裸一篇图的BFS遍历,直接来图: 简单介绍一下BFS遍历的过程: 以上图为例子,从0开始遍历,访问0,按大小顺序访问与0相邻的所有顶点,即先访问1,再访问2: 至此顶点0已经没有作用了,因为其本 ...

  6. PrintDocument or PrintPreviewDialog 打印

    /// <summary> /// /// </summary> /// <param name="sender"></param> ...

  7. Sharepoint2013搜索学习笔记之搜索构架简单概述(一)

    Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上, ...

  8. 操作系统下spinlock锁解析、模拟及损耗分析

    关于spinlock 我们在知道什么是spinlock之前,还需要知道为什么需要这个spinlock?spinlock本质就是锁,提到锁,我们就回到了多线程编程的混沌初期,为了实现多线程编程,操作系统 ...

  9. C语言编程学习开发的俄罗斯方块小游戏

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  10. access denied for user 'root'@'localhost'

    编辑mysql配置文件my.ini(在mysql的安装目录下,我的在D:\Program Files\MySQL\MySQL Server 5.0\my.ini),在[mysqld]这个条目下加入 s ...