Visual Studio 2022配置ArcGIS Maps(Runtime) .NET SDK 200.5环境详细步骤
ArcGIS SDK的环境配置有多种选择、多种方法,本文只是记录笔者所采用的一种方法,不同版本的开发平台、软件工具之间差异较大,请留意本文所使用的版本。
1 概述
本文记录了笔者使用Visual Studio 2022配置ArcGIS Maps .NET SDK 200.5的过程,有的同学可能习惯了JetBrains的产品(例如:PyCharm、Intellij Idea、CLion等)编辑方式,可以参考笔者的另一篇文章《Rider 2024.2.3配置ArcGIS Maps(Runtime) .NET SDK 200.5环境详细步骤》进行配置。由于电脑原有环境不同,您的配置过程可能与笔者有所差异,如有疑问,欢迎提供必要信息在文末留言讨论。
读者朋友可以通过目录快速跳转和全览本文。
.NET开发一般而言都是使用Visual Studio,但是笔者个人建议可以考虑尝试Rider,个人认为其有着更现代化的外观设计,流畅性上也更胜一筹,且大大节约了从PyCharm、IDEA、CLion等套件中迁移过来的学习成本,读者也可以两个都安装,并进行实际使用体验其差别。
2 安装Visual Studio 2022
2.1 软件安装
访问微软Visual Studio官网下载页面(https://visualstudio.microsoft.com/zh-hans/downloads/),点击免费下载Visual Studio社区版
下载得到VisualStudioSetup.exe
文件,双击打开运行,初始化界面点击继续
等待Visual Studio安装器的下载和安装,2分钟内应该可以完成
进入Visual Studio安装器,点击Available选项卡,点击社区版Visual Studio Community 2022旁的安装(Install)按钮,进入安装流程
①勾选.NET desktop development组件,②您可以修改安装位置,默认安装位置最稳妥,如需修改请尽量避免过长的路径、中文字符、其它特殊字符等,以避免不必要的麻烦,③确认安装位置的存储空间满足存储需求,④点击安装
等待安装程序自动完成下载和安装过程,可以勾选上Start after installation,安装完成之后自动打开软件。上方的进度条是下载进度,下方是安装进度,程序默认是边下载边安装,等待时间大约15分钟,视网络情况可能有所不同。
安装完成后自动启动,在下面的界面稍等一会儿进入登录界面
登录界面中点击Skip this for now可以暂时跳过注册和登录环节
根据个人喜好选择色彩风格,这里我选择Dark主题,点击Start Visual Studio启动软件,稍等几十秒软件初始化完成
2.2 新建项目
如果您是第一次安装,下图中打码部分的历史项目应该是空的,我们需要新建一个项目,点击Create a new project
选择③WPF Application,可以通过①筛选语言为C#,或者②搜索快速找到,注意核对所选项目的语言、平台等信息正确,随后点击④Next
可以根据实际需要修改项目名称、项目位置、解决方案名称,在Visual Studio中,解决方案这一概念的层级是高于项目的,即一个解决方案中可以包含多个项目,这个界面实际上完成了创建解决方案和创建项目两个操作。设置完成后点击Next。
最后点击Create,创建项目。
进入项目的初始界面如下,软件正在初始化项目
稍作等待,初始化完成,出现MainWindow的预览界面,项目创建完成
3 安装ArcGIS Runtime SDK 200.5
此部分也可以参考ESRI官方文档(https://developers.arcgis.com/net/install-and-set-up/#reference-arcgis-maps-sdk-for-net-in-your-projects)进行安装。本步骤需要在完成2.2 新建项目步骤后操作。
3.1 SDK引入
补充说明:SDK全称是software development kit(软件开发套件),实际上就是把一些功能接口都封装好了,开发者只管调用就行,不需要管具体实现过程。安装ArcGIS Runtime SDK后,我们便可以直接调用ArcGIS Runtime的一些功能。
点击菜单栏Project,随后点击Manage NuGet Packages管理NuGet包,进入NuGet包管理界面
点击切换到①Browse(浏览)选项卡,确保②处选择的源为nuget.org,在③搜索框中输入Esri并按回车键搜索,结果出来后安装以下两个包:
Esri.ArcGISRUntime
Esri.ArcGISRuntime.WPF
安装方法为:将鼠标悬停在包的上面,右上角会出现下载按钮,点击即可下载
安装过程中可以在顶部查看当前进度
在弹出的窗口中点击Apply应用
点击I Accept接受条款
两个Package都是同样方法安装
3.2 项目搭建
切换到①MainWindow.xaml标签页,点击②左侧边栏的Toolbox,展开③ArcGIS Maps SDK折叠项,就可以看到三个ArcGIS提供的组件,我们可以拖拽一个MapView到MainWindow中
此外,我们也可以在右侧的Solution Explorer(解决方案浏览器)里面打开编辑App.xaml、App.xaml.cs等等代码文件来搭建起我们的项目。
由于尚未深入了解ArcGIS Runtime SDK for .NET的知识,我们暂时没办法写出一个能运行起来的程序,所以可以考虑使用模板搭建,在以后的学习实践过程中,也可以考虑使用模板以减少工作量。
3.3 项目模板
点击顶部菜单栏的Extensions,点击Manage Extensions菜单项进入扩展插件管理器页面
切换到Browse选项卡,在①搜索框输入ArcGIS并按回车键搜索,在搜索结果中找到并②点击ArcGIS Maps SDK for .NET Project Templates,并在右侧的详情页面③点击Install安装
页面顶部弹出如图所示的提示后,直接点右上角×关闭Visual Studio,安装程序便会自动启动
在如下界面稍等片刻
弹出安装确认窗口,点击Modify
等待安装,直至弹出下右图所示安装完成的提示后点击Close关闭安装程序
再次启动Visual Studio,若桌面没有Visual Studio快捷方式,需要在开始菜单中找到。启动后我们再次新建一个项目Create a new Project
在①筛选器中选择ArcGIS,选择②ArcGIS Maps SDK .NET WPF App(Esri),注意检查下方标签的正确性,语言为C#。点击Next。
同样地,设置解决方案和项目的名称、位置等,点击Next
这里可以选择创建2D或3D的项目,我们先选择2D的Map,点击Create创建
由于套用了项目模板,代码都由Esri配置好了,进入项目后我们可以直接点击运行把程序跑起来了。
4 在线服务接入
通过上述步骤我们已经能够接入基础的ArcGIS Runtime服务,但是无法调用ArcGIS的在线地图,需要申请API KEY并进行一定配置。
4.1 API KEY申请
进入ArcGIS Developer官网,点击右上角Sign In登录
在弹出窗口中点击Sign in to ArcGIS Location Platform
若是第一次登录需要点击创建ArcGIS Location Platform账户进行注册
注册时的First Name和Last Name可以不为真实姓名,Email需要使用外国邮箱(例如:Gmail、Outlook、Foxmail等),随后按照提示填写各项信息,并在邮箱中点击链接激活账户,说明一处:
Your Portal URL可以理解为你个人主页的地址,可以起个简单的网址以便自己后续访问,例如:
https://xiaoming.maps.arcgis.com
因笔者已注册过账号,部分过程无法复现,且步骤较为简单,此处不再赘述,直接进入登录页面,输入账号密码,点击登录
进入控制台Dashboard后点击Create a developer credential创建开发者凭据
点击新建项目
点击开发者凭据
选择API密钥凭据,点击下一步
设置到期日期,ArcGIS最长可设置一年的密钥有效期,Referrer URL留空,点击下一步
打开定位服务总开关,点击下一步
点击跳过
可以设置该API KEY的标题、标签、文件夹、摘要等,以便以后管理多个KEY,设置完成后点击下一步
确认各项信息无误后点击下一步
选择生成API密钥并进入项目详情页面......,点击下一步
API KEY创建成功,点击复制按钮将API KEY复制下来并保存好,一旦关闭此窗口API KEY就再也无法找到
4.2 应用API KEY调用在线地图
回到Visual Studio,打开App.xaml.cs代码,找到如下图所示的一行,删除开头的//注释符号,在双引号中填入刚刚复制的API KEY
随后打开MapViewModel.cs代码文件,找到如图所示的这行,删除开头的//注释符号
点击运行
在弹出的窗口中就可以看到在线地图,可以使用鼠标拖拽或缩放地图,至此,开发环境已配置完成。
本文只实现了一个基本的在线地图显示能力,如需其它更多ArcGIS Runtime功能,仅凭本文的组件、方法可能还不够,详情请参阅ArcGIS官方文档(https://developers.arcgis.com/documentation/),如有错漏或更好的方法,欢迎读者批评指正。