Arcgis Engine¶þ´Î¿ª·¢ÊµÑ鱨¸æ ÏÂÔØ±¾ÎÄ

spatialFilter.WhereClause = \;//È˿ڵȼ¶µÈÓÚ5µÄ³ÇÊÐ spatialFilter.SpatialRel =

(ESRI.ArcGIS.Geodatabase.esriSpatialRelEnum)spatialRel; //¶¨ÒåÒªËØÑ¡Ôñ¶ÔÏó£¬ÒÔÒªËØËÑË÷ͼ²ã½øÐÐʵÀý»¯

IFeatureSelectionfeatSelect = (IFeatureSelection)iSrcLayer; //ÒÔ¿Õ¼ä¹ýÂËÆ÷¶ÔÒªËØ½øÐÐÑ¡Ôñ£¬²¢½¨Á¢ÐÂÑ¡Ôñ¼¯ featSelect.SelectFeatures(spatialFilter,

esriSelectionResultEnum.esriSelectionResultNew, false); returntrue; }

2.Ìí¼Ó²Ëµ¥Ïîµã»÷ʼþ

privatevoidmiSpatialFilterToolStripMenuItem(object sender, EventArgs e) {

MapAnalysismapAnalysis=newMapAnalysis(); mapAnalysis.QueryIntersect(\

Cities\,\,axMapControl1.Map,esriSpatialRelationEnum.esriSpatialRelationIntersection); IActiveViewactiveView;

activeView=axMapControl1.ActiveView;

activeView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,0,axMapControl1.Extent); }

ÔËÐнá¹û

ʵÏÖ»º³åÇø·ÖÎö³ÌÐò

ʵÑé˼·£º

±¾ÊµÑéÊÇÓõĻº³åÇø·ÖÎö¹¦ÄÜ£¬ÊǸù¾ÝÊý¾Ý¿âµÄµã¡¢Ïß¡¢ÃæÊµÌ壬½¨Á¢ÊµÌåÖÜΧһ¶¨·¶Î§ÄڵĻº³åÇøÓò¡£ÊµÑéÖÐÊDzéѯÊÀ½ç³ÇÊÐÖоàÀë±±¾©¾­Î³¶È1¶È·¶Î§Ö®ÄÚµÄËùÓгÇÊС£ÊµÑéÖ÷Òª°üº¬ÒÔϼ¸¸ö²¿·Ö:

1. Ìí¼ÓÖ÷²Ëµ¥²Ëµ¥ÏÔÚÖ÷´°ÌåµÄ¡°GIS·ÖÎö¡±µÄÏÂÀ­²Ëµ¥ÖÐн¨Ò»¸ö¡°»º

³åÇø·ÖÎö¡±²Ëµ¥Ïî

2. Ìí¼ÓÀà³ÉÔ±º¯Êý£ºÏòµØÍ¼·ÖÎöÀàÖÐÌí¼Ó»º³åÇø·ÖÎöº¯Êý£¬´´Á¢»º³åÇø£¬

ÀûÓùýÂËÌõ¼þ½øÐвéѯ¡£

3. Ìí¼Óµã»÷ʼþÏìÓ¦º¯Êý£ºÊµÏÖÒªËØµÄ»º³åÇø·ÖÎö£¬½»²æÑ¡Ôñ³ÇÊв¢ÔÚµØ

ͼÖÐÃ÷ÏÔ±êʶ

ʵÏÖÁ÷³ÌÈçÏ£º

Ìí¼ÓÖ÷´°Ìå²Ëµ¥ÏîÌí¼ÓÀà³ÉÔ±º¯ÊýÌí¼ÓʼþÏìÓ¦º¯Êý·ûºÏÌõ¼þµÄÒªËØÔÚͼÖиßÁÁÏÔʾÔËÐУ¬µã»÷»º³åÇø·ÖÎö

¹Ø¼ü´úÂ룺

1.Ôö¼Ó»º³åÇø·ÖÎöº¯Êý

publicbool Buffer(stringlayerName, stringsWhere, intiSize, IMapiMap) {

//¸ù¾Ý¹ýÂËÌõ¼þ»ñÈ¡³ÇÊÐÃû³ÆÎª±±¾©µÄ³ÇÊÐÒªËØµÄ¼¸ºÎ IFeatureClassfeatClass; IFeature feature; IGeometryiGeom;

DataOperatordataOperator = newDataOperator(iMap); IFeatureLayerfeatLayer =

(IFeatureLayer)dataOperator.GetLayerByName(layerName);

featClass = featLayer.FeatureClass;

IQueryFilterqueryFilter = newQueryFilter();

queryFilter.WhereClause = sWhere;//ÉèÖùýÂËÌõ¼þ IFeatureCursorfeatCursor;

featCursor = (IFeatureCursor)featClass.Search(queryFilter, false); int count = featClass.FeatureCount(queryFilter);

feature = featCursor.NextFeature(); iGeom = feature.Shape;

//ÉèÖÿռäµÄ»º³åÇø×÷Ϊ¿Õ¼ä²éѯµÄ¼¸ºÎ·¶Î§

ITopologicalOperatoripTO = (ITopologicalOperator)iGeom; IGeometryiGeomBuffer = ipTO.Buffer(iSize); //¸ù¾Ý»º³åÇø¼¸ºÎ¶Ô³ÇÊÐͼ²ã½øÐпռä¹ýÂË

ISpatialFilterspatialFilter = newSpatialFilter(); spatialFilter.Geometry = iGeomBuffer; spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIndexIntersects; //¶¨ÒåÒªËØÑ¡Ôñ¶ÔÏó£¬ÒÔÒªËØËÑË÷ͼ²ã½øÐÐʵÀý»¯

IFeatureSelectionfeatSelect = (IFeatureSelection)featLayer; //ÒÔ¿Õ¼ä¹ýÂËÆ÷¶ÔÒªËØ½øÐÐÑ¡Ôñ£¬²¢½¨Á¢ÐÂÑ¡Ôñ¼¯ featSelect.SelectFeatures(spatialFilter,

esriSelectionResultEnum.esriSelectionResultNew, false); returntrue; }

4. Ìí¼Ó²Ëµ¥Ïîµã»÷ʼþ

privatevoidmiBuffer_Click(object sender, EventArgs e) {

MapAnalysismapAnalysis = newMapAnalysis();

mapAnalysis.Buffer(\, \, 1, axMapControl1.Map); IActiveViewactiveView;

activeView = axMapControl1.ActiveView;

activeView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, 0, axMapControl1.Extent); }

5. ÔËÐнá¹û

ʵÏÖÒªËØÍ³¼Æ³ÌÐò ʵÑé˼·£º

±¾ÊµÑéÊÇÒÔÊÀ½ç¸÷´óÖÞµÄÃæ»ýͳ¼ÆÎªÀý£¬Í¨¹ýµ÷ÓÃͳ¼ÆÏà¹Ø×é¼þ»ñÈ¡×îÐ¡Ãæ»ý¡¢×î´óÃæ»ýºÍƽ¾ùÃæ»ý¡£Êý¾Ýͳ¼Æ×é¼þͨ¹ýDataStatisticsͳ¼Æ²¢·µ»Ø½á¹û£¬ÔÙÒÔÓαêÐÎʽ´«È룬ʵÑéÖ÷Òª°üÀ¨ÒÔϼ¸¸ö²¿·Ö£º

1. Ìí¼Ó²Ëµ¥ÏÔÚ³ÌÐòÖ÷´°ÌåµÄ¡°GIS·ÖÎö¡±²Ëµ¥ÏîµÄÏÂÀ­²Ëµ¥ÖУ¬Ìí¼ÓÒ»¸ö²Ëµ¥Ïî¡°ÒªËØÍ³¼Æ¡±

2. Ìí¼ÓÀà³ÉÔ±º¯Êý£ºÏòµØÍ¼·ÖÎöÀàÖÐÌí¼ÓÒªËØÍ³¼Æº¯Êý£¬¶Ôͼ²ã½øÐÐÒªËØÍ³¼Æ 3. Ìí¼ÓʼþÏìÓ¦º¯Êý£ºÎª²Ëµ¥Ïî¡°ÒªËØÍ³¼Æ¡±Éú³Éµã»÷ʼþÏìÓ¦º¯Êý£¬ÊµÏÖÒªËØÃæ»ýͳ¼Æ·ÖÎö£¬½«½á¹ûÒÔ¶Ô»°¿òµÄÐÎʽÊä³ö¡£ ʵÏÖÁ÷³ÌÈçÏ£º