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. Mr_matcher的细节1

    1.NodeHandle类(或者NodeHandle句柄)的私有名称 1)句柄可以让你通过构造函数指定命名空间 ros::NodeHandle nh("my_namespace") ...

  2. WEBAPI使用过滤器对API接口进行验证

    用户登录控制器:[ActionFilter]自定义过滤器 用户信息:var userData = new JObject();                   userData.Add(" ...

  3. Robot Framework - 基础关键字 BuiltIn 库(二)

    本篇教程,我们继续接着上篇内容进行讲解,我们本节教程讲解的是Robot Framework 机器人框架中的变量中使用判断.字符串的拼接.Evaluate的用法.调用Python文件.条件分支语句.以及 ...

  4. Quartus II 14.0正式版 下载链接和破解器

    Windows版本 必装组件: Quartus II http://download.altera.com/akdlm/software/acdsinst/14.0/200/ib_installers ...

  5. myeclipse 8.0 注册码

    Subscriber:accptechSubscription Code:nLR8ZC-855550-6765855429037911 Subscriber:Hello World Subscript ...

  6. 新编html网页设计从入门到精通 (龙马工作室) pdf扫描版​

    新编html网页设计从入门到精通共分为21章,全面系统地讲解了html的发展历史及4.0版的新特性.基本概念.设计原则.文件结构.文件属性标记.用格式标记进行页面排版.使用图像装饰页面.超链接的使用. ...

  7. lda:变分的推导

    lda,latent diriclet allocation,是一个最基本的bayesian模型.本文要研究lda基于变分的推导方法.意义是重大的. 一.符号的定义 : the number of t ...

  8. Linux 命令之chcon

    chcon命令:修改对象(文件)的安全上下文.比如:用户:角色:类型:安全级别.主要用在selinux中用来更改安全上下文.命令格式: Chcon [OPTIONS…] CONTEXT FILES…. ...

  9. [转]解读Unity中的CG编写Shader系列二

    上一篇文章的例子中我们可以看到顶点着色器的输出参数可以说是直接作为了片段着色器的形参传递过来,那么不由得一个问题浮现出来,顶点着色器的形参是从何处传递过来的? 顶点着色器的形参是gameObject ...

  10. innerText、innerHTML

    innerTest修改的是标签的文本内容,如果修改的字符串具有标签的格式,不会把标签展示到页面中 innerHtml打印标签中所有子标签 以字符串的形式,如果修改的字符串有标签的格式,则直接展示到页面 ...