You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							135 lines
						
					
					
						
							6.0 KiB
						
					
					
				
			
		
		
	
	
							135 lines
						
					
					
						
							6.0 KiB
						
					
					
				using KGIS.Framework.AE; | 
						|
using KGIS.Framework.Platform; | 
						|
using KGIS.Framework.Utils; | 
						|
using KGIS.Framework.Views; | 
						|
using Kingo.Plugin.MapView.Services; | 
						|
using Kingo.PluginServiceInterface; | 
						|
using System; | 
						|
using UIShell.OSGi; | 
						|
 | 
						|
namespace Kingo.Plugin.MapView | 
						|
{ | 
						|
    public class Activator : IBundleActivator | 
						|
    { | 
						|
        IWorkCatalog _workCatalog = null; | 
						|
        IAttrTableHelper _AttributeTable = null; | 
						|
        IAttrViewsHelper _AttrViews = null; | 
						|
        IElementInfo _FeatureInfo = null; | 
						|
        public static IBundleContext BundleContext { get; set; } | 
						|
        public void Start(IBundleContext context) | 
						|
        { | 
						|
            try | 
						|
            { | 
						|
                BundleContext = context; | 
						|
                //GrantAuthorizationAE.AELicense.AoInit(); | 
						|
 | 
						|
                if (!AELicense.AoInit()) | 
						|
                { | 
						|
                    //MessageHelper.Show("ArcGIS授权服务未启动或已到期,请检查ArcGIS授权!"); | 
						|
                    //this.Close(); | 
						|
                } | 
						|
                //IWorkspaceAPI wsAPI = new WorkspaceAPI(@"C:\Users\admin\Desktop\湖北赤壁市XZQ\hb_1.gdb", KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); | 
						|
                //IFeatureClassAPI fcAPI = wsAPI.OpenFeatureClass("HB"); | 
						|
                //ESRI.ArcGIS.Geodatabase.IFeature f = fcAPI.GetFeature(1); | 
						|
 | 
						|
                //ESRI.ArcGIS.Geometry.IGeometry geo = f.ShapeCopy; | 
						|
 | 
						|
                //ESRI.ArcGIS.Geometry.ISpatialReferenceFactory NewSpatialReference = new ESRI.ArcGIS.Geometry.SpatialReferenceEnvironmentClass(); | 
						|
                //ESRI.ArcGIS.Geometry.ISpatialReference sp = NewSpatialReference.CreateGeographicCoordinateSystem(4490); | 
						|
                //geo.Project(sp); | 
						|
 | 
						|
                //ESRI.ArcGIS.Geometry.IGeometryCollection geos = geo as ESRI.ArcGIS.Geometry.IGeometryCollection; | 
						|
                //System.Collections.Generic.List<ESRI.ArcGIS.Geometry.IGeometry> geoList = FeatureAPI.DissolveGeometryByRing(geo); | 
						|
                //string strRing = string.Empty; | 
						|
                //foreach (var item in geoList) | 
						|
                //{ | 
						|
                //    ESRI.ArcGIS.Geometry.IArea area = item as ESRI.ArcGIS.Geometry.IArea; | 
						|
                //    ESRI.ArcGIS.Geometry.IPointCollection ps = item as ESRI.ArcGIS.Geometry.IPointCollection; | 
						|
                //    for (int i = 0; i < ps.PointCount; i++) | 
						|
                //    { | 
						|
                //        //if (i % 4 == 0) | 
						|
                //        strRing += ps.Point[i].X + "," + ps.Point[i].Y + ";"; | 
						|
                //    } | 
						|
                //    strRing += "|"; | 
						|
                //} | 
						|
                //strRing = strRing.TrimEnd('|'); | 
						|
 | 
						|
                //Byte[] byt = AesEncrypt(strRing, "08716cf216e4445a8fd6cb50010eaa61"); | 
						|
                //string strParm = Convert.ToBase64String(byt); | 
						|
 | 
						|
                IBaseMainView serviceInstance = new MainViewClass(context); | 
						|
                context.AddService(serviceInstance); | 
						|
                _workCatalog = new UCWorkspace(); | 
						|
                if (Platform.Instance.SystemType != SystemTypeEnum.DTBJK && Platform.Instance.SystemType != SystemTypeEnum.YCLJK && Platform.Instance.SystemType != SystemTypeEnum.WYZS) | 
						|
                    context.AddService<IWorkCatalog>(_workCatalog);//单图斑建库不启动工作目录插件 | 
						|
 | 
						|
                _AttributeTable = new AttrTableHelper(); | 
						|
                context.AddService<IAttrTableHelper>(_AttributeTable); | 
						|
 | 
						|
                _AttrViews = new Commands.CmdOpenAttrTable(); | 
						|
                context.AddService<IAttrViewsHelper>(_AttrViews); | 
						|
 | 
						|
                _FeatureInfo = new MapView.Views.AttributeEdit(); | 
						|
                context.AddService<IElementInfo>(_FeatureInfo); | 
						|
            } | 
						|
            catch (Exception ex) | 
						|
            { | 
						|
                LogAPI.Debug("Kingo.Plugin.MapView.Start异常:" + ex.Message); | 
						|
                LogAPI.Debug("Kingo.Plugin.MapView.Start异常:" + ex.StackTrace); | 
						|
            } | 
						|
        } | 
						|
        /// <summary> | 
						|
        ///  AES 加密 | 
						|
        /// </summary> | 
						|
        /// <param name="str">需要加密的字符串</param> | 
						|
        /// <param name="key">秘钥</param> | 
						|
        /// <returns></returns> | 
						|
        public Byte[] AesEncrypt(string str, string strKey) | 
						|
        { | 
						|
            try | 
						|
            { | 
						|
                if (string.IsNullOrWhiteSpace(strKey)) | 
						|
                    throw new Exception("加密秘钥为空!"); | 
						|
                byte[] Key = System.Text.Encoding.UTF8.GetBytes(strKey); | 
						|
                if (Key.Length != 32) | 
						|
                    throw new Exception("秘钥长度不符合要求!"); | 
						|
                if (string.IsNullOrEmpty(str)) return null; | 
						|
 | 
						|
                Byte[] toEncryptArray = System.Text.Encoding.UTF8.GetBytes(str); | 
						|
                string strBase64 = Convert.ToBase64String(toEncryptArray); | 
						|
                byte[] contentArray = System.Text.Encoding.UTF8.GetBytes(strBase64); | 
						|
                #region 加密 | 
						|
                System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged | 
						|
                { | 
						|
                    Key = Key, | 
						|
                    Mode = System.Security.Cryptography.CipherMode.ECB, | 
						|
                    Padding = System.Security.Cryptography.PaddingMode.PKCS7 | 
						|
                }; | 
						|
                System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateEncryptor(); | 
						|
                Byte[] resultArray = cTransform.TransformFinalBlock(contentArray, 0, contentArray.Length); | 
						|
                #endregion | 
						|
                return resultArray; | 
						|
            } | 
						|
            catch (Exception ex) | 
						|
            { | 
						|
                throw ex; | 
						|
            } | 
						|
        } | 
						|
 | 
						|
        public void Stop(IBundleContext context) | 
						|
        { | 
						|
            IBaseMainView serviceInstance = context.GetFirstOrDefaultService<IBaseMainView>(); | 
						|
            if (serviceInstance != null) | 
						|
            { | 
						|
                context.RemoveService<IBaseMainView>(serviceInstance); | 
						|
            } | 
						|
            _workCatalog = context.GetFirstOrDefaultService<IWorkCatalog>(); | 
						|
            if (_workCatalog != null) | 
						|
            { | 
						|
                context.RemoveService<IWorkCatalog>(_workCatalog); | 
						|
            } | 
						|
            if (_FeatureInfo != null) | 
						|
                context.RemoveService<IElementInfo>(_FeatureInfo); | 
						|
        } | 
						|
    } | 
						|
}
 | 
						|
 |