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