C#+ArcEngine代码检测ArcEngine Runtime是否安装以及是否授权



 

C#+ArcEngine代码检测ArcEngine是否安装以及是否授权


检测ArcEngine Runtime是否安装的代码

       private void CheckInStallAERuntime()
        {

            //通过查询系统注册表检测是否安装
            Microsoft.Win32.RegistryKey LocalMachineRegKey = Microsoft.Win32.Registry.LocalMachine;
            Microsoft.Win32.RegistryKey InstallDirRegKey = LocalMachineRegKey.OpenSubKey(@"SOFTWARE\ESRI\Engine10.0\CoreRuntime");

            if (InstallDirRegKey == null)
            {
                MessageBox.Show("没有安装ArcGIS Runtime!");
            }
            else
            {
                string InstallDirStr = InstallDirRegKey.GetValue("InstallDir").ToString();
                MessageBox.Show("ArcGIS Runtime安装目录:" + InstallDirStr);
            }
        }



检测ArcEngine Runtime是否授权的代码

        private bool CheckLicenseProduct()
        {
            //Check out a Spatial Analyst license with the ArcView product.
            esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngine;

            IAoInitialize pAoInitialize = new AoInitializeClass();
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
            //Check the productCode.
            licenseStatus = pAoInitialize.IsProductCodeAvailable(productCode);
            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                pAoInitialize = null;
                return true;
            }
            return false;       
        }


在判断runtime是否授权之前必须进行许可绑定,否则出错



C#结合Arcengine代码中,实现创建空间查询过滤器并执行空间查询获取选中的要素集合的代码如下: ```csharp // 创建空间查询过滤器 ISpatialFilter spatialFilter = new SpatialFilterClass(); spatialFilter.Geometry = geometry; // 设置查询的几何对象 spatialFilter.GeometryField = featureLayer.FeatureClass.ShapeFieldName; // 设置查询的几何字段 spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; // 设置查询的空间关系 // 执行空间查询 IFeatureCursor featureCursor = featureLayer.Search(spatialFilter, false); IFeature feature = featureCursor.NextFeature(); List<IFeature> selectedFeatures = new List<IFeature>(); while (feature != null) { selectedFeatures.Add(feature); feature = featureCursor.NextFeature(); } // 释放资源 System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor); // 获取选中的要素集合 foreach (IFeature selectedFeature in selectedFeatures) { // 处理选中的要素 } ``` 在这段代码中,我们首先创建了一个空间查询过滤器`spatialFilter`,并设置了查询的几何对象、查询的几何字段和查询的空间关系。然后使用`featureLayer.Search`方法执行空间查询,并将查询结果存储在`featureCursor`中。接着,我们通过遍历`featureCursor`获取选中的要素集合,并将其添加到`selectedFeatures`列表中。最后,我们可以对选中的要素进行进一步处理。请注意,在代码的最后,我们需要释放`featureCursor`的资源。 这段代码可以实现创建空间查询过滤器并执行空间查询获取选中的要素集合的功能。 #### 引用[.reference_title] - *1* *2* *3* [ArcGIS Engine10.0轻松入门级教程(3)——ArcEngine10.0查询分析功能](https://blog.csdn.net/ls870061011/article/details/8754993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值