}
//½áÊø±à¼
w.StopEditOperation(); //½áÊøÊÂÎñ²Ù×÷ w.StopEditing(true); }
¶þ¡¢Ìí¼ÓÏß
·½·¨¸úÌí¼ÓµãÒ»Ñù£¬²»Í¬µÄÖ»ÊǵØÎïÀàÐͲ»Ò»Ñù¶øÒÑ£¬
AEÖи÷Àà¿âµÄ½éÉÜ
1¡¢ ÎÊÌâÒ»£ºÊ²Ã´ÊÇUI×é¼þ£¿ 2¡¢ Àà¿â½éÉÜ
¿Õ¼äÍØÆËÔËËã
1¡¢¸ß¼¶¼¸ºÎ¶ÔÏ󣺵㣨point£©¡¢¶àµã£¨multipoint£©¡¢Ïߣ¨polyline£©¡¢Ã棨polygon£©¡¢multipatchµÈ¡££¨multipatch£º¶àƬ£¬ÈýάµØÐÎͼÖеĵØÍ¼·ûºÅ°üÀ¨µã×´·ûºÅ¡¢Ïß×´·ûºÅ¡¢Ãæ×´·ûºÅ¡¢Ìå×´·ûºÅÒÔ¼°¶àƬ£¨MultiPatch£©·ûºÅµÈ£©
2¡¢ÍØÆË£º¿Õ¼äÍØÆËÃèÊöµÄÊÂ×ÔÈ»½çµØÀí¶ÔÏóµÄ¿Õ¼äλÖùØÏµ£¬¼´ÏàÁÚ¡¢Öغϡ¢Á¬Í¨µÈ¡£ÊÇÔÚͬһ¸öÒªËØ¼¯ÏµÄÒªËØÀàÖ®¼äµÄ¹ØÏµµÄ¼¯ºÏ£¬ËùÒÔÒª²ÎÓëÒ»¸öÍØÆËµÄËùÓÐÒªËØÀ࣬±ØÐëÔÚͬһ¸öÒªËØ¼¯ÄÚ£¨Ò²¾ÍÊǾßÓÐͬһ¸ö¿Õ¼ä²Î¿¼£©£¬ÕâÑù½øÐеÄÍØÆË¼ì²é²ÅÊǾ«È·µÄ¡£
3¡¢Ò»¸öÒªËØ¼¯¿ÉÒÔÓжà¸öÍØÆË£¬µ«Ã¿¸öÒªËØÀà×î¶àÖ»ÄܲÎÓëÒ»¸öÍØÆË£¬Ò»¸öÍØÆËÖпÉÒÔ¶¨Òå¶à¸ö¹æÔò£¬ÊǵØÀí¶ÔÏó¿Õ¼äÊôÐÔµÄÒ»²¿·Ö£¬ÔÚĿǰESRIÌṩµÄÊý¾Ý´æ´¢·½Ê½ÖУ¬CoverageºÍGeoDatabaseÄܹ»½¨Á¢ÍØÆË£¬¶øShape¸ñʽµÄÊý¾Ý²»Äܽ¨Á¢ÍØÆË¡£
4¡¢ esriTRTAny¡ª¡ª¡ª¡ª ÈκÎÍØÆË¹æÔò£¬²éÑ¯ÍØÆËµÄʱºòÓã¨ESRIÌṩµÄÍØÆË¹ØÏµ£© 5¡¢AEÖÐÌṩÁËITopologicalOperator½Ó¿ÚÓÃÓÚÍØÆËÔËË㣬ITopologicalOperator½Ó¿ÚÓÃÀ´Í¨¹ý¶ÔÒÑ´æÔڵļ¸ºÎ¶ÔÏó×ö¿Õ¼äÍØÆËÔËË㣬ÒÔ²úÉúÐµļ¯ºÏ¶ÔÏó¡£ITopologicalOperator½Ó¿ÚÔÚGIS¿ª·¢ÖеÄʹÓ÷dz£¹ã·º£¬Í¨³£GISϵͳÖеĻº³åÇø·ÖÎö¡¢²Ã¼ô¼¸ºÎͼÐΡ¢¼¸ºÎͼÐβî·Ö²Ù×÷¡¢¼¸ºÎͼÐκϲ¢²Ù×÷µÈ¶¼ÐèÒª´Ë½Ó¿Ú¡£
Boundary ·½·¨ÓÃÓÚ¼¸ºÎͼÐζÔÏóµÄ±ß½ç¡£PolygonµÄ¼¸ºÎ¶ÔÏóµÄBoundaryÊÇ×é³ÉËüµÄPolyline¼¸ºÎ¶ÔÏó£¬Polyline¼¸ºÎ¶ÔÏóµÄBoundaryÊÇ×é³ÉËüµÄ¶¥µãPoint¼¸ºÎ¶ÔÏ󣬶øPointµÄ¼¸ºÎ¶ÔÏóµÄBoundaryÊǿնÔÏó¡£
Buffer ÓÃÓÚ¼¯ºÏ¶ÔÏ󻺳åÇø·ÖÎöÍØÆË²Ù×÷£¬¸Ã·½·¨ÓÃÓÚ¸øÒ»¸ö¸ß¼¶¼¸ºÎ¶ÔÏó²úÉúÒ»¸ö»º³åÇø£¬ÎÞÂÛÊÇPolygon¡¢Polyline¡¢»¹ÊÇPoint£¬ËûÃǵĻº³åÇø¶¼ÊǾßÓÐÃæ»ýµÄ¼¸ºÎ¶ÔÏó¡£ Clip ÓÃÓÚ¶Ô¼¸ºÎ¶ÔÏó½øÐвüô¿Õ¼äÍØÆË²Ù×÷¡£Clip·½·¨¿ÉÓÃÒ»¸öEnvelope¶ÔÏó¶ÔÒ»¸ö¼¸ºÎ¶ÔÏó½øÐвüô£¬½á¹ûÊǼ¸ºÎ¶ÔÏó±»Envelope¶ÔÏóËù°üΧµÄ²¿·Ö¡£
ConstructUionÓÃÓÚ½«¶à¸öö¾Ù¶ÔÏóÓëµ¥¸ö¼¸ºÎ¶ÔÏóºÏ²¢Îªµ¥¸ö¼¸ºÎ¶ÔÏó¡£
ConvexHull ÓÃÓÚ¹¹½¨¼¸ºÎ¶ÔÏóµÄ͹¶à±ßÐΡ£ConvexHull·½·¨ÓÃÓÚ²úÉúÒ»¸ö¼¸ºÎͼÐεÄ×îСµÄ±ß¿ò͹¶à±ßÐΣ¨Ã»Óа¼Ãæ°üº¬¼¸ºÎͼÐεÄ×îС¶à±ßÐΣ©
Cut ÓÃÓÚÇиºÎ¶ÔÏ󣬲»Ö§³ÖGeometryBags¼¸ºÎ¶ÔÏó£¬Ëü¿ÉÒÔÖ¸¶¨Ò»ÌõÇиîÇúÏߺÍÒ»¸ö¼¸ºÎͼÐΣ¬¾¹ýÇиîÔËËãºó°Ñ¼¸ºÎͼÐηÖΪ×óÓÒÁ½²¿·Ö£¬×óÓÒÁ½²¿·ÖÊÇÏà¶ÔÇúÏߵķ½Ïò¶øÑԵġ£µãÓë¶àµã²»¿É±»·Ö¸î¡£PolylineºÍPolygonÖ»ÓÐÓëÇиîÇúÏßÏཻʱ²ÅÄÜÖ´ÐÐCut·½·¨¡£
Difference ÓÃÓÚ´ÓÒ»¸ö¼¸ºÎͼÐÎÖмõÈ¥ÆäÓëÁíÒ»¸öͼÐÎÏཻµÄ²¿·Ö£¬²úÉúÁ½¸ö¼¸ºÎ¶ÔÏóµÄ²î¼¯¡£
Intersection·½·¨ÓÃÓÚÁ½¸öͬγ¶È¼¸ºÎ¶ÔÏóµÄ½»¼¯²¿·Ö¡£ SimplifyÓÃÓÚʹ¼¸ºÎ¶ÔÏóÍØÆËÒ»Ö¡£
SymmetricDifference¶Ô³Æ²î·Ö¿É½«Á½¸ö¼¸ºÎͼÐεIJ¢¼¯²¿·Ö¼õÈ¥Á½¸ö¼¸ºÎͼÐν»¼¯µÄ²¿·Ö¡£
¿ª·¢ÊµÀý
Ò»¡¢ Ó¥ÑÛ¹¦ÄܵÄʵÏÖ£º
·ÖÎö£ºÓ¥ÑÛͼµÄ²Ù×÷Ö÷ÒªÓÉÒÔϼ¸¸ö¶¯×÷£¬µ±ÔÚÒ»¸ö¿Ø¼þÖÐÒÆ¶¯Ò»·ùͼµÄʱºòÁíÒ»¿Ø¼þÖеÄͼҲ·¢Éú±ä»¯£¬µ±ÔÚÖ÷¿Ø¼þÖÐÖØÐ¼ÓÔØÒ»·ùͼµÄʱºò£¬ÁíÍâÒ»¸ö¿Ø¼þµÄͼҲ·¢ÉúÏàÓ¦µÄ±ä»¯£¬Í¬Ê±ÎÒÃÇÔÚÄñĿؼþÖмÓÈëÒ»ºìÉ«±ß¿ò£¬×¢ÒâÕâ¸öÆäʵÊÇÒ»¸öÃæ£¬Ö»ÊÇÌî³äµÄÑÕÉ«ÊÇ͸Ã÷µÄ¶øÒÑ¡£Í¨¹ý·ÖÎöÎÒÃÇÖªµÀ£¬ÎÒÃÇÒªÌí¼ÓÁ½¸öMapControl¿Ø¼þ£¬Ãû×Ö·Ö±ðÊÇaxMapControl1ºÍaxMapControl2£¬ÆäÖÐaxMapControl1ΪÖ÷ͼ£¬¶øaxMapControl2ΪÄñî«Í¼¡£
·½·¨£º²½ÖèÒ»£º¶ÔÓÚÃû³ÆÎªaxMapControl1µÄMapControl¿Ø
¼þ£¬Ö»ÐèÒªÔÚaxMapControl1µÄOnExtentUpdatedºÍOnMapReplacedÖзֱðÌí¼ÓÒÔÏ´úÂ룺
private void axMapControl1_OnExtentUpdated(object sender£¬ IMapControlEvents2_OnExtentUpdatedEvent e) {
// µÃµ½Ð·¶Î§
IEnvelope pEnvelope = (IEnvelope)e.newEnvelope;
IGraphicsContainer pGraphicsContainer = axMapControl2.Map as IGraphicsContainer; IActiveView pActiveView = pGraphicsContainer as IActiveView; //ÔÚ»æÖÆÇ°£¬Çå³ýaxMapControl2ÖеÄÈκÎͼÐÎÔªËØ pGraphicsContainer.DeleteAllElements();
IRectangleElement pRectangleEle = new RectangleElementClass(); IElement pElement = pRectangleEle as IElement; pElement.Geometry = pEnvelope;
//ÉèÖÃÓ¥ÑÛͼÖеĺìÏß¿ò
IRgbColor pColor = new RgbColorClass(); pColor.Red = 255; pColor.Green = 0; pColor.Blue = 0;
pColor.Transparency = 255;
//²úÉúÒ»¸öÏß·ûºÅ¶ÔÏó
ILineSymbol pOutline = new SimpleLineSymbolClass();
pOutline.Width = 3; µÄÊôÐÔ
IFillSymbol pFillSymbol = new SimpleFillSymbolClass(); pFillSymbol.Color = pColor; pFillSymbol.Outline = pOutline;
IFillShapeElement pFillShapeEle = pElement as IFillShapeElement; pFillShapeEle.Symbol = pFillSymbol;
pGraphicsContainer.AddElement((IElement)pFillShapeEle£¬ 0);
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics£¬ null£¬ null); }
private void axMapControl1_OnMapReplaced(object sender£¬ IMapControlEvents2_OnMapReplacedEvent e) {
if (axMapControl1.LayerCount > 0)