首页 > 其他分享 >GIS组件应用笔记1

GIS组件应用笔记1

时间:2022-12-07 18:56:12浏览次数:67  
标签:控件 GIS 绑定 笔记 ArcGIS 添加 ArcMap 版本 组件

关于新建项目

在课程操作之前,需要新建一个 windows 窗体应用程序(.Net Framework) 括号里的内容一定要注意,不要选没有(.Net Framework)的窗体应用。(非VS2019版本应该没有这个问题)
如图: 新建窗体时要选择(.Net Framework)的窗体应用

开始前的准备操作

由于版本不匹配,所以使用过程中会有一些小问题。

  1. 报错 System.InvalidOperationException:“ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS components.”
    缺少engine需要的运行时,需要在Program.cs文件中添加下面这句:

C#代码.

ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);

具体位置:

解决方案资源管理器
代码添加位置

  1. 在新建项目的过程中,可能没有ArcGIS模板(因为版本不匹配,版本匹配的话没这个问题),此时新建一个Windows 窗体应用(.Net Framework)也可以继续操作,如上文所说即可。
  2. 版本匹配:新建项目过程如下

点击确定后,选择对应引用:

选择后直接点击Add即可

选择好后点击next:

next

授权时,勾选ArcGIS Engine,然后finish:

勾选ArcGIS Engine

然后就可以正常创建一个ArcGIS Engine项目了。

四个控件的一些介绍

MapControl

一大堆英文文字是因为没有添加小锁

这个和ArcMap里面的加载地图的窗口是一样的。

ToolbarControl

ArcGIS中的工具条,单独使用没有意义需要在属性中绑定后才可以正常使用

绑定步骤:
在该控件处右键,选择属性。

如图

在Buddy(这个词有伙伴的意思)中选择,即可绑定其他组件。

buddy

也可以在右下角进行选择小扳手出现上面的属性。

点击扳手就会出现上面那个了

为其添加工具

现在的工具栏还没有什么功能,需要在 “属性-items(选项卡)-Add...” 中选择一些内容加进去,双击对应内容即可添加。在原来那个界面出现小图标之后,就说明你添加成功了。

双击即可添加小工具

选择好后退出即可。

ArcTOCControl

内容列表,使用时也需要绑定其他项目,可以类比工具条的绑定过程。

我的界面大概是这样的,有这些note是因为没有添加小锁。

License Control

这个就是传说中的小锁,也就是许可控制,添加了之后别的功能才可以正常使用。

小锁

简单美化一下格局

分割容器控件

分割容器

更改orientation属性,即可调整其为垂直分割还是水平分割。

将上面的控件分别拖入不同的panel中,调整dock属性,可以让布局稍微好看一点点。

小结

课上讲的内容比这个多,但是还要花点时间复习,所以就大概写了这么多,包括创建项目,简单组件。

组件名 简要功能介绍
MapControl 类似于ArcMap的地图窗口,用以显示地图内容
ToolBarControl 类似于ArcMap中的工具条,可以自己添加具体工具内容,使用时需要绑定其他控件才可以实现具体的功能。
TOCControl 类似于ArcMap中的内容列表,也需要绑定MapControl才可以正常显示。
LicenseControl 用于许可,不添加的话无法正常使用其他功能,同时控件会有一些note的提示内容。

还有一个是分割容器,让其他控件有停靠位置,布局更美观。

软件版本[1]

帮助文档.


  1. 我使用的版本是ArcGIS Engine10.2 ,VS2017 ↩︎

标签:控件,GIS,绑定,笔记,ArcGIS,添加,ArcMap,版本,组件
From: https://www.cnblogs.com/wangn908/p/16964254.html

相关文章

  • vim 使用、设置笔记
    设置.vimrc(windows下通常为_vimrc)设置vim中tab的缩进setts=4(注:ts是tabstop的缩写,设TAB宽4个空格)setexpandtab(注:用4个空格代替一个TAB,不设置的话就是一个宽为4......
  • ES6笔记 - proxy简介
    Proxy目录Proxy1.Proxy简介2.注意事项3.Proxy支持的所有拦截操作4.使用示例1.Proxy简介Proxy可以理解为在目标对象前架设一个"拦截层",外界对该对象的访问都必须......
  • 【JAVA笔记】JAVA-入门基础-面向对象04
    一、OOP详解面向对象编程(Object-OrientedProgramming,OOP)面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。抽象三大特性:封装、继承、多态、1、cla......
  • SPARK组件
    1. SparkSQL 支持多种数据源,包括Hive,Avro,Parquet,ORC,JSON和JDBC2. SparkStreamingSparkStreaming主要用于快速构建可扩展,高吞吐量,高容错的流处理程序。支持从HDFS......
  • vue父子组件的传值总结
    情况一:父组件给子组件传值方法,使用props父页面:parent.vue<template><divclass="sidebar_contianer"><sidebar-item:routerData="transmitData"></sideb......
  • vue2 中实现全局事件组件通信
    Date:2022-11-1117:38:37Author:gavin目的:实现兄弟组件数据传输First:insertbelowcodeSecond:发布事件,aSecond:订阅事件,a识别一个好的前端开源项目的方法......
  • Markdown笔记
    Markdown学习标题字体helloword!helloword!helloword!helloword! 引用我要学Java 分割线 图片 超链接点击跳转到王者官网 列表AC......
  • SublimeText3使用笔记
    说明:此文章为使用SublimeText3的笔记,所以会不定期更新安装PackageControl参考:​​https://packagecontrol.io/installation#st3​​打开编辑器的控制台,View>ShowConsole......
  • CWnd直接派生的窗口下使用CToolBar笔记
    问题按msdn上的教程在CWnd派生的窗口的OnCreate下创建CToolBar,工具栏不显示。Createatoolbarresource.ConstructtheCToolBarobject.CalltheCreate(orCreateEx)fu......
  • C++标准库笔记:13.4.3 Stream状态与布尔条件测试
    流条件测试inta=0;while((std::cin>>a)){cout<<a<<endl;}以上代码得以使用std::cin来做条件测试,是因为Stream在类ios_base内定义了两个可用于布尔表达式的函......