已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#+ARCGISENGINE开发查找地图元素并高亮显示代码1(2008-12-13 13:02:12) 转载标签: 杂谈分类: 程序源代码 这是我帮同学做的一个简单的上机作业,本来是想做查找最短路径和查找地图元素(高亮显示)两个功能的,只是查找最短路径的代码没有填进去,如果哪位朋友需要的话,可以发邮件给我啊(wang_)下面是查找地图元素(高亮显示)的主要代码:/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 space NAEngine/ / Summary description for Form1./ public class frmMain : System.Windows.Forms.Form/ / Required designer variable./ 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 NAWindows context menuprivate System.Windows.Forms.ContextMenu contextMenu1;private System.Windows.Forms.MenuItem miLoadLocations;private System.Windows.Forms.MenuItem miClearLocations;/ ArcGIS Controls on the formprivate 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 NAWindowprivate IEngineNAWindowEventsEx_OnContextMenuEventHandler m_onContextMenu;/ Reference to Network Analyst Environmentprivate 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 menuprivate IToolbarMenu m_menuLayer;public frmMain()/ Required for Windows Form Designer support/InitializeComponent();/ / Clean up any resources being used./ 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/ / Required method for Designer support - do not modify/ the contents of this method with the code editor./ 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/ / The main entry point for the application./ STAThreadstatic 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 menum_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 menuIToolbarItem item = axToolbarControl1.GetItem(2);item.Menu.AddItem(new NAProperties(), -1, 1, true, esriCommandStyles.esriCommandStyleTextOnly);/ Initialize naEnv variablesm_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 NAWindows 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 onprivate 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 onaxTOCControl1.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 its 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 void miLoadLocations_Click(object sender, System.EventArgs e)IMapControl3 mapControl = (IMapControl3)axMapControl1.Object;/ Show the Property Page form for Network AnalystfrmLoadLocations loadLocations = new frmLoadLocations();if (loadLocations.ShowModal(mapControl, m_naEnv)/ If loaded locations, refresh the NAWindow and the ScreenINALayer naLayer = m_naWindow.ActiveAnalysis;mapControl.Refresh(esriViewDrawPhase.esriViewGeography, naLayer, mapControl.Extent);m_naWindow.UpdateContent(m_naWindow.ActiveCategory);private void miClearLocations_Click(object sender, System.EventArgs e)IMapControl3 mapControl = (IMapControl3)axMapControl1.Object;IEngineNetworkAnalystHelper naHelper = m_naEnv as IEngineNetworkAnalystHelper;IEngineNAWindow naWindow = m_naWindow;INALayer naLayer = naWindow.ActiveAnalysis;naHelper.DeleteAllNetworkLocations();mapControl.Refresh(esriViewDrawPhase.esriViewGeography, naLayer, mapControl.Extent); private void axToolbarControl1_OnMouseDown(object sender, IToolbarControlEvents_OnMouseDownEvent e) /public void gaoliang_xianshi(string didian) / / /frmNAProperties tem=new frmNAProperties(); / /tem.t / /textBox1.Text = fa; / this.Text = didian; / /ifeaturecursor pcur = ifeatureclass.search(iqueryfilter pfilter); / /pfilter.whereclause = didian;/输入查询条件,也就是你寸地址的字段名=didian / /ifeature pfeat = pcur.nextfeature(); / /axmapcontrol1.flashshape(pfeat.shape); / private void sss_TextChanged(object sender, EventArgs e) private void oPENToolStripMenuItem_Click(object sender, EventArgs e) /frmNAProperties Props = new frmNAProperties(); /Props.Show(); / FrmQuery fQuery = new FrmQuery(pMapControl); / fQuery.Show(); frmNAProperties frm = new frmNAProperties(pMapControl); frm.Show(); private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) private void label1_Click(object sender, EventArgs e) C#+ARCGISENGINE开发查找地图元素并高亮显示代码2(2008-12-13 13:13:20) 转载标签: 杂谈分类: 程序源代码 上接C#+ARCGIS ENGINE开发查找地图元素并高亮显示代码1/frmNAProperties.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 restric
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年考研计算机专业人工智能练习(含答案)
- 专升本会计学专业2025年财务报表分析试卷(含答案)
- 2025年高中一年级政治上学期测试分析试卷
- 2025年前期投资分析师招聘面试参考题库及答案
- 2025年运动项目经理招聘面试题库及参考答案
- 消防值班员考试题库及答案
- 曹县医院招聘试题题库及答案
- 2025年渠道销售专员招聘面试题库及参考答案
- 2025年清洁工招聘面试参考题库及答案
- 铁路竞聘笔试题库及答案
- 财务监管协议书范本
- 辽宁机场集团招聘笔试真题2024
- 人教版高中物理精讲精练-必修1专题强化一:受力分析和整体法与隔离法专题 (原卷版)
- GB/T 12643-2025机器人词汇
- 《认知行为疗法》课件
- 15个小测试-测测您家孩子注意力是否达标
- 《阴极保护原理》课件
- 西南大学《模拟电路》2023-2024学年第一学期期末试卷
- 边缘计算与云计算
- 汉语拼音默写表及拼读专练
- 风电项目审批、开发、建设、运营所需手续全流程
评论
0/150
提交评论