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. Terminologies in MVC: Part 2 (Razor Engine Syntax vs Web Form)

    By Abhishek Jaiswal :) on Mar 21, 2015 In this article we learn about Razor Engine Syntax vs Web For ...

  2. what is diff. b/w app state & session state

    Application state is a data repository available to all classes in an ASP.NET application. Applicati ...

  3. AutoLayout自动布局,NSLayoutConstraint 视图约束使用

    一.方法 NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:<#(id)#> attribut ...

  4. [转]history.back(-1)和history.go(-1)的区别

    目录: 1.这个方法的用途 2.两个方法的区别 3.总结 概述: H5页面做多了,自然就会做到页面上的返回功能,返回功能大致有两种:history.back(-1)和history.go(-1),今天 ...

  5. Oracle Cannot Update TOP N Issue, 请专家解答

    大家好 上周写了匿名方法一文,很多读者,很高兴,相信我们已经从大伙的回复中,对.NET又有了更深刻的认识. 好,现在说主题,各类数据库都有相应更新本表top n的方案.现在我一一举例 首先看表结构如下 ...

  6. 【转】.net 在线播放各类视频

    原文地址:http://blog.csdn.net/hefeng_aspnet/article/details/9704857 一.后台拼字符串动态加载写法 前台调用代码 <!DOCTYPE h ...

  7. Android手机中怎么样在没root的情况下 修改 hosts 文件

    工具  链接:https://pan.baidu.com/s/1AENluDCQ-2qYDPcE5K6l8g 密码:t7eu  http://bbs.360.cn/forum.php?mod=view ...

  8. leecode刷题(4)-- 存在重复数组

    leecode刷题(4)-- 存在重复数组 存在重复数组 题目描述: 给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 ...

  9. javascript,图片框

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. [SCOI2009]windy数 BZOJ1026 数位dp

    题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B,总共有多少个windy数? 输入输出格式 输 ...