zoukankan      html  css  js  c++  java
  • arcgis部分功能

    在安装完AE和VS后,启动VS,新建项目,在控件工具栏看到列出的AE控件,主要会使用的是MapControl(数据视图)、PageLayoutControl(布局视图),TOOCControl(需设置与MapControl、PageLayoutControl和SceneControl的伙伴关系(buddy)),ToolbarControl(通过右键属性->Iems添加命令按钮)以及LisenceControl(每个窗体都必须加载,可以控制功能权限)。

    也可以自己添加控件,需要添加引用及命名空间Controls,SystemUI

    (1)实现打开地图,添加一button控件

    //实现加载地图文档

    OpenFileDialog openFileDialog=new OpenFileDialog();

    openFileDialog.Title = "打开地图文档";

     openFileDialog.Filter = "map document(*.mxd)|*.mxd";
     openFileDialog.ShowDialog();
      string filepath = openFileDialog.FileName;
      if (axMapControl1.CheckMxFile(filepath))
       {
           axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerHourglass;
            axMapControl1.LoadMxFile(filepath, 0, Type.Missing);
             axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
         }
         else
         {
               MessageBox.Show(filepath + "不是有效地地图文档");
          }

    (2)实现漫游

    ICommand pCommand = new ControlsMapPanToolClass();
    pCommand.OnCreate(axMapControl1.Object);
     axMapControl1.CurrentTool = pCommand as ITool;

    (3)全局视图

    ICommand pCommand = new ControlsMapFullExtentCommandClass();
     pCommand.OnCreate(axMapControl1.Object);
      pCommand.OnClick();

    (4)放大

    ICommand pCommand = new ControlsMapZoomInToolClass();
    pCommand.OnCreate(axMapControl1.Object);
    axMapControl1.CurrentTool = pCommand as ITool;

    (5)缩小

    ICommand pCommand = new ControlsMapZoomOutToolClass();
     pCommand.OnCreate(axMapControl1.Object);
     axMapControl1.CurrentTool = pCommand as ITool;

    (6)属性查询

    ICommand pCommand = new ControlsMapIdentifyToolClass();
    pCommand.OnCreate(axMapControl1.Object);
    axMapControl1.CurrentTool = pCommand as ITool;

  • 相关阅读:
    #pragma 预处理指令
    C++类继承中的构造函数和析构函数 调用顺序
    static_cast与dynamic_cast转换 最简单的理解
    std::map的insert和下标[]访问
    C++有没有string转化int的函数,怎样转换
    c++中在一个类中定义另一个只有带参数构造函数的类的对象
    c++二进制文件的读写
    C++ 包含头文件 和 宏的使用 和 条件编译
    C++ 前置声明 和 包含头文件 如何选择
    C语言 gets()和scanf()函数的区别
  • 原文地址:https://www.cnblogs.com/janeaiai/p/4970839.html
Copyright © 2011-2022 走看看