ArcEngine½Ó¿Ú´óÈ«

19. ¹ØÓÚIMap½Ó¿Ú(esriCarto)

IMap½Ó¿ÚµÄµÚÒ»¸öÊôÐÔLayers (uid, recursive ) £¨Ö»¶Á£¬µÚ¶þ¸ö²ÎÊýΪTrueµÄʱºò£¬¸ÃÊôÐÔ»ñÈ¡µÚÒ»¸ö²ÎÊýuidÖ¸¶¨µÄLayers£¬¸³Öµ¸øÒ»¸öIEnumLayerµÄ±äÁ¿£© ÆäÖбȽϳ£ÓõÄUID²ÎÊýÖµÈçÏ£º

{6CA416B1-E160-11D2-9F4E-00C04F6BC78E} IDataLayer {40A9E885-5533-11d0-98BE-00805F7CED21} IFeatureLayer {E156D7E5-22AF-11D3-9F99-00C04F6BC78E} IGeoFeatureLayer {34B2EF81-F4AC-11D1-A245-080009B6F22B} IGraphicsLayer

{5CEAE408-4C0A-437F-9DB3-054D83919850} IFDOGraphicsLayer

{0C22A4C7-DAFD-11D2-9F46-00C04F6BC78E} ICoverageAnnotationLayer {EDAD6644-1810-11D1-86AE-0000F8751720} IGroupLayer

IMap½Ó¿ÚµÄµÚ¶þ¸öÊôÐÔLayerCount£¨Ö»¶Á£¬·µ»Ø¸ÃmapÀïÃæLayerµÄ¸öÊý£© IMap½Ó¿ÚµÄµÚÈý¸öÊôÐÔLayer£¨Index£© £¨Ö»¶Á£¬·µ»ØÖ¸¶¨Ë÷ÒýindexλÖõÄLayer£© IMap½Ó¿ÚµÄµÚËĸö·½·¨AddLayer£¨Layer£© £¨·½·¨£¬Ïò¸ÃmapÌí¼ÓÒ»¸öLayer£©

IMap½Ó¿ÚµÄµÚÎå¸ö·½·¨AddLayers£¨Layers, autoArrange£© £¨·½·¨£¬Ìí¼ÓÒ»¸öEnumLayer±äÁ¿µÄlayersµ½¸Ãmap£¬µÚÒ»¸ö²ÎÊýΪIEnumLayerÀàÐÍ£¬µÚ¶þ¸ö²ÎÊýΪboolÐͱäÁ¿£© IMap½Ó¿ÚµÄµÚÁù¸ö·½·¨ClearLayers£¨·½·¨£¬½«ËùÓеÄlayer´ÓmapÖÐÒÆ³ý£© IMap½Ó¿ÚµÄµÚÆß¸ö·½·¨ClearSelection£¨·½·¨£¬½«¸ÃmapÖÐÑ¡ÔñµÄÒªËØÇå¿Õ£© IMap½Ó¿ÚµÄµÚ°Ë¸öÊôÐÔSelectionCount£¨Ö»¶Á£¬·µ»Ø¸Ãmap±»Ñ¡ÖÐÒªËØµÄ¸öÊý£© IMap½Ó¿ÚµÄµÚ¾Å¸ö·½·¨SelectFeature(Layer, Feature) £¨·½·¨£¬´ÓÒ»¸öLayerÖÐÑ¡ÔñÒ»¸öFeature£©

IMap½Ó¿ÚµÄµÚÊ®¸öÊôÐÔMapScale£¨¶Áд£¬»ñÈ¡»òÕßÉèÖõ±Ç°mapµÄµØÍ¼±ÈÀý³ß£¬doubleÀàÐÍ£©

IMap½Ó¿ÚµÄµÚʮһ¸ö·½·¨MoveLayer(Layer, toIndex) £¨·½·¨£¬°ÑÒ»¸öLayer´Óµ±Ç°µÄλÖÃÒÆ¶¯µ½Ö¸¶¨µÄË÷ÒýλÖã©

IMap½Ó¿ÚµÄµÚÊ®¶þ¸ö·½·¨SelectByShape(Shape, env, justOne) £¨·½·¨£¬´ÓLayerÖÐÒÀ¿¿Ò»¸öͼÐεķ¶Î§shapeºÍÒ»¸öÑ¡ÔñµÄ»·¾³envÀ´Ñ¡ÔñÒªËØ£¬¶øÔÚËùÓÐͼ²ãÖÐÖ»´ÓIFeatureLayerµÄͼ²ãÖнøÐÐÑ¡Ôñ£©

20. ¹ØÓÚIPropertySet½Ó¿Ú(esriSystem)

IPropertySet½Ó¿ÚµÄµÚÒ»¸ö·½·¨SetProperties (names, values ) £¨·½·¨£¬ÉèÖÃÊôÐÔ£© IPropertySet½Ó¿ÚµÄµÚ¶þ¸ö·½·¨SetProperty (name, value ) £¨·½·¨£¬ÉèÖÃÊôÐÔ£©

21. ¹ØÓÚIFeatureWorkspace½Ó¿Ú£¨esriGeoDatabase£©IFeatureWorkspace½Ó¿ÚµÄµÚÒ»¸ö·½·¨OpenFeatureClass (Name) £¨·½·¨£¬´ÓÒ»¸öÒªËØ¹¤×÷¿Õ¼ä´ò¿ªÒ»¸öÒªËØ£¬·µ»ØÒ»¸öIFeatureClassÀàÐ͵ıäÁ¿£©

22. ¹ØÓÚIWorkspaceEdit½Ó¿Ú£¨esriGeoDatabase£©

ÔÚʵ¼ÊÎÊÌâÖУ¬Èç¹ûÓжà´Î²Ù×÷ÐèÒª¸ü¸ÄFeatureµÄʱºò£¬ÇмÇÒª½«²Ù×÷¶ÔÏóÖØÐ¸³Öµ£¬²»È»ÔÚpWorkspaceEdit.StopEditing(true)µÄʱºò»á³öÏÖ´íÎ󣬱¨´í´úÂëΪ-2147467259¡£ £¨Ïêϸ´úÂë¿É¼ûWindowsApplication6µÄ´úÂ룬ÆäÖÐÏêϸ²Ù×÷Á˶Ô×ֶεı༭¹ý³Ì£¬ÆäÖÐÉæ¼°µ½ºÜ¶à¶Ô×Ö¶ÎFieldµÄ·½·¨Add(Field)£¬Delete(Field)£¬get_value(object value)£¬set_value(int index, object value)µÈµÈ²Ù×÷£¬ÆäÖл¹Éæ¼°µ½Feature¾­¹ýICursorÀàѡȡÓë¾­¹ýFeatureClassÀàµÄ·½·¨GetFeatureѡȡµÄÇø±ð£©

23. ¹ØÓÚIWorkspaceFactory½Ó¿Ú£¨esriGeoDatabase£©

IWorkspaceFactory½Ó¿ÚµÄµÚÒ»¸ö·½·¨Open (ConnectionProperties, hWnd ) £¨·½·¨£¬´ÓÒ»¸ö¹¤×÷¹¤³§´ò¿ªÒ»¸ö¹¤×÷¿Õ¼ä£¬²¢·µ»ØIWorkspaceÀàÐ͵ıäÁ¿£¬·½·¨ÖеĵÚÒ»¸ö²ÎÊýConnectionPropertiesÊÇIPropertySet½Ó¿ÚµÄ±äÁ¿£©

IWorkspaceFactory½Ó¿ÚµÄµÚ¶þ¸ö·½·¨OpenFromFile (fileName, hWnd ) £¨·½·¨£¬´ÓÒ»¸ö·¾¶´ò¿ªÒ»¸ö¹¤×÷¿Õ¼ä£¬²¢·µ»ØIWorkspaceÀàÐ͵ıäÁ¿£©

24. ¹ØÓÚITopologicalOperator½Ó¿Ú£¨esriGeometry£©

ITopologicalOperator½Ó¿ÚµÄµÚÒ»¸ö·½·¨ConstructUnion(geometries ) £¨·½·¨£¬ºÏ²¢Í¼ÐεŤ¾ß£¬ÊäÈëµÄ²ÎÊýÊÇÒ»¸öIEnumGeometryÀàÐ͵IJÎÊý£¬´Ë·½·¨Ð§ÂÊÉõ¸ß£©

ITopologicalOperator½Ó¿ÚµÄµÚ¶þ¸ö·½·¨Cut(cutter, leftGeom, rightGeom) £¨·½·¨£¬¼ôÇÐͼÐΣ¬µÚÒ»¸ö²ÎÊýΪ¼ôÇеÄÏßÒªËØ£¬ÎªIPloylineÀàÐÍ£¬µÚ¶þ¸öµÚÈý¸ö²ÎÊý¾ùΪ¼ôÇкóµÄͼÐΣ¬ÎªÊä³ö²ÎÊý£©

ITopologicalOperator½Ó¿ÚµÄµÚÈý¸ö·½·¨Boundary£¨·½·¨£¬»ñȡһ¸öͼÐεı߿ò£¬Ò»¸öPolygonµÄboundaryÊÇÒ»¸öPolylineÀàÐ͵ÄÒªËØ£¬Ò»¸öPolylineµÄboundaryÊÇÒ»¸önultipointÀàÐ͵ÄÒªËØ£¬Ò»¸öPointµÄboundaryÊÇΪ¿ÕµÄ£©

ITopologicalOperator½Ó¿ÚµÄµÚËĸö·½·¨Buffer(distance) £¨·½·¨£¬´´ÔìÒ»¸öPolygonµÄÒªËØÀ´ÏÔʾ»º³åÇøÓò£¬²ÎÊýΪ»º³å¾àÀ룩

ITopologicalOperator½Ó¿ÚµÄµÚÎå¸ö·½·¨Clip (clipperEnvelope ) £¨·½·¨£¬ÊäÈëÒ»¸öIEnvelopeÀàÐ͵ıäÁ¿£¬À´»ñÈ¡±»Õâ¸ö±ß¿ò¼ôÇеÄÒªËØ£¬²¢½«ÇиîºóµÄ±äÁ¿·µ»Ø¸øµ÷Ó÷½·¨µÄ±äÁ¿£© ITopologicalOperator½Ó¿ÚµÄµÚÁù¸ö·½·¨QueryClipped (clipperEnvelope, clippedGeometry )£¨·½ ·¨£¬ÓëClipÀàËÆ£¬µ«Êǵڶþ¸ö²ÎÊýΪ¼ôÇк󷵻ØÊä³öµÄ²ÎÊý£¬±¾Éí²»»á¸Ä±ä£©

ITopologicalOperator½Ó¿ÚµÄµÚÆß¸ö·½·¨ConvexHull£¨·½·¨£¬¹¹ÔìÒ»¸öGeometry£¬´ó²¿·ÖΪPolygonÀàÐ͵ļ¸ºÎÒªËØ£¬¸ÃÒªËØÎªµ÷Óô˷½·¨µÄITopologicalOperatorÀàÐ͵ıäÁ¿×îСµÄÍâ±ß¿ò£©

ITopologicalOperator½Ó¿ÚµÄµÚ°Ë¸ö·½·¨SymmetricDifference (other ) £¨·½·¨£¬²¢¼¯¼õÈ¥½»¼¯µÄ²¿·Ö£¬µ÷Óôη½·¨µÄ±äÁ¿ÎªµÚÒ»¸ö²ÎÊý£¬otherΪµÚ¶þ¸ö²ÎÊý£¬×îºó·µ»Ø±äÁ¿µ½Ò»¸ö

GeometryÀàÐ͵ıäÁ¿£¬¸Ã±äÁ¿µÄ·¶Î§¾ùÔÚÁ½¸ö²ÎÊý·¶Î§ÄÚ£¬µ«²»ÔÚÁ½¸ö²ÎÊýÏཻµÄ²¿·Ö£©

25. ´´½¨Buffer²¢Ñ¡ÔñÀïÃæµÄÒªËØ

======================================================== ÔõÑù´´½¨buffer£º£¨À´Ô´ÓÚ¹ÜÍøÏß´¦Àíɾ³ýÈßÓà½Úµã£©

======================================================== 1. 2. 3. 4.

Dim pTopOper As ITopologicalOperator Set pTopOper = pfeature.Shape Dim pGeometry As IGeometry

Set pGeometry = pTopOper.Buffer(1)

¸´ÖÆ´úÂë

(×¢Ò⣬Õâ¸öpfeatureÊÇÔÚÇ°Ãæ¶¨ÒåµÄpfeature=pFeatureCursor.NextFeature,²»ÓÃÖØÐ¶¨ÒåÒ»¸ö)

======================================================== ÔõÑùÔÚbufferÀïÃæÑ¡ÔñÒªËØ£º

======================================================== 1. 2. 3. 4. 5. 6. 7. 8.

Dim pSpFilter As ISpatialFilter Set pSpFilter = New SpatialFilter

Dim pTopOper As ITopologicalOperator Set pTopOper = pfeature.Shape Dim pGeometry As IGeometry

Set pGeometry = pTopOper.Buffer(1) Set pSpFilter.Geometry = pGeometry

pSpFilter.SpatialRel = esriSpatialRelContains

9. 10. 11. 12. 13. 14. 1. 2.

'£¨esriSpatialRelContainsÊÇISpatialFilterÀïÃæSpatialRelµÄÒ»ÖÖ²ÎÊýesriSpatialRelEnum£¬ÖµÎª8£¬´ú±íÔÚÕâ¸öÇøÓòÄÚ°üº¬µÄÒªËØ£©

Set m_pSelGW_D = pLyr_D

m_pSelGW_D.SelectFeatures pSpFilter, esriSelectionResultNew, False '£¨m_pSelGW_DÊÇIfeatureSelectionÀàÐ͵ıäÁ¿£© pSpFilter.SpatialRel = esriSpatialRelIntersects Set m_pSelGW_X = pLyr

m_pSelGW_X.SelectFeatures pSpFilter, esriSelectionResultNew, False

26. MergeÒªËØUnionÒªËØ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.

Private Sub UnionSelected() Dim pMxDoc As IMxDocument Dim pFtrLyr As IFeatureLayer Dim pFtrCls As IFeatureClass Dim pFtrSel As IFeatureSelection Dim pFtr As IFeature

Dim pEnumGeom As IEnumGeometry

Dim pEnumGeomBind As IEnumGeometryBind Dim pTopOp As ITopologicalOperator Dim pUnionedPolylines As IPolyline

' Get a ref to the selected polylines in the 1st layer Set pMxDoc = ThisDocument

Set pFtrLyr = pMxDoc.FocusMap.Layer(0) Set pFtrSel = pFtrLyr

Set pFtrCls = pFtrLyr.FeatureClass

' Create an enumeration of the selected polyines Set pEnumGeom = New EnumFeatureGeometry

Set pEnumGeomBind = pEnumGeom

pEnumGeomBind.BindGeometrySource Nothing, pFtrSel.SelectionSet pEnumGeom.Reset

' Union the polylines

Set pUnionedPolylines = New Polyline Set pTopOp = pUnionedPolylines pTopOp.ConstructUnion pEnumGeom

' Add this new unioned polyline to the featureclass

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)