freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arcgis-engine二次開發(fā)——提高篇-資料下載頁

2025-04-07 05:07本頁面
  

【正文】 it接口來進行編輯狀態(tài)的管理,在需要對指定的工作空間進行編輯時,首先使用IWorkspaceEdit獲取該工作空間的數(shù)據(jù),然后使用StartEditing方法開始編輯狀態(tài),StartEditOperation方法打開具體編輯的操作,編輯完成后,使用StopEditOperation方法關(guān)閉編輯操作,使用StopEditing方法關(guān)閉編輯狀態(tài),完成編輯。在本例中,我們實現(xiàn)了新的點線面要素的創(chuàng)建和移動的功能,涉及到了比較復(fù)雜的鼠標(biāo)與地圖間的交互,這個功能的實現(xiàn)中,IDisplayFeedback是一個十分關(guān)鍵的接口,它具有涉及創(chuàng)建要素,移動要素、編輯節(jié)點等31個實現(xiàn)類,能夠?qū)崿F(xiàn)鼠標(biāo)與地圖交互中的事件的追蹤,返回新的幾何對象。本例的實現(xiàn),我們首先來添加一個編輯類,將涉及到的編輯的相關(guān)方法抽象到這個類中。在項目中添加“Edit”類。添加如下引用。using 。using 。using 。using 。using 。定義如下成員變量。 private bool mIsEditing。 //編輯狀態(tài) private bool mHasEditing。 //是否編輯 private IFeatureLayer mCurrentLayer。 //當(dāng)前編輯圖層 private IWorkspaceEdit mWorkspaceEdit。 //編輯工作空間 private IMap mMap。 //地圖 private IDisplayFeedback mDisplayFeedback。 //用于鼠標(biāo)與控件進行可視化交互 private IFeature mPanFeature。 //移動的要素帶參數(shù)的構(gòu)造函數(shù)和默認構(gòu)造函數(shù)如下: public Edit(IFeatureLayer editLayer, IMap map) { mCurrentLayer = editLayer。 = map。 } /// summary /// 默認構(gòu)造函數(shù) /// /summary public Edit() { }添加編輯狀態(tài)相關(guān)屬性和方法。 /// summary /// 返回編輯狀態(tài) /// /summary /// returns/returns public bool IsEditing() { return mIsEditing。 } /// summary /// 是否編輯 /// /summary /// returns/returns public bool HasEdited() { return mHasEditing。 } /// summary /// 開始編輯 /// /summary public void StartEditing() { //獲取要素工作空間 IFeatureClass pFeatureClass = 。 IWorkspace pWorkspace = (pFeatureClass as IDataset).Workspace。 mWorkspaceEdit = pWorkspace as IWorkspaceEdit。 if (mWorkspaceEdit == null) return。 //開始編輯 if (!()) { (true)。 mIsEditing = true。 } } /// summary /// 保存編輯 /// /summary /// param name=savetrue時保存,false時不保存/param public void SaveEditing(bool save) { if (!save) { (false)。 } else if (save amp。amp。 mHasEditing amp。amp。 mIsEditing) { (true)。 } mHasEditing = false。 } /// summary /// 停止編輯 /// /summary /// param name=save/param public void StopEditing(bool save) { (save)。 mIsEditing = false。 }下面添加鼠標(biāo)與地圖的交互事件,包括創(chuàng)建要素時鼠標(biāo)的MouseDown事件、MouseMove事件和DoubleClick事件,移動要素時鼠標(biāo)的PanMouseDown事件、MouseMove事件和MouseUp事件。創(chuàng)建要素時首先在MouseDown事件中獲取鼠標(biāo)點擊的點位,若圖層為點圖層,則直接創(chuàng)建要素,若為線圖層或面圖層,則作為第一個節(jié)點,以后每次點擊都會添加一個節(jié)點,直到雙擊鼠標(biāo)完成要素的創(chuàng)建。創(chuàng)建要素時的MouseDown事件在這里定義為CreateMouseDown。代碼如下: public void CreateMouseDown(double mapX, double mapY) { //鼠標(biāo)點擊位置 IPoint pPoint = new PointClass()。 (mapX, mapY)。 INewLineFeedback pNewLineFeedback。 INewPolygonFeedback pNewPolygonFeedback。 //判斷編輯狀態(tài) if (mIsEditing) { //針對線和多邊形,判斷交互狀態(tài),第一次時要初始化,再次點擊則直接添加節(jié)點 if(mDisplayFeedback==null) { //根據(jù)圖層類型創(chuàng)建不同要素 switch () { case : //添加點要素 AddFeature(pPoint)。 break。 case : mDisplayFeedback = new NewLineFeedbackClass()。 //獲取當(dāng)前屏幕顯示 = ((IActiveView)).ScreenDisplay。 pNewLineFeedback = mDisplayFeedback as INewLineFeedback。 //開始追蹤 (pPoint)。 break。 case : mDisplayFeedback = new NewPolygonFeedbackClass()。 = ((IActiveView)).ScreenDisplay。 pNewPolygonFeedback = mDisplayFeedback as INewPolygonFeedback。 //開始追蹤 (pPoint)。 break。 } } else //第一次之后的點擊則添加節(jié)點 { if (mDisplayFeedback is INewLineFeedback) { pNewLineFeedback = mDisplayFeedback as INewLineFeedback。 (pPoint)。 } else if (mDisplayFeedback is INewPolygonFeedback) { pNewPolygonFeedback = mDisplayFeedback as INewPolygonFeedback。 (pPoint)。 } } } }MouseMove事件在創(chuàng)建要素時和移動要素時可以共用,代碼如下: public void MouseMove(double mapX, double mapY) { if (mDisplayFeedback == null) return。 //獲取鼠標(biāo)移動點位,并移動至當(dāng)前點位 IPoint pPoint = new PointClass()。 (mapX, mapY)。 (pPoint)。 }創(chuàng)建要素時的DoubleClick事件代碼如下: public void CreateDoubleClick(double mapX, double mapY) { if (mDisplayFeedback == null) return。 IGeometry pGeometry=null。 IPoint pPoint = new PointClass()。 (mapX, mapY)。 INewLineFeedback pNewLineFeedback。 INewPolygonFeedback pNewPolygonFeedback。 IPointCollection pPointCollection。 //判斷編輯狀態(tài) if (mIsEditing) { if (mDisplayF
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1