收藏 分销(赏)

C#+ARCGIS ENGINE开发查找地图元素并高亮显示代码.doc

上传人:xrp****65 文档编号:7977444 上传时间:2025-01-29 格式:DOC 页数:23 大小:94.50KB
下载 相关 举报
C#+ARCGIS ENGINE开发查找地图元素并高亮显示代码.doc_第1页
第1页 / 共23页
C#+ARCGIS ENGINE开发查找地图元素并高亮显示代码.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述
C#+ARCGIS ENGINE开发查找地图元素并高亮显示代码1 (2008-12-13 13:02:12) 转载 标签: 杂谈 分类: 程序源代码      这是我帮同学做的一个简单的上机作业,本来是想做查找最短路径和查找地图元素(高亮显示)两个功能的,只是查找最短路径的代码没有填进去,如果哪位朋友需要的话,可以发邮件给我啊(wang_cuntao@)~~   下面是查找地图元素(高亮显示)的主要代码:   //frmMain.cs // Copyright 2006 ESRI // // All rights reserved under the copyright laws of the United States // and applicable international laws, treaties, and conventions. // // You may freely redistribute and use this sample code, with or // without modification, provided you include the original copyright // notice and use restrictions. // // See use restrictions at /arcgis/developerkit/userestrictions. using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.SystemUI; using ESRI.ArcGIS.NetworkAnalyst; // This is the main form of the application. namespace NAEngine {  /// <summary>  /// Summary description for Form1.  /// </summary>      public class frmMain : System.Windows.Forms.Form  {   /// <summary>   /// Required designer variable.   /// </summary>         public IMapControl2 pMapControl;           private System.ComponentModel.Container components = null;   private System.Windows.Forms.Splitter splitter1;         private System.Windows.Forms.ComboBox cmbLayers;   // Context menu objects for NAWindow's context menu   private System.Windows.Forms.ContextMenu contextMenu1;   private System.Windows.Forms.MenuItem miLoadLocations;   private System.Windows.Forms.MenuItem miClearLocations;   // ArcGIS Controls on the form   private ESRI.ArcGIS.Controls.AxMapControl axMapControl1;   private ESRI.ArcGIS.Controls.AxLicenseControl axLicenseControl1;   private ESRI.ArcGIS.Controls.AxToolbarControl axToolbarControl1;   private ESRI.ArcGIS.Controls.AxTOCControl axTOCControl1;   // Listen for context menu on NAWindow   private IEngineNAWindowEventsEx_OnContextMenuEventHandler m_onContextMenu;   // Reference to Network Analyst Environment   private IEngineNetworkAnalystEnvironment m_naEnv;   // Reference to NAWindow.  Need to hold on to reference for events to work.         private IEngineNAWindow m_naWindow;         private MenuStrip menuStrip1;         private ToolStripMenuItem oPENToolStripMenuItem;         private Label label1;         private Label label2;   // Menu for our commands on the TOC context menu   private IToolbarMenu m_menuLayer;   public frmMain()   {    //    // Required for Windows Form Designer support    //    InitializeComponent();               }   /// <summary>   /// Clean up any resources being used.   /// </summary>   protected override void Dispose(bool disposing)   {    ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown();    if (disposing)    {     if (components != null)     {      components.Dispose();     }    }    base.Dispose(disposing);   }   #region Windows Form Designer generated code   /// <summary>   /// Required method for Designer support - do not modify   /// the contents of this method with the code editor.   /// </summary>   private void InitializeComponent()   {             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain));             this.axMapControl1 = new ESRI.ArcGIS.Controls.AxMapControl();             this.axLicenseControl1 = new ESRI.ArcGIS.Controls.AxLicenseControl();             this.axToolbarControl1 = new ESRI.ArcGIS.Controls.AxToolbarControl();             this.splitter1 = new System.Windows.Forms.Splitter();             this.axTOCControl1 = new ESRI.ArcGIS.Controls.AxTOCControl();             this.contextMenu1 = new System.Windows.Forms.ContextMenu();             this.miLoadLocations = new System.Windows.Forms.MenuItem();             this.miClearLocations = new System.Windows.Forms.MenuItem();             this.menuStrip1 = new System.Windows.Forms.MenuStrip();             this.oPENToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();             this.label1 = new System.Windows.Forms.Label();             this.label2 = new System.Windows.Forms.Label();             ((System.ComponentModel.ISupportInitialize)(this.axMapControl1)).BeginInit();             ((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).BeginInit();             ((System.ComponentModel.ISupportInitialize)(this.axToolbarControl1)).BeginInit();             ((System.ComponentModel.ISupportInitialize)(this.axTOCControl1)).BeginInit();             this.menuStrip1.SuspendLayout();             this.SuspendLayout();             //             // axMapControl1             //             this.axMapControl1.Dock = System.Windows.Forms.DockStyle.Fill;             this.axMapControl1.Location = new System.Drawing.Point(246, 52);             this.axMapControl1.Name = "axMapControl1";             this.axMapControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axMapControl1.OcxState")));             this.axMapControl1.Size = new System.Drawing.Size(466, 448);             this.axMapControl1.TabIndex = 2;             //             // axLicenseControl1             //             this.axLicenseControl1.Enabled = true;             this.axLicenseControl1.Location = new System.Drawing.Point(797, 0);             this.axLicenseControl1.Name = "axLicenseControl1";             this.axLicenseControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axLicenseControl1.OcxState")));             this.axLicenseControl1.Size = new System.Drawing.Size(32, 32);             this.axLicenseControl1.TabIndex = 1;             //             // axToolbarControl1             //             this.axToolbarControl1.Dock = System.Windows.Forms.DockStyle.Top;             this.axToolbarControl1.Location = new System.Drawing.Point(0, 24);             this.axToolbarControl1.Name = "axToolbarControl1";             this.axToolbarControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axToolbarControl1.OcxState")));             this.axToolbarControl1.Size = new System.Drawing.Size(712, 28);             this.axToolbarControl1.TabIndex = 0;             this.axToolbarControl1.OnMouseDown += new ESRI.ArcGIS.Controls.IToolbarControlEvents_Ax_OnMouseDownEventHandler(this.axToolbarControl1_OnMouseDown);             //             // splitter1             //             this.splitter1.Location = new System.Drawing.Point(243, 52);             this.splitter1.Name = "splitter1";             this.splitter1.Size = new System.Drawing.Size(3, 448);             this.splitter1.TabIndex = 4;             this.splitter1.TabStop = false;             //             // axTOCControl1             //             this.axTOCControl1.Dock = System.Windows.Forms.DockStyle.Left;             this.axTOCControl1.Location = new System.Drawing.Point(0, 52);             this.axTOCControl1.Name = "axTOCControl1";             this.axTOCControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axTOCControl1.OcxState")));             this.axTOCControl1.Size = new System.Drawing.Size(243, 448);             this.axTOCControl1.TabIndex = 1;             this.axTOCControl1.OnMouseDown += new ESRI.ArcGIS.Controls.ITOCControlEvents_Ax_OnMouseDownEventHandler(this.axTOCControl1_OnMouseDown);             //             // contextMenu1             //             this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {             this.miLoadLocations,             this.miClearLocations});             //             // miLoadLocations             //             this.miLoadLocations.Index = 0;             this.miLoadLocations.Text = "Load Locations...";             this.miLoadLocations.Click += new System.EventHandler(this.miLoadLocations_Click);             //             // miClearLocations             //             this.miClearLocations.Index = 1;             this.miClearLocations.Text = "Clear Locations";             this.miClearLocations.Click += new System.EventHandler(this.miClearLocations_Click);             //             // menuStrip1             //             this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {             this.oPENToolStripMenuItem});             this.menuStrip1.Location = new System.Drawing.Point(0, 0);             this.menuStrip1.Name = "menuStrip1";             this.menuStrip1.Size = new System.Drawing.Size(712, 24);             this.menuStrip1.TabIndex = 20;             this.menuStrip1.Text = "menuStrip1";             this.menuStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.menuStrip1_ItemClicked);             //             // oPENToolStripMenuItem             //             this.oPENToolStripMenuItem.Name = "oPENToolStripMenuItem";             this.oPENToolStripMenuItem.RightToLeft = System.Windows.Forms.RightToLeft.Yes;             this.oPENToolStripMenuItem.Size = new System.Drawing.Size(65, 20);             this.oPENToolStripMenuItem.Tag = "";             this.oPENToolStripMenuItem.Text = "查找地点";             this.oPENToolStripMenuItem.Click += new System.EventHandler(this.oPENToolStripMenuItem_Click);             //             // label1             //             this.label1.AutoSize = true;             this.label1.Location = new System.Drawing.Point(134, 7);             this.label1.Name = "label1";             this.label1.Size = new System.Drawing.Size(0, 12);             this.label1.TabIndex = 6;             this.label1.Click += new System.EventHandler(this.label1_Click);             //             // label2             //             this.label2.AutoSize = true;             this.label2.Location = new System.Drawing.Point(68, 6);             this.label2.Name = "label2";             this.label2.Size = new System.Drawing.Size(293, 12);             this.label2.TabIndex = 21;             this.label2.Text = "(点击查找地图功能之前,请确定已经打开一张地图~)";             //             // frmMain             //             this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);             this.ClientSize = new System.Drawing.Size(712, 500);             this.Controls.Add(this.label2);             this.Controls.Add(this.label1);             this.Controls.Add(this.axLicenseControl1);             this.Controls.Add(this.axMapControl1);             this.Controls.Add(this.splitter1);             this.Controls.Add(this.axTOCControl1);             this.Controls.Add(this.axToolbarControl1);             this.Controls.Add(this.menuStrip1);             this.Location = new System.Drawing.Point(10, 0);             this.MainMenuStrip = this.menuStrip1;             this.Name = "frmMain";             this.Text = "GIS(作者:涛涛)";             this.Load += new System.EventHandler(this.frmMain_Load);             ((System.ComponentModel.ISupportInitialize)(this.axMapControl1)).EndInit();             ((System.ComponentModel.ISupportInitialize)(this.axLicenseControl1)).EndInit();             ((System.ComponentModel.ISupportInitialize)(this.axToolbarControl1)).EndInit();             ((System.ComponentModel.ISupportInitialize)(this.axTOCControl1)).EndInit();             this.menuStrip1.ResumeLayout(false);             this.menuStrip1.PerformLayout();             this.ResumeLayout(false);             this.PerformLayout();     }   #endregion   /// <summary>   /// The main entry point for the application.   /// </summary>   [STAThread]   static void Main()   {    Application.Run(new frmMain());   }   private void frmMain_Load(object sender, System.EventArgs e)   {             pMapControl = (IMapControl2)axMapControl1.Object;    // Add commands to the NALayer context menu    m_menuLayer = new ToolbarMenuClass();    m_menuLayer.AddItem(new LoadLocations(), -1, 0, false, esriCommandStyles.esriCommandStyleTextOnly);    m_menuLayer.AddItem(new RemoveLayer(), -1, 1, false, esriCommandStyles.esriCommandStyleTextOnly);    m_menuLayer.AddItem(new ClearAnalysisLayer(), -1, 2, true, esriCommandStyles.esriCommandStyleTextOnly);    m_menuLayer.AddItem(new NALayerProperties(), -1, 3, true, esriCommandStyles.esriCommandStyleTextOnly);    m_menuLayer.SetHook(axMapControl1);    // Add command for Network Analyst env properties to "Network Analyst" dropdown menu    IToolbarItem item = axToolbarControl1.GetItem(2);    item.Menu.AddItem(new NAProperties(), -1, 1, true, esriCommandStyles.esriCommandStyleTextOnly);    // Initialize naEnv variables    m_naEnv = new EngineNetworkAnalystEnvironmentClass();    m_naEnv.ZoomToResultAfterSolve = false;    m_naEnv.ShowAnalysisMessagesAfterSolve = (int)(esriEngineNAMessageType.esriEngineNAMessageTypeInformative | esriEngineNAMessageType.esriEngineNAMessageTypeWarning);    // Explicitly setup buddy control and initialize NA extension    // so we can get to NAWindow to listen to window events    // This is necessary the various controls are not yet setup and they    // need to be in order to get the NAWindow's events.    axToolbarControl1.SetBuddyControl(axMapControl1);    IExtension ext = m_naEnv as IExtension;    object obj = axToolbarControl1.Object;    ext.Startup(ref obj);    m_naWindow = m_naEnv.NAWindow;    m_onContextMenu = new IEngineNAWindowEventsEx_OnContextMenuEventHandler(OnContextMenu);    ((IEngineNAWindowEventsEx_Event)m_naWindow).OnContextMenu += m_onContextMenu;   }   //  Show the TOC context menu when an NALayer is right-clicked on   private void axTOCControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.ITOCControlEvents_OnMouseDownEvent e)   {    if (e.button != 2) return;    esriTOCControlItem item = esriTOCControlItem.esriTOCControlItemNone;    IBasicMap map = null;    ILayer layer = null;    object other = null;    object index = null;    //Determine what kind of item has been clicked on    axTOCControl1.HitTest(e.x, e.y, ref item, ref map, ref layer, ref other, ref index);    // Only implemented a context menu for NALayers.  Exit if the layer is anything else.    if ((layer as INALayer) == null)     return;    axTOCControl1.SelectItem(layer);    // Set the layer into the CustomProperty.    // This is used by the other commands to know what layer was right-clicked on    // in the table of contents.       axMapControl1.CustomProperty = layer;    //Popup the correct context menu and update the TOC when it's done.    if (item == esriTOCControlItem.esriTOCControlItemLayer)    {     m_menuLayer.PopupMenu(e.x,e.y,axTOCControl1.hWnd);     ITOCControl toc = axTOCControl1.Object as ITOCControl;     toc.Update();    }   }   public bool OnContextMenu(int x, int y)   {    System.Drawing.Point pt = this.PointToClient(System.Windows.Forms.Cursor.Position);    contextMenu1.Show(this, pt);    return true;   }   private
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服