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. using JSTL

    http://docs.oracle.com/javaee/5/tutorial/doc/bnake.html JSTL(JSP Standard Tag Library)

  2. Discrete cosine transform(离散余弦转换)

    A discrete cosine transform (DCT) expresses a finite sequence of data points in terms of a sum of co ...

  3. 【转】MOCK方法介绍

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://baidutech.blog.51cto.com/4114344/743740 1 ...

  4. POJ-3481 Double Queue (splay)

    The new founded Balkan Investment Group Bank (BIG-Bank) opened a new office in Bucharest, equipped w ...

  5. java jeesite.properties配置文件属性提取

    package com.thinkgem.jeesite.common.config; import java.io.UnsupportedEncodingException; import java ...

  6. C#中如何向数组中动态添加元素

    转自:https://blog.csdn.net/qq_35938548/article/details/78325558 背景:现需要向数组中循环插入字符串,但C#中的数组是不支持动态添加元素的,只 ...

  7. 为什么要引入zookeeper系统

    为什么要引入zookeeper系统?这篇文章将说明几个引入zookeeper的原因,首先,先对zookeeper做一个简单的介绍. zookeeper是hadoop下的一个子项目,它是一个针对大型分布 ...

  8. c++类 初始化另一对象

    Cbox类中对象a  可以直接赋值给对象b,无论类中数据成员是私有还是共有.且在创建a时调用了一次构造函数,b调用的是另外的默认构造函数: #include<iostream> using ...

  9. C# 抽象(2)

    接着上章说: 先看代码 abstract class Human { public abstract void Think(); public abstract int Age { get; set; ...

  10. 【转】C#控件——DataGridView单元格文本自动换行

    源地址:https://www.cnblogs.com/wangshenhe/archive/2012/07/25/2608324.html DataGridView是.NET开发中常用的控件,在开发 ...