




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 ArcGIS Engine開(kāi)發(fā)自定義圖層類(lèi)型3ArcGIS Engine開(kāi)發(fā)取得ArcMap文檔縮略圖3ArcSDE中直接取得圖層幾何類(lèi)型4ArcGIS Server常見(jiàn)問(wèn)題之一5IFeatureLayer.DataSourceType Property C#11IQueryFilter接口中的SubFileds屬性的使用12用程序?qū)崿F(xiàn)從帶高程的點(diǎn)數(shù)據(jù)到等高線的轉(zhuǎn)換13空間查詢的實(shí)現(xiàn)14創(chuàng)建帶Z值的Feature15在AO或者ENGINE中為SHAPEFILE添加SPATIAL INDEX19把一個(gè)圖層ILayer數(shù)據(jù)COPY到三維Scenecontrol控件中(進(jìn)行相
2、關(guān)操作)20vb + arcgis engine 用raster生成等值線源碼22關(guān)于IIdentify定義時(shí)只能找到面而不能找到點(diǎn)和線的問(wèn)題31使用ArcGIS Engine來(lái)實(shí)現(xiàn)地圖的點(diǎn)擊查詢并閃爍32空間查詢的實(shí)現(xiàn)34如何在同一圖層中做緩沖選擇35怎么樣使用Engine來(lái)保存Mxd文件(幾種情況)?36在ArcGIS Engine開(kāi)發(fā)時(shí)如何改變標(biāo)注字段37對(duì)shape文件添加字段38在ArcGisEngine 開(kāi)發(fā)中如何在Toolbar控件上添加Combobox等其他控件40自相交對(duì)象的處理41在圖中加入采集點(diǎn)42創(chuàng)建拓?fù)漕?lèi)、投影等等。43如何解決shapefile和coverage出現(xiàn)
3、無(wú)法導(dǎo)入SDE數(shù)據(jù)庫(kù)現(xiàn)象?44怎么顯示布局控件的標(biāo)尺45把shapefile polygons轉(zhuǎn)為polylines45為什么不能編輯raster屬性表或添加字段?46使用ArcGIS將GTOPO30 DEM數(shù)據(jù)轉(zhuǎn)換到柵格數(shù)據(jù)47旋轉(zhuǎn)地圖47給geodatabase或shapefile定義一個(gè)投影49ArcGIS Engine中Undo、Redo命令的使用50創(chuàng)建帶Z值的Feature50在Ao中如何通過(guò)查詢獲得ITable53關(guān)于多個(gè)實(shí)體聯(lián)合(union)的使用54在Ao中如何通過(guò)查詢獲得ITable55在Visual Basic中實(shí)現(xiàn)ICommand接口56使用ArcObjects程序按照
4、頂點(diǎn)來(lái)分割一條線58使用AO加載Raster Catalog61把不同層的幾次的選擇結(jié)果加到一個(gè)選擇集中61如何為ArcObjects擴(kuò)展出"GroupRenderer"的效果來(lái)?62在AO或者ENGINE中為SHAPEFILE添加SPATIAL INDEX68如何ArcObject的環(huán)境中用程序?qū)崿F(xiàn)3D環(huán)境中的查詢功能69截取任意圍地圖區(qū)域71使用AO新增記錄的3種方法74如何在ArcEngine環(huán)境中的SceneControl中實(shí)現(xiàn)查詢功能75刪除FeatureClass中滿足一定條件的Feature問(wèn)題與解決辦法!77創(chuàng)建孤立的要素類(lèi)和數(shù)據(jù)集中的要素類(lèi)78SUM Co
5、lor of vertex symbols in edit80要素動(dòng)態(tài)跟蹤的算法83同時(shí)閃爍滿足條件的記錄n次86旋轉(zhuǎn)地圖89AO代碼Display)94在arcEngine中標(biāo)注字段屬性數(shù)據(jù)99IfeatureSelection:SelectFeatures方法介紹100AO基本函數(shù)集合(很多函數(shù)功能)103AO畫(huà)一個(gè)多邊形110AO畫(huà)帶節(jié)點(diǎn)的線111AO計(jì)算Polygon的面積112AO緩沖區(qū)查詢113AO畫(huà)一個(gè)圓114AO查詢被選中的實(shí)體116AO繪制帶節(jié)點(diǎn)橡皮筋線條117AO繪制橡皮筋多邊形123AO繪制緩沖區(qū)126vb+ao鷹眼圖代碼127如何利用ao編輯shape文件的某個(gè)屬性的屬
6、性值129MO作為B/S客戶端控件的開(kāi)發(fā)130MO作為B/S服務(wù)器端的開(kāi)發(fā)133兩點(diǎn)間畫(huà)線135創(chuàng)建Personal Geodatabase136ArcObject學(xué)習(xí)的重要工具Object Model Diagrams137ArcObject學(xué)習(xí)的重要工具Object Model Diagrams (二)139AO開(kāi)發(fā)感想141AO中的組件庫(kù)(1)143ArcGIS Engine開(kāi)發(fā)自定義圖層類(lèi)型用ArcGIS Engine開(kāi)發(fā)的一個(gè)特別就是面向接口編程,每組接口代表了對(duì)象在某個(gè)方面的特性,表現(xiàn)為一個(gè)方法、屬性或事件。要定義自己的圖層類(lèi)型,實(shí)際上只需要實(shí)現(xiàn)ILayer接口就可以了。該接口的主
7、要方法或?qū)偕ǎ簆ublic IEnvelopeAreaOfInterest get;public void Draw ( esriDrawPhaseDrawPhase, IDisplayDisplay, ITrackCanceltrackCancel)public void SpatialReference set;public string get_TipText ( doublex,
8、; doubley, doubleTolerance);等等,請(qǐng)直接查閱幫助。但實(shí)現(xiàn)了該接口,圖層只是能加入以地圖中,并顯示出來(lái)而已。如果你要自定義的圖層類(lèi)型是矢量要素的話,最好直接實(shí)現(xiàn)IFeatureLayer。由于IFeatureLayer從ILayer繼承而來(lái),所以也包含了上述方法或?qū)傩浴M瑫r(shí)還可以支持選擇,查詢等操作了。實(shí)現(xiàn)了IFeatureLayer,還不能支持圖層渲染功能。要想支持圖層渲染,得實(shí)現(xiàn)IGeoFeatureLayer接口,該接口從IFeatureLayer繼承而來(lái),所以也包含IFeatureLayer所
9、支持的所有方法屬性。如果要支持屬性表功能的話,得實(shí)現(xiàn)ITable接口。如果希望圖層信息能保存到MXD文檔中,得實(shí)現(xiàn)IPersistStream接口。由此可見(jiàn),在ArcGIS Engine中,要實(shí)現(xiàn)自定義圖層類(lèi)型,并不是一件不可能的事。雖然會(huì)比較煩瑣,但思路卻非常清晰。本人就通過(guò)這種思路設(shè)計(jì)了一種組合圖層,可以同時(shí)包含點(diǎn)線面多種圖形,但在TOCControl中只表現(xiàn)為一個(gè)圖層。當(dāng)然,這個(gè)工作要簡(jiǎn)單輕松一些,但還是富有樂(lè)趣的ArcGIS Engine開(kāi)發(fā)取得ArcMap文檔縮略圖ArcObjects提供了一個(gè)IMapDocument接口,可以實(shí)現(xiàn)對(duì)ArcMap文檔的讀寫(xiě)操作。該接品其中有一個(gè)屬性是
10、Thumbnail。當(dāng)我們保存文檔,使用了保存縮略選項(xiàng)時(shí),會(huì)在文檔中保存一個(gè)縮略圖。我們可以通過(guò)Thumbnail來(lái)讀取這個(gè)縮略圖。Thumbnail的類(lèi)型是stdole.IPicture,所以要使用它,首先要引用stdole。private void System.Drawings.Image GetThumbnail(IMapDocument pMapDoc) return System.Drawing.Image.FromHbitmap(IntPtr)(pMapDoc.Thumbnail.Handle);一行代碼搞定,哈哈。本來(lái)就很簡(jiǎn)單嘛。
11、好久沒(méi)寫(xiě)了。先寫(xiě)這么一點(diǎn)吧。ArcSDE中直接取得圖層幾何類(lèi)型 要取得SDE圖層要素類(lèi)型,一個(gè)方法就是打開(kāi)該圖層,然后通過(guò)取得DataSetType屬性和FeatureType屬性來(lái)判斷,但這樣做效率比較低。能不能通過(guò)的系統(tǒng)表來(lái)獲得呢,答案是可以的。 要有到兩系統(tǒng)表:GDB_OBJECTCLASSES和GDB_FEATURECLASSES。 其中
12、GDB_OBJECTCLASSES表中相關(guān)字段有:ID、Name,GDB_FEATURECLASSES表的相關(guān)字段是:ObjectClassID、FeatureType、GeometryType,兩個(gè)表的關(guān)聯(lián)關(guān)系是:GDB_OBJECTCLASSES.ID=GDB_FEATURECLASSES.ObjectClassID。通過(guò)這兩個(gè)表的關(guān)聯(lián),就可以取得指定圖層要素類(lèi)型了。 我們可以先通過(guò)SQL語(yǔ)句根據(jù)圖層名稱來(lái)獲取GDB_FEATURECLASSES表中字段FeatureType、GeometryType的值,
13、然后將其轉(zhuǎn)化為對(duì)應(yīng)的要素類(lèi)型。轉(zhuǎn)換關(guān)系請(qǐng)參照下面的代碼:public enum GeoTypePoint,Line,Polygon,Anno,Raster,AttrTable,Unknown;public static GeoType GetGeoType(object GeometryType,object FeatureType) &
14、#160; if (GeometryType = DBNull.Value) return GeoType.AttrTable; else if(GeometryType.ToStri
15、ng() = "2") return GeoType.Point;
16、60; else if (GeometryType.ToString() = "3")
17、 return GeoType.Line; else if(GeometryType.ToString() = "4")
18、160; if (FeatureType.ToString() = "1") return GeoT
19、ype.Polygon; else if (FeatureType.ToString() = "11") ret
20、urn GeoType.Anno; else if (FeatureType.ToString() = "14")
21、; return GeoType.Raster; else return GeoType.Un
22、known; else
23、160; return GeoType.Unknown; 通過(guò)這種方式,速度很快,而且可以一次讀出所有圖層的圖層基本信息和要素類(lèi)型,速度極快。如果這些信息要經(jīng)常使用的話,可以保存到一個(gè)哈希表中,這
24、樣只用連接一次數(shù)據(jù)庫(kù)就了。 ArcGIS Server常見(jiàn)問(wèn)題之一摘自ESRI,有些容是有限制的,要會(huì)員才能看到。目前關(guān)于ArcGIS Server開(kāi)發(fā)的資料非常少,就這么一點(diǎn)文檔,還要限制,不能讓大家共享,實(shí)在是罪過(guò)。現(xiàn)在我貼出來(lái),希望這些資料對(duì)一起學(xué)習(xí)AGS的朋友有所幫助。錯(cuò)誤描述在ArcCatalog中,當(dāng)成功的創(chuàng)建了server object之后,server object不能被預(yù)覽。ArcCatalog顯示下面的錯(cuò)誤信息:“你的選擇不能在當(dāng)前視圖中顯示.”導(dǎo)致原因server屬性中被指定的輸出值和 位
25、置可能不正確。解決辦法所有的創(chuàng)建的ArcGIS Server Objects需要被停止。1 在ArcCatalog中,右擊已經(jīng)添加的ArcGIS Server,并選擇Server屬性。2 在目錄頁(yè)中,選中已經(jīng)添加的輸出目錄并點(diǎn)擊編輯。3 輸出目錄字段應(yīng)該指向一個(gè)有效的目錄,比如 C:ArcGISOutput。如果一個(gè)虛擬目錄已經(jīng)被指定,確認(rèn)它是有效的,并且看上去和下面的格式一樣,<servername>/output4 如果有錯(cuò)請(qǐng)更改,然后重新創(chuàng)建server object來(lái)確認(rèn)更改是否有效。 錯(cuò)誤描述當(dāng)在Visual Studio.NET 2003上使用ArcGIS S
26、erver .NET 的ADF模板創(chuàng)建一個(gè)項(xiàng)目時(shí),返回如下錯(cuò)誤信息:“在服務(wù)器<主機(jī)名>上的Web站點(diǎn)不可用(Web Site on server <host> is not available)”導(dǎo)致原因該模板包含了調(diào)用'localhost'這一URL的屬性。如果在IIS中禁用了本地主機(jī)的服務(wù),則顯示該錯(cuò)誤信息。禁用本地服務(wù)可能是因?yàn)槟愕腤eb站點(diǎn)已經(jīng)為其指定了一個(gè)IP地址或者是因?yàn)榘踩矫娴目紤]。解決辦法啟用對(duì) localhost的訪問(wèn)決定于您安裝的是哪種類(lèi)型的操作系統(tǒng),是服務(wù)器還是非服務(wù)器。對(duì)于非服務(wù)器的操作系統(tǒng):1.點(diǎn)擊Internet信息服務(wù)控
27、制臺(tái),右鍵選擇默認(rèn)站點(diǎn)的屬性,打開(kāi)屬性對(duì)話框,并選擇標(biāo)簽頁(yè)。2.修改IP地址欄為"(全部未分配)"。3.重啟IIS。在IE瀏覽器中瀏覽剛剛啟用的 localhost 服務(wù),在Visual Studio .NET 2003 中用模板創(chuàng)建項(xiàng)目,現(xiàn)在應(yīng)該是成功的了。對(duì)于Windows Server操作系統(tǒng): 1. 在Internet信息服務(wù)控制臺(tái)上創(chuàng)建一個(gè)新的Web站點(diǎn)。2. 為其分配IP地址:。意味著只能在本地計(jì)算機(jī)上啟用該站點(diǎn)。3. 瀏覽Web站點(diǎn)的根目錄,比如C:Inetputwwwroot 。此時(shí)在Visual Studio .NET 2003 中用模板
28、創(chuàng)建項(xiàng)目應(yīng)該沒(méi)有問(wèn)題。錯(cuò)誤描述當(dāng)啟動(dòng)一個(gè)服務(wù)對(duì)象時(shí),出現(xiàn)下述錯(cuò)誤信息:“在機(jī)器XXX上創(chuàng)建Server 環(huán)境(Context)失敗。拒絕訪問(wèn)output文件夾?!睂?dǎo)致原因ArcGIS Server Object Container的必須擁有虛擬文件夾的寫(xiě)權(quán)限。例如虛擬文件夾為: c:inetpubwwwroottemp解決辦法執(zhí)行如下步驟:右鍵點(diǎn)擊虛擬文件夾如: c:inetpubwwwroottemp 1.選擇屬性->安全標(biāo)簽頁(yè). 2.添加并賦予寫(xiě)權(quán)限,使其可以讀寫(xiě)圖片. 3.點(diǎn)擊OK,關(guān)閉屬性對(duì)話框.錯(cuò)誤描述使用下面的代碼,來(lái)進(jìn)行使用字體中的符號(hào)進(jìn)行點(diǎn)要素渲染的時(shí)候,會(huì)出現(xiàn)地圖消失的
29、問(wèn)題。下面的代碼是用來(lái)生成需要在渲染過(guò)程中使用的點(diǎn)符號(hào)的,使用的是宋體中index為21的字作為符號(hào)。private static ICharacterMarkerSymbolGetMarkerSymbol(IServerContext pServerContext,PowerNet.GISCommon.SymbolClass pSymbolClass)System.Drawing.Font drawFont = newSystem.Drawing.Font("宋體", 21);ICharacterMarkerSymbol charMarker=pServerContext
30、.CreateObject("esriDisplay.CharacterMarkerSymbol") asICharacterMarkerSymbol;charMarker.Font = (stdole.IFontDisp)OLE.GetIFontDispFromFont(drawFont);charMarker.CharacterIndex = pSymbolClass.CharacterIndex;IRgbColor pRGB = pServerContext.CreateObject("esriDisplay.RgbColor") as IRgbC
31、olor;pRGB.Red=pSymbolClass.SymbolColorR;pRGB.Green=pSymbolClass.SymbolColorG;pRGB.Blue=pSymbolClass.SymbolColorB;charMarker.Color = pRGB as IColor;charMarker.Size = pSymbolClass.SymbolSize;return charMarker;導(dǎo)致原因使用ArcGIS Engine進(jìn)行開(kāi)發(fā)時(shí),對(duì)于點(diǎn)要素類(lèi),是可以使用指定字體中的符號(hào)作為渲染的符號(hào)的,但是在arcgis server的應(yīng)用中來(lái)實(shí)現(xiàn)這個(gè)過(guò)程,就稍微有點(diǎn)不同,導(dǎo)致的
32、原因還是本地對(duì)象和遠(yuǎn)程對(duì)象進(jìn)行了混用?對(duì)于ao對(duì)象,可能大家都已經(jīng)有這個(gè)概念,就是一般不在本地創(chuàng)建對(duì)象,但是對(duì)于其它的對(duì)象,比如.net中的對(duì)象,可能就沒(méi)有太注意了,所以才導(dǎo)致了這個(gè)問(wèn)題的出現(xiàn)。解決辦法這個(gè)問(wèn)題的解決辦法是這樣的,為了避免在程序中使用下面這句代碼:System.Drawing.Font drawFont = newSystem.Drawing.Font(pSymbolClass.FontSymbolName, 21);可以采用先在*.Style文件中把符號(hào)都配好,然后轉(zhuǎn)成*.ServerStyle文件,然后使用下面的代碼得到相應(yīng)的符號(hào):private IMarkerSymbol
33、 createSymbol(IServerContext pServerContext,string index)IStyleGallery pSGallery = pServerContext.CreateObject("esriDisplay.ServerStyleGallery") as IStyleGallery ;IStyleGalleryStorage pSGStorage = pSGallery as IStyleGalleryStorage ;pSGStorage.TargetFile = "D:xjw.ServerStyle"pSGSt
34、orage.AddFile ("D:xjw.ServerStyle");IEnumStyleGalleryItem pEnumGItem = pSGallery.get_Items("MarkerSymbols","D:xjw.ServerStyle",index);pEnumGItem.Reset ();IStyleGalleryItem pSGItem = pEnumGItem.Next();IMarkerSymbol pMSymbol = pSGItem.Item as IMarkerSymbol;IRgbColor pRGB
35、= pServerContext.CreateObject("esriDisplay.RgbColor") as IRgbColor;pRGB.Red=255;pRGB.Green =0;pRGB.Blue=0;pMSymbol.Color=pRGB;pMSymbol.Size=18;pEnumGItem=null;pSGItem=null;return pMSymbol;錯(cuò)誤描述這個(gè)錯(cuò)誤可能發(fā)生在.net中的ArcGIS Primary Interop Assemblies(PIA)。在錯(cuò)誤信息中的CLSID可能會(huì)變化:"COM object with CLSI
36、D XXXX is either not valid or not registered"導(dǎo)致原因在ArcGIS安裝中選擇安裝.NET的支持,PIAs就會(huì)為所有的ArcGIS庫(kù)而安裝上。當(dāng)在嘗試使用一個(gè)對(duì)象庫(kù)的PIA時(shí),而這個(gè)對(duì)象庫(kù)根本就沒(méi)有安裝時(shí),錯(cuò)誤就會(huì)發(fā)生,因?yàn)镃om對(duì)象不能被初始化。例如,3DAnalyst擴(kuò)展模塊沒(méi)有被安裝,而嘗試使用ESRI.ArcGIS.Analyst3D命名空間中的對(duì)象,使用如下代碼:ESRI.ArcGIS.Analyst3D.IAnimationTrack aTrack = new ESRI.ArcGIS.Analyst3D.AnimationTra
37、ckClass();一個(gè)錯(cuò)誤就會(huì)發(fā)生:"Error number -2147221164: COM object with CLSID 4FEDC9CB-A7BE-11D5-B2A0-00508BCDDE28 is either not valid or not registered."解決辦法編程只能使用安裝了的對(duì)象庫(kù)。為了開(kāi)發(fā)使用一個(gè)特殊的庫(kù),那就需要重新安裝ArcGIS產(chǎn)品,確保所需的擴(kuò)展模塊都被安裝,以與所有的.NET的支持選項(xiàng)。額外的許可會(huì)被需要。1 識(shí)別使用的對(duì)象,以與這些對(duì)象所屬的命名空間。2 識(shí)別命名空間所屬的產(chǎn)品。例如,為了使用ESRI.ArcGIS.An
38、alyst3D命名空間中的對(duì)象,在開(kāi)發(fā)幫助中瀏覽庫(kù)總體說(shuō)明那一頁(yè)。會(huì)有注解說(shuō)明這個(gè)命名空間是有ArcGIS Engine產(chǎn)品的3D擴(kuò)展模塊,ArcGIS desktop 3D擴(kuò)展模塊,以與ArcGIS Server的3D擴(kuò)展模塊支持。3 重新安裝產(chǎn)品,確保所需的擴(kuò)展模塊得到安裝,且保證.Net支持選項(xiàng)被選中。錯(cuò)誤描述當(dāng)使用ArcGIS開(kāi)發(fā)者控件開(kāi)發(fā)應(yīng)用程序、控件拖放于窗體上的時(shí)候,出現(xiàn)以下錯(cuò)誤信息:"該控件需要一個(gè)ESRI Designer 許可。請(qǐng)從工程中移除該控件。"導(dǎo)致原因出現(xiàn)這個(gè)信息是因?yàn)锳rcGIS Engine Developer Kit 這個(gè)產(chǎn)品未在機(jī)器上安裝
39、并授權(quán)。ArcGIS Desktop 安裝了以下控件: -MapControl -PageLayoutControl -GlobeControl -ReaderControl -SceneControl -TOCControl -ToolbarControl ArcGIS Desktop 許可僅允許使用MapControl 和 PageLayoutControl 進(jìn)行開(kāi)發(fā)或設(shè)計(jì)應(yīng)用程序。剩下的其它控件許可給ArcGIS Engine,并僅能在ArcGIS Engine Developer Kit 已安裝并授權(quán)時(shí)用于開(kāi)發(fā)。解決辦法購(gòu)買(mǎi)ArcGIS Engine Developer Kit 產(chǎn)品,
40、并在機(jī)器上授權(quán)以下任意控件: -GlobeControl -ReaderControl -SceneControl -TOCControl -ToolbarControl 有關(guān)如何使用這些控件的詳細(xì)信息,以與哪些控件需要對(duì)應(yīng)哪些許可,請(qǐng)參考ArcGIS Developer Help。例如, 'TOCControl CoClass' 幫助主題提到,該控件只在有ArcGIS Engine 產(chǎn)品時(shí)才可用。錯(cuò)誤描述安裝出錯(cuò)1935當(dāng)安裝ArcGIS Server, ArcGIS Desktop, including ArcView, ArcEditor, ArcInfo; or Arc
41、IMS, 都可能發(fā)生如下錯(cuò)誤: "Error 1935: An error occured during the installation of assembly component 303994BA-6487-47AE-AF1D-7AF6088EEBDB. HRESULT: -2147024894." 之后點(diǎn)擊'OK' 安裝回滾退出.導(dǎo)致原因?qū)е略蜻@個(gè)錯(cuò)誤發(fā)生在系統(tǒng)安裝(Microsoft XML Parser 4 )更新.這現(xiàn)同樣的錯(cuò)誤信息將發(fā)生在試圖安裝(Microsoft XML Parser 4.0)的時(shí)候; 這也可能修改,但是經(jīng)常會(huì)因?yàn)槠渌a(chǎn)品
42、的安裝而影響系統(tǒng)文件破壞。解決辦法步驟:1. 盡可能停止一些后臺(tái)程序,例如adware 或 spyware. 有可能也停止Adwatch,在機(jī)器上刪除所有的 adware.; 2. 盡可能停止一些Windows服務(wù),控制面板 >管理員工具 >服務(wù);3. 檢查Internet Explorer 6.0的安裝. 檢驗(yàn)Microsoft service 安裝包和安裝更新; 4. 在安裝產(chǎn)品前請(qǐng)先安裝Microsoft XML 4.0 SP2,這有可能下載其相關(guān)聯(lián)的一部分; 5. 接著安裝ESRI軟件產(chǎn)品在第4步安裝成功;錯(cuò)誤描述在操作系統(tǒng)是Windows XP SP2、CPU為 AMD
43、Athlon 64系列或 Pentium 4 和 Celeron-D 的機(jī)器上安裝ArcGIS 9.0時(shí),出現(xiàn)1904錯(cuò)誤,系統(tǒng)無(wú)法注冊(cè)一些 dll 文件。導(dǎo)致原因在Windows XP SP2 中, DEP(數(shù)據(jù)執(zhí)行保護(hù))選項(xiàng)默認(rèn)情況下是打開(kāi)的, AMD和Intel新的CUP系列中包含這個(gè)選項(xiàng)。數(shù)據(jù)執(zhí)行保護(hù)是一套硬件和軟件技術(shù)用于執(zhí)行對(duì)存的額外檢查,以保護(hù)電腦遭受惡意代碼的破壞。解決辦法方法一:移除Windows XP的SP2,然后安裝ArcGIS 9.0。方法二:關(guān)閉DEP(數(shù)據(jù)執(zhí)行保護(hù)),安裝ArcGIS 9.0,安裝完再激活數(shù)據(jù)執(zhí)行保護(hù)。具體如下:1. 以管理員權(quán)限登陸Windows
44、XP。 2. 鼠標(biāo)點(diǎn)擊“我的電腦”,選擇“屬性”菜單 3. 點(diǎn)擊“高級(jí)”頁(yè)。 4. 選擇“啟動(dòng)與恢復(fù)”下的“設(shè)置”按鈕。 5. 選擇默認(rèn)操作系統(tǒng),如下: "Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn 6. 點(diǎn)擊“編輯” 按鈕打開(kāi)boot.ini 文件,將其中的“”/NoExecute=OptIn”改為“/NoExecute=AlwaysOff”。 7. 保存文件,重新啟動(dòng)計(jì)算機(jī)。8. 安裝ArcGIS,此時(shí)應(yīng)該就不會(huì)出現(xiàn)1904錯(cuò)誤了 9. 安裝完ArcGIS以后,將 boot.ini 文件
45、設(shè)置改回來(lái),以重新激活數(shù)據(jù)執(zhí)行保護(hù)的安全選項(xiàng)。IFeatureLayer. Property C#See AlsoIFeatureLayer InterfaceLanguage· C#· Visual Basic .NET· Show AllData source type. Visual Basic .NETPublic Property As StringC#public string get; set;Product AvailabilityAvailable with ArcGIS Engine, ArcGIS Desktop, an
46、d ArcGIS Server.DescriptionDescribes the type of data referenced by the feature layer. In ArcMap and ArcCatalog this description appears on the layer's properties dialog on the Source tab after "Data Type:"RemarksBy default, the for a layer matches the value returned by IDataset:Catego
47、ry when you access the layer's feature class through IDataset. You can set a layer's to any string.Here is a list of default values for for common feature layer types:Layer TypeValuePersonal Geodatabase"Personal Geodatabase Feature Class"SDE"SDE Feature Class"Shapefile&qu
48、ot;Shapefile Feature Class"ArcInfo or PC ArcInfo Coverage (annotation)"Annotation Feature Class"ArcInfo or PC ArcInfo Coverage (point)"Point Feature Class"ArcInfo or PC ArcInfo Coverage (line)"Arc Feature Class"ArcInfo or PC ArcInfo Coverage (polygon)"Polygon
49、Feature Class"Edge"StreetMap Feature Class"CAD (annotation)"CAD Annotation Feature Class"CAD (point)"CAD Point Feature Class"CAD (line)"CAD Polyline Feature Class"CAD (polygon)"CAD Polygon Feature Class"把這個(gè)圖層強(qiáng)制轉(zhuǎn)換成IFeatuerLayer,如果轉(zhuǎn)換失敗就不是shape幾何類(lèi)型
50、圖層。如IFeatureLayer iFeatureLyr = iLyr as IFeatureLayer;if(iFeatureLyr = null).IQueryFilter接口中的SubFileds屬性的使用通過(guò)一定的屬性條件來(lái)查詢數(shù)據(jù)是在處理數(shù)據(jù)中經(jīng)常會(huì)用到的。當(dāng)表中的字段非常多,而且很多的屬性字段對(duì)于這一次查詢而言是多余的,因此帶著全部字段返回只會(huì)減慢查詢的速度,如果想返回符合條件的數(shù)據(jù),并且只需要帶其中某幾個(gè)自己就可以,那么可以通過(guò)SubFields來(lái)指定需要的返回字段。下面的是例子代碼與注釋。注意:在取回來(lái)的要素的FieldCount數(shù)量還是和原來(lái)表的字段一樣多,但是沒(méi)有在sub
51、fields中指定過(guò)的字段的值是沒(méi)有返回的。過(guò)程描述Dim pFLayer As IFeatureLayerDim pLayer As ILayerSet pLayer = MapControl1.Layer(0)Set pFLayer = pLayerDim pFeatureClass As IFeatureClassSet pFeatureClass = pFLayer.FeatureClassDim pQueryFilter As IQueryFilterSet pQueryFilter = New QueryFilter'設(shè)置SubFields和查詢條件:pQueryFilte
52、r.SubFields = "STATE_NAME,STATE_ABBR"pQueryFilter.WhereClause = "STATE_NAME = 'California'"'進(jìn)行查詢:Dim pFeatureCursor As IFeatureCursorSet pFeatureCursor = pFeatureClass.Search(pQueryFilter, False)Dim pFeature As IFeatureSet pFeature = pFeatureCursor.NextFeatureDim pFie
53、lds As IFieldsSet pFields = pFeature.FieldsDebug.Print pFields.FieldCount用程序?qū)崿F(xiàn)從帶高程的點(diǎn)數(shù)據(jù)到等高線的轉(zhuǎn)換容摘要從高程點(diǎn)到等高線不是一步實(shí)現(xiàn)的,而是先把高程點(diǎn)先插值生成TIN,然后再?gòu)腡IN生成等高線。在從TIN到等高線的生成過(guò)程中8.3和9.0上還有點(diǎn)區(qū)別,請(qǐng)看代碼注釋。下面的是整個(gè)過(guò)程的代碼實(shí)例。過(guò)程描述'打開(kāi)高程點(diǎn)數(shù)據(jù)Dim pFeatureLayer As IFeatureLayerSet pFeatureLayer = MapControl1.Map.Layer(0)If pFeatureLaye
54、r Is Nothing Then Exit SubDim pFeatureClass As IFeatureClassSet pFeatureClass = pFeatureLayer.FeatureClass'生成TINDim pTinEdit As ITinEditDim pTinSurface As ISurfaceDim pTable As ITableSet pTinEdit = New TinSet pTable = New FeatureLayerpTinEdit.InitNew MapControl1.ActiveView.ExtentDim pField As IF
55、ieldSet pField = pFeatureClass.Fields.Field(pFeatureClass.Fields.FindField("Well_Dpth")pTinEdit.AddFromFeatureClass pFeatureClass, Nothing, pField, Nothing, 18Set pTinSurface = pTinEdit'打開(kāi)已經(jīng)創(chuàng)建好的空的等高線數(shù)據(jù)(也可以在此時(shí)創(chuàng)建一個(gè)要素類(lèi)9,如果是9.0版本的話,在空等高線數(shù)據(jù)中預(yù)先需要建一個(gè)字段來(lái)存儲(chǔ)高'程值,如果是8.3版本的話就不可以預(yù)先創(chuàng)建這樣的一個(gè)高程字段,而
56、是在生成等高線過(guò)程中根據(jù)你指定的'字段名稱實(shí)時(shí)創(chuàng)建Dim pPropset As IPropertySetSet pPropset = New PropertySetDim pFact As IWorkspaceFactoryDim pWorkspace As IWorkspacepPropset.SetProperty "DATABASE", App.Path + "data"Set pFact = New ShapefileWorkspaceFactorySet pWorkspace = pFact.Open(pPropset, Me.hWn
57、d)Dim pFeatureWorkspace As IFeatureWorkspaceSet pFeatureWorkspace = pWorkspaceDim pFeatureClass1 As IFeatureClassSet pFeatureClass1 = pFeatureWorkspace.OpenFeatureClass("MyShape33")'生成等高線pTinSurface.Contour 0, 50, pFeatureClass1, "Well_Dpth", 1Dim pFLayer As IFeatureLayerSet
58、pFLayer = New FeatureLayerSet pFLayer.FeatureClass = pFeatureClass1MapControl1.AddLayer pFLayerMapControl1.ActiveView.Refresh空間查詢的實(shí)現(xiàn)空間查詢是一個(gè)經(jīng)常要用到的功能,它是通過(guò)給定一定的圍,查詢得到在這個(gè)空間圍的要素的查詢方式。下面的代碼是在返回鼠標(biāo)點(diǎn)擊點(diǎn)周?chē)L(zhǎng)寬100個(gè)地圖單位的矩形圍的要素。過(guò)程描述Dim pMap As IMapDim pPoint As IPointSet pMap = MapControl1.MapDim pFeatureLayer As I
59、FeatureLayerSet pFeatureLayer = pMap.Layer(1)Set pPoint = MapControl1.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(x, y)Dim pEnv As IEnvelopeSet pEnv = New EnvelopeSet pEnv = MapControl1.ActiveView.ExtentpEnv.Height = 100pEnv.Width = 100pEnv.CenterAt pPointMsgBox pPoint.xMsgBox pEnv.XMa
60、xDim pGeometry As IGeometrySet pGeometry = pEnvSet pGeometry.SpatialReference = pMap.SpatialReferencepFeatureLayer.Selectable = TrueDim pSFilter As ISpatialFilterSet pSFilter = New SpatialFilterWith pSFilterSet .Geometry = pGeometry.GeometryField = pFeatureLayer.FeatureClass.ShapeFieldName.SpatialRe
61、l = esriSpatialRelIntersectsEnd WithDim b As Booleanb = pSFilter.FilterOwnsGeometryDim pFeatureCursor As IFeatureCursorSet pFeatureCursor = pFeatureLayer.Search(pSFilter, False)創(chuàng)建帶Z值的Feature編號(hào):000484相關(guān)產(chǎn)品與版本:ArcInfo Desktop,ArcGIS Engine Developer Kit,ArcGIS Engine Runtime 90平臺(tái):PC-Intel Wi
62、ndows2000提交時(shí)間:2005-07-01 修改時(shí)間:2005-07-01提交人:黃齊飛容摘要使用IZAware接口,對(duì)Feature設(shè)置Z值。例子中構(gòu)建了三個(gè)點(diǎn)的多邊形。測(cè)試條件:建立一個(gè)Test.mdb的PGDB,創(chuàng)建一個(gè)有Z值的多邊形圖層。加載圖層,運(yùn)行程序。過(guò)程描述Option ExplicitDim pAoInitialize As esriSystem.IAoInitializeDim pWorkSpace As esriGeoDatabase.IWorkspaceDim Pt1 As esriGeometry.IPointDim Pt2 As esri
63、Geometry.IPointDim Pt3 As esriGeometry.IPointDim pPtC As esriGeometry.IPointCollectionPrivate Sub Form_Load()'許可初始化Set pAoInitialize = New AoInitializeIf pAoInitialize Is Nothing ThenMsgBox "不能初始化,程序退出!"Unload MeEndEnd IfIf pAoInitialize.IsProductCodeAvailable(esriLicenseProductCodeEng
64、ineGeoDB) = esriLicenseAvailable ThenElseMsgBox "沒(méi)有合適的運(yùn)行許可,退出程序!"Unload MeEndEnd If'加載數(shù)據(jù)Dim pWorkspaceFactory As esriGeoDatabase.IWorkspaceFactorySet pWorkspaceFactory = New esriDataSourcesGDB.AccessWorkspaceFactorySet pWorkSpace = pWorkspaceFactory.OpenFromFile(App.Path & "te
65、st.mdb", 0)Dim pFeatureWorkSpace As esriGeoDatabase.IFeatureWorkspaceDim pFeatureClass As esriGeoDatabase.IFeatureClassDim pFeatureLayer As esriCarto.IFeatureLayerSet pFeatureWorkSpace = pWorkSpaceSet pFeatureClass = pFeatureWorkSpace.OpenFeatureClass("afeitest")Set pFeatureLayer = New esriCarto.FeatureLayerSet pFeatu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)集成建筑行業(yè)運(yùn)營(yíng)狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)螺旋藻行業(yè)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)葡萄籽提取物opc行業(yè)運(yùn)營(yíng)狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025天津市建筑安全員知識(shí)題庫(kù)
- 2025-2030年中國(guó)航空客運(yùn)行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)電解錳廢渣處理行業(yè)競(jìng)爭(zhēng)狀況及發(fā)展趨勢(shì)分析報(bào)告
- 長(zhǎng)江大學(xué)《設(shè)計(jì)軟件基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國(guó)石油大學(xué)(華東)《強(qiáng)化學(xué)習(xí)(雙語(yǔ))》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安體育學(xué)院《食品分析技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西衛(wèi)生職業(yè)技術(shù)學(xué)院《食品研究開(kāi)發(fā)》2023-2024學(xué)年第二學(xué)期期末試卷
- 民用無(wú)人機(jī)操控員執(zhí)照(CAAC)考試復(fù)習(xí)重點(diǎn)題庫(kù)500題(含答案)
- 幼兒園 中班心理健康《我會(huì)傾訴》
- GB/T 6553-2024嚴(yán)酷環(huán)境條件下使用的電氣絕緣材料評(píng)定耐電痕化和蝕損的試驗(yàn)方法
- 中職旅游專(zhuān)業(yè)《中國(guó)旅游地理》說(shuō)課稿
- 微積分試卷及規(guī)范標(biāo)準(zhǔn)答案6套
- 【鄉(xiāng)村振興背景下農(nóng)村基層治理問(wèn)題探究開(kāi)題報(bào)告(含提綱)3000字】
- 藥物警戒管理體系記錄與數(shù)據(jù)管理規(guī)程
- 2024-2029年擴(kuò)展塢行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃投資研究報(bào)告
- SH/T 3003-2024 石油化工合理利用能源設(shè)計(jì)導(dǎo)則(正式版)
- 中國(guó)人民大學(xué)613衛(wèi)生統(tǒng)計(jì)歷年真題12-16
- 人事聘用合同范本標(biāo)準(zhǔn)版
評(píng)論
0/150
提交評(píng)論