zoukankan      html  css  js  c++  java
  • PIE SDK地图范围设置

     

    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

    示例代码

      1         /// <summary>
      2         /// 地图放大事件
      3         /// </summary>
      4         /// <param name="sender">事件触发器</param>
      5         /// <param name="e">事件参数</param>
      6         private void toolStripButton_ZoomIn_Click(object sender, EventArgs e)
      7         {
      8             ITool tool = new PIE.Controls.MapZoomInTool();
      9             (tool as ICommand).OnCreate(mapControlMain);
     10             mapControlMain.CurrentTool = tool;
     11         }
     12         /// <summary>
     13         /// 地图缩小事件
     14         /// </summary>
     15         /// <param name="sender">事件触发器</param>
     16         /// <param name="e">事件参数</param>
     17         private void toolStripButton_ZoomOut_Click(object sender, EventArgs e)
     18         {
     19             ITool tool = new PIE.Controls.MapZoomOutTool();
     20             (tool as ICommand).OnCreate(mapControlMain);
     21             mapControlMain.CurrentTool = tool;
     22         }
     23 
     24         /// <summary>
     25         /// 地图平移事件
     26         /// </summary>
     27         /// <param name="sender">事件触发器</param>
     28         /// <param name="e">事件参数</param>
     29         private void toolStripButton_ZoomPan_Click(object sender, EventArgs e)
     30         {
     31             ITool tool = new PIE.Controls.PanTool();
     32             (tool as ICommand).OnCreate(mapControlMain);
     33             mapControlMain.CurrentTool = tool;
     34         }
     35 
     36         /// <summary>
     37         /// 全图显示事件
     38         /// </summary>
     39         /// <param name="sender">事件触发器</param>
     40         /// <param name="e">事件参数</param>
     41         private void toolStripButton_FullExtent_Click(object sender, EventArgs e)
     42         {
     43             ICommand command = new PIE.Controls.FullExtentCommand();
     44             command.OnCreate(mapControlMain);
     45             command.OnClick();
     46         }
     47 
     48        /// <summary>
     49        /// 中心缩小
     50        /// </summary>
     51        /// <param name="sender"></param>
     52        /// <param name="e"></param>
     53         private void toolStripButton1_Click(object sender, EventArgs e)
     54         {
     55             ICommand cmd = new PIE.Controls.ZoomToNativeCommand();
     56 cmd.OnCreate(mapControlMain);
     57             cmd.OnClick();
     58         }
     59 
     60         /// <summary>
     61         /// 中心放大
     62         /// </summary>
     63         /// <param name="sender"></param>
     64         /// <param name="e"></param>
     65         private void toolStripButton_CenterZoomIn_Click(object sender, EventArgs e)
     66         {
     67             ICommand cmd = new PIE.Controls.CenterZoomInCommand();
     68             cmd.OnCreate(mapControlMain);
     69             cmd.OnClick();
     70         }
     71 
     72         /// <summary>
     73         /// 中心缩小
     74         /// </summary>
     75         /// <param name="sender"></param>
     76         /// <param name="e"></param>
     77         private void toolStripButton_CenterZoomOut_Click(object sender, EventArgs e)
     78         {
     79             ICommand cmd = new PIE.Controls.CenterZoomOutCommand();
     80             cmd.OnCreate(mapControlMain);
     81             cmd.OnClick();
     82         }
     83         /// <summary>
     84         /// 地图1:1显示
     85         /// </summary>
     86         /// <param name="sender"></param>
     87         /// <param name="e"></param>
     88         private void toolStripButton1_ZoonToNativeCmd_Click(object sender, EventArgs e)
     89         {
     90             ICommand cmd = new PIE.Controls.ZoomToNativeCommand();
     91             cmd.OnCreate(mapControlMain);
     92             cmd.OnClick();
     93         }
     94         /// <summary>
     95         /// 地图比例尺 
     96         /// </summary>
     97         /// <param name="sender"></param>
     98         /// <param name="e"></param>
     99         private void tbn_MapScale_Click(object sender, EventArgs e)
    100         {
    101         double beforeMapScale = mapControlMain.ActiveView.DisplayTransformation.MapScale;          
    102          mapControlMain.ActiveView.DisplayTransformation.MapScale =50000;
    103          double lastMapScale= mapControlMain.ActiveView.DisplayTransformation.MapScale;
    104          MessageBox.Show(string.Format("修改前地图比例尺为:1:{0};
    修改后比例尺为:1:{1}", beforeMapScale, lastMapScale), "提示");         
    105             mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);                
    106         }  
    View Code

    2.4. 示例截图

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

      

  • 相关阅读:
    java基础英语---第二天
    树莓派的版本
    Linux系统下安装.deb文件
    在Raspberry上安装ROS
    树莓派文件权限的转换
    树莓派中Linux的相关命令
    raspberry连接ssh和vnc
    链表的建立及释放
    一些小细节问题
    关于构建二维动态内存(堆)及释放
  • 原文地址:https://www.cnblogs.com/PIESat/p/10243167.html
Copyright © 2011-2022 走看看