ArcGIS Runtime for .Net Quartz开发探秘(十二):关于许可授权(免费版本的功能也很强大!)

近来,许多同学在问ArcGIS Runtime SDK开发的GIS移动端App怎么去水印~。其实Runtime的授权方式还是比较复杂的,一言 这难尽,里我将必要的内容整理出来,相信同学们看了文章后,就不会再有困惑。

许可授权方式

ArcGIS Runtime SDK授权,有两种方式。1、通过Named User授权 2、通过许可码授权

Named User

Named User是Portal for ArcGIS的用户授权,只要购买了ArcGIS Enterprise即有Named User提供。Runtime SDK开发的程序可以通过连接Portal获得授权。但是Named User并不能授权所有级别的许可,详情请继续往下看。

许可码

购买ArcGIS Runtime SDK后Esri将提供一个许可字符串,这个字符串即许可码。 

许可级别

ArcGIS Runtime SDK 100系列总共分四个级别的版本,分别是Lite、Basic、Standard、Advanced。还有一个特殊的开发版。

开发版

ArcGIS Runtime SDK的开发者版本拥有ArcGIS Runtime SDK最全的功能,只不过开发的程序会有水印。

像这样:

ArcGIS Runtime for .Net Quartz开发探秘(十二):关于许可授权(免费版本的功能也很强大!)_第1张图片

Lite版

熟悉Runtime的老朋友已经发现了,多了一个Lite版本,并且告诉大家一个好消息:

ArcGIS Runtime SDKs Lite版是免费的~!

这无疑是个重磅的消息,为什么呢?免费版能做的事太多了!

1、能够查看来自ArcGIS Enterprise的地图、场景、图层、地图包。

2、能够编辑Portal for ArcGIS中共享的要素服务。

3、能够从要素服务获取.geodatabase文件。

4、能够从要素服务更新.geodatabase文件。

5、能够支持地名搜索。

6、能够支持简化和优化导航路径。

7、能够支持通过网络服务计算服务区范围、寻找最近设施。

怎么解读这些信息:

来自ArcGIS Enterprise的地图服务,包括切片服务、动态服务、三维场景等都是可以加载查看的!来自ArcGIS Enterprise的共享为“公共”的要素服务也是可以编辑的!

换句话说:基于免费的ArcGIS Runtime SDK做二维地图、三维场景展示都是木有任何问题的!

Lite版本许可码可以这么获取

1、申请ArcGIS Online账号

2、登陆https://developers.arcgis.com/arcgis-runtime/licensing/ 

3、点击“Show my  ArcGIS Runtime Lite license key”后即可显示程序许可码,在程序中进行编译即可完成许可授权(授权后即无水印)

ArcGIS Runtime for .Net Quartz开发探秘(十二):关于许可授权(免费版本的功能也很强大!)_第2张图片

Lite版本:level 1级别的Named User可以授权、level 2级别的Named User可以授权。

Basic版本

1、支持所有Lite版本功能

2、支持.geodatabase文件编辑

3、支持要素服务编辑

4、支持.geodatabse文件编辑后的内容回传至原要素服务

5、支持添加、更新、删除Portal item。

Basic版本:level 2级别的Named User可以授权。

Standard版本

1、支持所有Basic版本功能

2、支持shaplefile

3、支持ENC图层 

4、支持本地栅格图层

5、支持本地栅格高程源

6、支持可视化分析,包括视线分析和视域分析

7、创建文件型数据库——需Local Server

8、读取、查询、展示企业级地理数据库(如基于Oracle、SQL Server等的SDE)及文件型地理数据库

9、 支持大量额外的空间分析功能,支持的这些空间分析工具是桌面标准版支持的空间分析工具的子集。

注意啦:这里的视线分析和视域分析都是不需要空间分析扩展的!

Standard版本:不支持Named User授权。只能通过许可码。

Advanced版本

1、Advanced版本支持比Standard版本更多的空间分析功能, 支持的这些空间分析工具是桌面 高级版 支持的空间分析工具的子集。

Advanced版本相比于Standard版本,多出的功能都需要在Local Server下才能完成。

而尴尬的是Local Server仅仅支持1、32位或64位的Windows操作系统 2、64位的Linux操作系统。(iOS、Android是不能使用Local Server的)支持Local Server的SDK有ArcGIS Runtime SDks for java、ArcGIS Runtime SDKs for .NET(Desktop)、ArcGIS Runtime SDKs for Qt。

也就是说如果各位要做iOS和安卓开发,Advanced版本和Standard版本其实是没有区别的!

Advanced版本:不支持Named User授权。只能通过许可码。

空间分析扩展

Standard版本和Advanced版本分别含有对应ArcGIS Desktop标准版和高级版的分析工具的子集,ArcGIS Desktop有Spaital Analyst扩展、3D扩展、NetWork Analyst扩展、Geostatistic Analyst扩展等。而ArcGIS Runtime总共只有一个空间分析扩展——ArcGIS Runtime空间分析扩展。

ArcGIS Runtime空间分析扩展的工具,是Desktop中Spaital Analyst、3D、NetWork Analyst这三个扩展工具子集的并集。

是的,三个工具子集的并集,没错。大家应该能理解是什么意思。

ArcGIS Runtime是授权App还是授权设备?

这里,我贴出一段来自Developers网站的注释,大家自己翻译。

ArcGIS Runtime for .Net Quartz开发探秘(十二):关于许可授权(免费版本的功能也很强大!)_第3张图片

附赠内容

这里再贴一些代码,供大家理解ArcGIS Runtime是怎么授权的。

Named User

// 创建用户信息
CredentialRequestInfo loginInfo = new CredentialRequestInfo();

loginInfo.GenerateTokenOptions = new GenerateTokenOptions
{
    TokenAuthenticationType = TokenAuthenticationType.OAuthImplicit
};

// 设置PortalUrl
loginInfo.ServiceUri = new Uri("http://www.arcgis.com/sharing/rest");

try
{
    // Call GetCredentialAsync on the AuthenticationManager to invoke the challenge handler
    Credential cred = await AuthenticationManager.Current.GetCredentialAsync(loginInfo, false);

    // 使用用户名和密码连接至Portal
    ArcGISPortal arcgisPortal = await ArcGISPortal.CreateAsync(loginInfo.ServiceUri, cred);

    // 从Portal获取授权信息
    Esri.ArcGISRuntime.LicenseInfo licenseInfo = arcgisPortal.PortalInfo.LicenseInfo;

    //授权
    Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.SetLicense(licenseInfo);

许可码

string licenseKey = "runtimelite,1000,rud#########,day-month-year,####################";
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.SetLicense(licenseKey);
先写到这里,大家如果还有什么想了解的,文章里没有写到的,请留言或联系我。微信号:A__Ant

你可能感兴趣的:(ArcGIS,Runtime,SDKs,Quartz)