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