//×éºÏ¿òµÄ¡°Ñ¡ÔñË÷Òý¸ü¸Ä¡±Ê¼þÏìÓ¦º¯Êý£¬ÓÃÓÚÔڸıä×éºÏ¿òËùÑ¡ÏîʱµØÍ¼·¶Î§±äΪÆä¶ÔÓ¦ÊéÇ©Ëù±£´æµÄ·¶Î§
private void cbBookmarkList_SelectedInexChanged(object sender, EventArgs e) {
//·ÃÎʵØÍ¼Ëù°üº¬µÄÊéÇ©£¬²¢»ñÈ¡ÊéÇ©ÐòÁÐ
IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks; IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks;
//¶ÔµØÍ¼Ëù°üº¬µÄÊéÇ©½øÐбéÀú£¬»ñÈ¡Óë×éºÏ¿òËùÑ¡ÏîÃû³ÆÏà·ûµÄÊéÇ© enumSpatialBookmark.Reset();
ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) {
if (cbBookmarkList.SelectedItem.ToString() == spatialBookmark.Name) {
spatialBookmark.ZoomTo((IMap)axMapControl1.ActiveView); axMapControl1.ActiveView.Refresh(); break; }
spatialBookmark = enumSpatialBookmark.Next(); } 6.ʵÑé½á¹ûÈçÏÂ
4
2 ʵÑé¶þ£ºµØÍ¼Êý¾Ý×éÖ¯Óë·ÃÎÊ
2.1 ʵÑéÄ¿µÄ
? Á˽âArcGIS EngineÖеØÍ¼Êý¾ÝµÄ×éÖ¯½á¹¹ ? ÕÆÎÕArcGIS EngineµØÍ¼Êý¾Ý·ÃÎÊ·½·¨
2.2 ʵÑéÄÚÈÝ
? ±àд¡°Êý¾Ý²Ù×÷¡±Àà
? ÀûÓÃDataGridView¿Ø¼þչʾContinentsͼ²ãµÄÐòºÅºÍÃû³Æ×Ö¶Î
2.3 ʵÑé²½ÖèÓë½á¹û
1.Ìí¼Ó¡°¿Õ¼äÊý¾Ý¡±²Ëµ¥ÏÔÚÏÂÀ²Ëµ¥ÖÐÌí¼ÓÒ»¸ö²Ëµ¥ÏîÎı¾Îª¡°·ÃÎÊͼ²ãÊý¾Ý¡±Ãû³ÆÎª¡°miAccessData¡±,ÓÃÓÚÉÔºóµ÷Óá°Êý¾Ýչʾ̨¡±´°Ìå¡£
2.н¨´°ÌåÀ࣬´°ÌåÎļþÃüÃûΪ¡°DataBoard.cs¡±Îı¾ÊôÐÔΪ¡°Êý¾Ýչʾ̨¡±¡£Ìí¼ÓÒ»¸öÎı¾¿ò£¬¿Ø¼þÃûΪ¡°tbDataName¡±£¬Ò»¸öÊý¾ÝÍø¸ñÊÓͼ£¬¿Ø¼þÃûΪ¡°dataGridView1¡±£¬ReadOnly=true¡£ ÈçͼËùʾ
3.ÔÚµ±Ç°´°Ìå´úÂëÖмÓÈëÒÔÏ´úÂë
public DataBoard(String sDataName, DataTable dataTable) {
//³õʼ»¯´°Ìå¼°¿Ø¼þ
5
InitializeComponent();
//ÉèÖÃÎı¾¿òÖеÄÎı¾ºÍÊý¾ÝÍø¸ñÊÓͼµÄÊý¾ÝÔ´ tbDataName.Text = sDataName;
dataGridView1.DataSource = dataTable; }
4.Ìí¼ÓÀ࣬ÃüÃûΪ¡°DataOPerator.cs¡±²¢µ¼ÈëÀà¿âÒýÓà using System.Data;
using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.DataSourcesFile; 5.Ìí¼ÓÒÔÏ´úÂë
//±£´æµ±Ç°µØÍ¼¶ÔÏó
public IMap m_map;
//ÓÃÓÚ´«È뵱ǰµØÍ¼¶ÔÏó
public DataOperator(IMap map) {
m_map = map; }
6.Ìí¼Ó¡°»ñÈ¡µØÍ¼Í¼²ã¡±¹¦Äܺ¯Êý¡£´úÂëÈçÏ public ILayer GetLayerByName(String sLayerName) {
//ÅжÏͼ²ãÃû»òµØÍ¼¶ÔÏóÊÇ·ñΪ¿Õ¡£ÈôΪ¿Õ£¬º¯Êý·µ»Ø¿Õ¡£ if (sLayerName == \ {
return null; }
//¶ÔµØÍ¼¶ÔÏóÖеÄËùÓÐͼ²ã½øÐбéÀú¡£Èôijһͼ²ãµÄÃû³ÆÓëÖ¸¶¨Í¼²ãÃûÏàͬ£¬Ôò·µ»Ø¸Ãͼ²ã¡¢
for (int i = 0; i < m_map.LayerCount; i++) {
if (m_map.get_Layer(i).Name == sLayerName) {
return m_map.get_Layer(i); } }
return null; }
7.Ìí¼Ó³ÉÔ±º¯ÊýGetContinentsNames´úÂëÈçÏ public DataTable GetContinentsName() {
//»ñÈ¡¡°Continents¡±Í¼²ã£¬ÀûÓÃIFeatureLayer½Ó¿Ú·ÃÎÊ£¬²¢ÅжÏÊÇ·ñ³É¹¦¡£Èôʧ°Ü£¬º¯Êý·µ»Ø¿Õ
ILayer layer = GetLayerByName(\
6
IFeatureLayer featureLayer = layer as IFeatureLayer; if (featureLayer == null) {
return null; }
//µ÷ÓÃIFeatureLayer½Ó¿ÚµÄSeach·½·¨£¬»ñÈ¡ÒªËØÖ¸Õë
£¨IFeatureCursor£©½Ó¿Ú¶ÔÏó£¬ÓÃÓÚÔÚÖ®ºó±éÀúͼ²ãÖеÄÈ«²¿ÒªËØ£¬²¢ÅжÏÊÇ·ñ³É¹¦»ñÈ¡µÚÒ»¸öÒªËØ£¬Èôʧ°Ü£¬º¯Êý·µ»Ø¿Õ IFeature feature;
IFeatureCursor featureCursor = featureLayer.Search(null, false);
feature=featureCursor.NextFeature(); if (feature==null ) {
return null ; }
//н¨DataTableÀàÐͶÔÏó,ÓÃÓÚº¯Êý·µ»Ø DataTable dataTable = new DataTable();
//н¨DataColumnÀàÐͶÔÏ󣬷ֱ𱣴æ¸÷¸öÖݵÄÐòºÅºÍÃû³Æ¡£ÉèÖÃÍê±Ïºó£¬¼ÓÈëDataTableµÄÁм¯ºÏ£¨Columns£©ÖС£
DataColumn dataColumn = new DataColumn(); dataColumn.ColumnName =\ÐòºÅ\
dataColumn.DataType = System.Type.GetType(\ dataTable.Columns.Add (dataColumn ); dataColumn =new DataColumn (); dataColumn.ColumnName =\Ãû³Æ\ dataColumn.DataType =
System.Type.GetType(\
dataTable.Columns.Add(dataColumn );
//¶Ôͼ²ãÖеÄÒªËØ½øÐбéÀú¡£Ã¿»ñȡһ¸öÒªËØ£¬¾Í¹ØÁªDataTableµÄÏÂÒ»¸öDataRow£¬½«ÒªËØÔÚÐòºÅºÍÃû³Æ×Ö¶ÎÉϵÄÖµ¸³¸øDataRowµÄ¶ÔÓ¦ÁÐÖС£ÔÚ\ͼ²ãÊôÐÔ±íÖУ¬ÐòºÅÐÅÏ¢ÔÚµÚ0¸ö×Ö¶ÎÖУ¬Ãû³ÆÐÅÏ¢ÔÚµÚ2¸ö×Ö¶ÎÖС£Ïà¹ØÄÚÈÝ¿ÉÒÔͨ¹ýArcMap¶ÔµØÍ¼Îĵµ½øÐв鿴¡£ DataRow dataRow;
while (feature != null) {
dataRow = dataTable.NewRow();
dataRow[0] = feature.get_Value(0); dataRow[1] = feature.get_Value(2); dataTable.Rows.Add(dataRow);
feature = featureCursor.NextFeature(); }
//·µ»ØÉèÖúõÄÊý¾Ý±í¡£
7