• <acronym id="danlv"><form id="danlv"></form></acronym>
  • <dd id="danlv"><rt id="danlv"></rt></dd>
      <var id="danlv"><rt id="danlv"><big id="danlv"></big></rt></var>
      1. <code id="danlv"><ol id="danlv"></ol></code>
        <var id="danlv"><rt id="danlv"></rt></var>
          1. <code id="danlv"></code>
            返回首頁

            ArcMap使用技巧大全

            時間:2012-08-18 22:43來源:知行網www.n1979.com 編輯:麥田守望者

            1. 要素的剪切與延伸

            Task 任務欄 Extend/Trim feature 剪切所得內容與你畫線的方向有關

            2. 自動捕捉跟蹤工具

            點擊Editor工具欄中Snapping來打開Snapping Environment對話框

            捕捉設置中有3個選項 vertex edge end 分別是節點 終點 和邊 選擇end應該會捕捉端點

            3. 圖斑面積計算及長度計算

            應用工具Calculate Area 或者使用VBA代碼實現 新建字段并開啟Advanced 寫入代碼

            面積計算:

            Dim Output as double

            Dim pArea as Iarea

            Set pArea = [shape]

            Output = pArea.area

            長度計算:

            Dim Output as double

            Dim pCurve as ICurve

            Set pCurve = [shape]

            Output = pCurve.Length

            4. 剪切圖斑

            Task任務欄 cut polygon feature工具 需要sketch工具畫線輔助完成

            5. 配準工具

            Spatial Adjustment 工具 需要注意先要 set adjustment data 然后配準

            6. 影像校正

            Georeferncing工具

            7. 要素變形

            Task任務欄 reshape feature 配合sketch工具

            8. 添加節點

            Task任務欄 Modify feature 在需要加點的地方右鍵單擊insert vertex

            也可單擊右鍵選擇properties 打開edit sketch properties對話框 在坐標點位置右鍵插入節點

            9. 共享多邊形生成

            Task任務欄 Auto-complete polygon 工具生成共享邊的多邊形 配合snapping environment更好

            10. 畫島圖

            1)使用任務欄中的sketch工具 當畫完外面的一圈時 右鍵選擇finish part 然后畫中間的部分 再右鍵finish sketch

            2)分別畫連個圖斑然后應用Editor 工具欄中的工具先intersect(圖斑重疊的地方創建一個新的圖斑)然后Clip(剪切)即可(補充其他工具:Union把多個圖斑聯合起來并形成一個新的連接在一起的圖斑,原圖斑無變化,聯合后的圖斑不繼承原任何圖斑的屬性;Merge把多個圖斑合并到其中一個圖斑上并繼承它的屬性,原圖斑變化;Split用于間斷線段,但得知道具體的長度,如果不知道那么長度或者沒必要那么精確就直接用Eeitor工具欄的Split tool工具 )

            11. 連接外界屬性數據(如.xsl文件等)

            利用JOIN 工具可以方便的實現與外界屬性數據的關聯,但這種關聯是依賴于外界數據庫本身的,需經過重新導出之后即完全保存在相應圖層屬性頁。在做外聯如EXCEL等的時候對數據有一些要求,確保第一行包含字段名,這些字段名不能超過十個字母,不能出現特殊字符。最好把EXCEL保存為.csv文件去除一些不兼容的內容再連接。

            12. 導出Shape格式為其他軟件識別的打印格式如JEPG等格式

            File/Export Map 然后選擇相應的圖片格式,此時也可設置分辨率dpi

            13. 建立注記層

            方法一.carvert to Ananotation 方法二.Draw工具條 方法三.從其他地方轉換注記圖層

            14. 查看特定區域范圍內的某種地物分布情況

            Selection / select by location

            15. 如何用面生成中線

            先把數據轉成coverage格式,workstion里有Centerline命令。

            另外ArcToolBox-Data Management Tools-Generalization-Collapse Dual Lines To Centerline也行。不過以上做法要求邊界是雙線。你必須先把面轉成線,特別是參數的設置。也可以嘗試下sketch工具條中的midpoint tool 后面有詳細的講解過程。

            16. 根據坐標數據生成點

            方法一. [工具] -[添加XY 數據],在“添加XY 數據”窗口中,選擇已添加的XY 數據表,指定X 坐標字段(東經)和Y 坐標字段(北緯),按“編輯”按鈕,選擇坐標系統。一般GPS系統采用的坐標系統為WGS_1984。方法二.直接用TOOL工具下的ADD XY 可以單個加點

            17. 用任意多邊形剪切柵格數據(矢量數據轉換為柵格數據)

            在ArcCatalog下新建一個要素類(要素類型為:多邊形),命名為:ClipPoly.shp

            在ArcMap中,加載柵格數據:Landuse和ClipPoly.shp

            打開編輯器工具欄,開始編輯ClipPoly ,根據要剪切的區域,繪制一個任意形狀的多邊形。打開屬性表,修改多邊形的字段“ID”的值為1,保存修改,停止編輯。

            打開 空間分析工具欄

            GIS軟件應用-ArcGIS

            執行命令:<空間分析>-<轉換>-<要素到柵格>

            指定柵格大小:查詢要剪切的柵格圖

            層Landuse 的柵格大小,這里指定為25

            指定輸出柵格的名稱為路徑

            執行命令: <空間分析>-<柵格計算器>

            構造表達式:[Landuse]*[polyClip4-polyclip4] ,執行柵格圖層:Landuse 和用以剪切的柵格polyClip4 之間的相乘運算

            GIS軟件應用-ArcGIS

            得到的結果即是以任意多邊形剪切的Landuse數據

            18. 柵格重分類(Raster Reclassify)

            通過柵格重分類操作可以將連續柵格數據轉換為離散柵格數據

            19. Eliminate合并破碎多邊形

            以下的操作將會把面積小于10000 平方米的多邊形合并到周圍與之有最長公共邊的多邊形中:

            執行菜單命令[選擇]-[通過屬性選擇],查詢”Area”<=10000 (平方米)的圖斑,被選中的多邊形以高亮方式顯示,這些小的圖斑將會被合并到與之相鄰且有最大公共邊的多邊形。當然也可以選擇合并到相鄰的面積最大的多邊形。

            打開 Arctoolbox,執行 [消除]命令

            指定輸入圖層:tinSlopef, 輸出要素類:TinSlopef_Elminate.shp

            Eliminate(合并破碎多邊形)操作原理

            20. 重疊要素的選擇切換

            目標:在覆蓋同一區域的多個要素中切換被選擇要素

            操作步驟:

            1)在編輯環境中選中覆蓋同一區域的多個要素中的一個要素

            2)按下N鍵,被選要素就會自動地切換到另一個圖層的要素上去(如圖1)

            3)重復操作,直到選中目標要素為止

            21. 編輯時一些常用的快捷鍵

            一、公共快捷鍵(對所有編輯工具有效):

            在編輯未完成時按快捷鍵E切換到選擇的環境中去 Z 放大 X 縮小 C 漫游 V顯示節點 Ctrl+Z 撤銷Ctrl+Y 重做 SpaceBar 暫停捕捉

            二、編輯工具:

            Shift:添加至/取消選擇 Ctrl:移動選擇錨 N:下一個被選要素

            三、用于Edit工具的與注記相關的快捷鍵:

            E:在Sketch工具、Edit工具和Edit Annotation工具間切換;

            四、Edit Annotation工具:

            Shift:添加至/取消選擇 Ctrl:移動選擇錨 N:下一個被選要素 R:切換至旋轉模式/從旋轉模式切換 F:切換至要素模式/從要素模式切換

            E:在Sketch工具、Edit工具和Edit Annotation工具間切換 L:在跟蹤要素模式下將選中的注記要素旋轉180度

            O:在跟蹤要素模式下打開Follow Feature Options 對話框

            Tab:在跟蹤要素模式下對注記放置的位置進行左右邊的切換

            P:在跟蹤要素模式下對注記放置的角度進行平行和垂直方向的切換。

            五、Sketch工具:

            Ctrl+A:方位 Ctrl+F:偏轉 Ctrl+L:長度 Ctrl+D:X,Y增量 Ctrl+G:方位/長度 Ctrl+P:平行 Ctrl+E:垂直 Ctrl+T:切線 Ctrl+Delete:刪除草圖 F2:完成草圖 F6:絕對X,Y坐標 F7:線段偏轉 T:顯示容限 已經輸入的命令可以通過Esc取消。

            六.鼠標操作技巧

            i. 在使用【Pan】工具時,鼠標單擊處將位于地圖的中心。

            ii. 在使用【Zoom In / Zoom Out / Pan】工具時,按F6鍵可以循序在這3個工具間切換

            iii. 在TOC中按住Alt鍵,并單擊圖層,等效于縮放到圖層(Zoom To Layer)

            22. 對線要素標注的增強

            (對線要素進行標注時,如果標注在線上,標注和線會疊加顯示,效果不理想,下面叫介紹一種可以在顯示標注的地方把線斷開的方法,這樣效果會美觀一些)

            操作步驟:

            1)把標注轉成注記,保存在GDB中

            2)用ArcToolbox中的制圖工具Cartography Tools->Masking Tools->Intersecting Layer Masks,為注記創建模版,模版的大小用參數Margin來決定

            3)右鍵點擊數據框,在環境菜單中選擇高級繪制選項(Advanced Drawing Options),用注記的模版圖層去遮蓋線圖層,確定

            23.同一圖層使用Clip實現圖斑的無縫拼接

            方法一:當一個圖斑的邊界確定,需要實現兩個圖斑的無縫拼接時,可以把圖斑拉伸覆蓋確定邊界的圖斑的一部分,然后用下面的圖斑剪區上面的圖斑。

            方法二:圖斑之間有小的縫隙,可以先在縫隙上任意補畫一個圖斑,然后合并(merge)圖斑,最后再剪切(Clip)即可得到無縫的圖斑。

            24.利用兩個相交圖斑創建新圖斑。

            兩個圖斑都選中然后 Eidtor 工具條intersect,此方法原圖斑不會被接切。

            25.屬性表中選擇集與非選擇集的切換

            Options/switch selection

            26.快速把選擇的要素另存為一個圖層并加載進來。

            先選責需要另存圖層的要素(直接選擇或者屬性表),然后在圖層上右鍵Selection/create Layer From Selected Features。(以前都是直接export竟然沒有發現)

            27.利用Hyperlinks豐富數據庫,為其添加超鏈接。

            單擊rowse工具欄中Identify按鈕。單擊地圖中一個要素,在Identify Results窗口右擊需要設置超鏈接的要素,然后點擊Add Hyperlink菜單。若要將一個Web頁加為超鏈接,單擊項,并輸入URL。要鏈接到一個文檔,單擊Link to a Document,并輸入文檔路徑名。 單擊Tools工具欄中的Hyperlink工具,并單擊圖上某一個要素即可實現。

            使用一個屬性字段作為超鏈 在內容表中右擊包含一個超鏈接字段的圖層,然后點擊properties ,單擊Display選項卡。選中Supprt Hyper3. Hyperlinks using field選項,單擊下拉箭頭并點擊一個字段。 單擊Document or URL。單擊OK,單擊Tools中的Hyperlink按鈕,將鼠標指移到一要素上并單擊以顯示其超鏈接。

            28.Arcmap中的SQL語言

            當查詢ArcInfo coverages, shape文件, INFO表以及dBASE表時,SQL表達式中的字段名必須用雙引號擴起。如:“AREA”,如果查詢的是個人地理數據庫數據,則需要將字段名包含在方括號內,如:[AREA],如果查詢的是ArcSDE地理數據庫數據或是ArcIMS要素類或ArcIMS影象服務子層中的數據,則不需要將字段名括起,如:AREA。有些運算符和關鍵字也可能有所變化。

            在查詢表達式中,字符串必須加單引號,例如:

            [STATE_NAME]=‘California’

            除個人地理數據庫要素類和表之外,查詢表達式中的字符串是區分字母大小寫的。如果搜索不需要區分大小寫,可以使用SQL函數將所有的值都轉換成大寫或者小寫。對于基于文件的數據源,例如shape文件或coverages,既可以使用UPPER函數,也可以使用LOWER函數。

            例如下面這個查詢將選出那些姓名的最后為Jones或JONES的顧客。

            UPPER("LAST_NAME") = 'JONES'

            可以用LIKE運算符(不是 = 運算符)與通配符一起構建部分字符串查詢。

            例如,表達式 [STATE_NAME] LIKE 'Miss*'將在美國州名中選擇Mississippi和Missouri。

            *表示多個字符。

            還比如,查詢表達式 [OWNER_NAME] LIKE '?atherine smith' 將找出Catherine Smith和Katherine Smith。

            ?表示單個字符。通配符的使用依賴于不同的數據庫。例子中使用的通配符只適用于個人地理數據庫。

            可以使用NULL關鍵字來選擇那些在指定字段中值為NULL的要素和記錄。通常,NULL關鍵字的前面總有IS或IS NOT。

            29.Select by location小結

            按位置查找要素的方法

            使用按位置選擇(Select By Location) 對話框,可以根據要素間的相對空間位置進行查找。可以使用多種方法,查找在同一圖層中或不同圖層間相互鄰近或疊置的點、線、多邊形等要素。

            被…跨越邊界(Are crossed by the outline of)

            利用這種方法,選擇被另一圖層要素覆蓋的某個圖層上的要素。例如,搜索道路跨越的荒地,得到的結果是道路跨越其邊界的所有荒地。

            相交(Intersect)

            與Are crossed by the outline of類似,但是該方法可以選擇與參照要素接連的要素。例如,選擇與道路相交的荒地,選擇的結果將包括該道路在其邊界范圍之內或在其邊界之上的所有荒地。

            在…距離范圍內(Are within a distance of)

            這一方法將選擇同一圖層或不同圖層上相鄰或鄰近的要素。例如,現有一個包括清潔井和污染井的圖層,使用該方法可以找出距離污染井500米范圍內的所有清潔井。同樣,也可以找出距離污染井500米范圍內其他圖層上的水庫和農田。還可以用該選項選擇與其他要素相毗鄰的要素。例如,假如用戶已選定了公司可能購買的地塊,現在想獲取鄰近地塊的信息。這種情況下,利用該選項選擇選中地塊零距離范圍內的所有地塊即可。

            中心在…里(Have their center in)

            這種方法選擇某一圖層上的要素,其中心點落在另一圖層要素中。

            完全在…內(Are completely within)

            這種方法選擇完全落在另一圖層多邊形內部的某一圖層上的要素,例如,選擇林區里面的湖泊。通過指定一個緩沖距離,可以選擇落于多邊形內部并距離多邊形邊界一定范圍內的所有要素。例如,選擇林區內部500米范圍內的湖泊。

            完全包含(Completely contain)

            這種方法選擇某一圖層上完全包含另一圖層上的要素的多邊形。例如,選擇內部包含湖泊的林區。通過指定一個緩沖距離,可以選擇在其內部一定范圍內包含要素的多邊形。例如,對湖泊做緩沖區,可以選擇距離湖泊500米范圍內的林區。

            與…有公共線段(Share a line segment with)

            這種方法選擇那些與其他要素具有公共線段、頂點或節點的要素。

            與…等同(Are identical to)

            這種方法選擇與另一圖層中某一要素具有同樣幾何形狀的所有要素。這時,要素類型必須相同。舉個例子:必須用多邊形選擇多邊形,用線段選擇線段,用點選擇點。

            包含(Contain)

            這種方法選擇某一圖層中包含另一圖層中要素的要素。這種方法與完全包含(Completely contain)方法的區別在于:要素間的邊界可以接觸。例如,使用包含(Contain)方法,即使湖泊的邊界和包含該湖泊的森林的邊界接觸,森林也會被選中。但是在用完全包含(Completely contain)方法時,森林是不會選中的。

            包含于(Are Contained by)

            這種方法選擇某一圖層中被另一圖層中要素包含的要素。例如,選擇被鄉村包圍的城市。這種方法和完全包含于(Are completely within)方法的區別在于,要素的邊界可以接觸。

            與…接觸(Touch the boundary of)

            如果使用包含線的圖層來選擇要素,則該方法將選擇那些與此圖層里的線有公共線段,頂點或端點(節點)的線和多邊形要素。如果跨越了線,則這些線和多邊形將不會被選中。

            如果使用包含多邊形的圖層來選擇要素,則該方法將選擇那些與此圖層里的多邊形邊界有公共線段或頂點的線和多邊形要素。如果跨越了多邊形邊界,則這些線和多邊形將不會被選中。

            30. 如何高亮顯示指定圖層

            在內容表中右擊一個圖層,然后點擊Properties。單擊Selection選項卡。選中第三個選項(with this color),并選擇一種你想要顏色。單擊OK。 這種設置將取代利用Selection Options對話框中所做的任何設置。

            31. 將選中的要素放大至整個窗口

            在內容表中右擊包含選中要素的圖層,單擊Selection菜單,并單擊Zoom To Selected Features子菜單。選中要素將放大至整個ArcMap窗口。

            32.顯示選中要素的屬性

            在內容表中右擊選中要素所在圖層,單擊Open Attribute Table,單擊Show Selected records。窗口中顯示出選中要素的屬性記錄。也可以打開屬性表在select和all之間切換。

            33. 通過單擊要素添加文本

            1)在內容表中,右擊需要添加標注的圖層,單擊Properties。

            2)單擊Labels選項卡。

            3)單擊Label Field下拉箭頭,單擊作為標注的字段。

            4)單擊OK。

            5)單擊Draw工具條上的Label按鈕。 應該是只需單擊下拉箭頭選擇Label按鈕。

            6)單擊Place label at position clicked。 如果選擇了Automatically find best placement,ArcMap會自動的為標注尋找合適的位置。

            7)單擊Choose a style,然后單擊需要的標注樣式。

            8)在需要標注的要素上單擊鼠標,標注就添加上去了。

            (先在Draw工具條下新建標注組方便管理,New Annotation Group)

            34. 標注工具條和標注管理器

            如果圖層中有一些要素需要指定特殊的標注屬性,需要在標注管理器中生成其它的標注類。點擊左側面板上的一個圖層,在右側面板上為其添加一個新的標注類。個人認為此方法雖然沒有轉為注記后的標注靈活,但卻可以方便的實現自動相對智能化的標注,相比之下更省心,提高效率。

            35. 在進行地圖查詢或編輯的時候為什么會總是選中所有的圖層

            訣竅在這里(雖然是一點點小問題,但當我第一次遇到這個問題時卻花費了我不少時間,甚至于懷疑自己的數據有問題)

            36.建立拓撲關系檢查圖斑

            先根據需要在Catalog中建立相應的拓撲關系規則,然后在Arcmap中進行拓撲處理,輔助工具條Topolygon,下圖所示為重疊圖斑檢查。(也可以在Arctoolbox下的Data Management tools/topology來做)

             

            有關geodatabase的topology規則

            多邊形topology

            1)must not overlay:單要素類,多邊形要素相互不能重疊

            2)must not have gaps:單要素類,連續連接的多邊形區域中間不能有空白區(非數據區)

            3)contains point:多邊形+點,多邊形要素類的每個要素的邊界以內必須包含點層中至少一個點

            4)boundary must be covered by:多邊形+線,多邊形層的邊界與線層重疊(線層可以有非重疊的更多要素)

            5)must be covered by feature class of:多邊形+多邊形,第一個多邊形層必須被第二個完全覆蓋(省與全國的關系)

            6)must be covered by:多邊形+多邊形,第一個多邊形層必須把第二個完全覆蓋(全國與省的關系)

            7)must not overlay with:多邊形+多邊形,兩個多邊形層的多邊形不能存在一對相互覆蓋的要素

            8)must cover each other:多邊形+多邊形,兩個多邊形的要素必須完全重疊

            9)area boundary must be covered by boundary of:多邊形+多邊形,第一個多邊形的各要素必須為第二個的一個或幾個多邊形完全覆蓋

            10)must be properly inside polygons:點+多邊形,點層的要素必須全部在多邊形內

            11)must be covered by boundary of:點+多邊形,點必須在多邊形的邊界上

            線topology

            1)must not have dangle:線,不能有懸掛節點

            2)must not have pseudo-node:線,不能有偽節點

            3)must not overlay:線,不能有線重合(不同要素間)

            4)must not self overlay:線,一個要素不能自覆蓋

            5)must not intersect:線,不能有線交叉(不同要素間)

            6)must not self intersect:線,不能有線自交叉

            7)must not intersect or touch interrior:線,不能有相交和重疊

            8)must be single part:線,一個線要素只能由一個path組成

            9)must not covered with:線+線,兩層線不能重疊

            10)must be covered by feature class of:線+線,兩層線完全重疊

            11)endpoint must be covered by:線+點,線層中的終點必須和點層的部分(或全部)點重合

            12)must be covered by boundary of:線+多邊形,線被多邊形邊界重疊

            13)must be covered by endpoint of:點+線,點被線終點完全重合

            14)point must be covered by line:點+線,點都在線上

            37.給多個要素同一賦值

            選中你需要同一賦值的是所有圖斑,然后點擊Atrributes,此時出現屬性修改對話框,點擊根目錄是對所有要素同一賦值,點擊下面的支目錄則可以分別賦值。(也可以用字段計算器實現)

            38.如何根據確定的點畫出以他相應的點

            例如:我在地圖上已經知道了一個已知點,而其他的點在地圖上都是以他為中心畫出來的。學校SE60度,140米,意思是學校在中心點南偏東60度,距離是140米,這樣的點在arcmap中怎么加呢?我的方法有二分別如下。

            1)確定已有一個點圖層,其中有學校,然后:

            對該圖層開始編輯

            選擇工具欄editor---direction-distance tool

            以中心點為中心,先畫角度線(arcmap左下角會有角度提示),再畫距離/半徑(注:畫的過程中點擊A鍵可以輸入角度值,點擊D鍵可以輸入距離值)

            確定,即可

            如果找不到direction-distance tool 的同志請看下面

             

             

             

            Direction-distance tool is here

             

             

             

            2)直接編寫代碼實現

            下面是一段示例的VBA代碼

            Option Explicit

            Dim dPoint(2, 1) As Double

            Sub aaa()

            Call bbb

            Dim aa As IMxDocument

            Set aa = ThisDocument

            Dim pFLyr As IFeatureLayer

            Set pFLyr = aa.FocusMap.Layer(0)

            Dim pFCsr As IFeatureCursor

            Dim pFt As IFeature

            Set pFCsr = pFLyr.FeatureClass.Update(Nothing, False)

            Set pFt = pFCsr.NextFeature

            Dim pPoint As IPoint

            Set pPoint = pFt.ShapeCopy

            Dim pNewPoint As IPoint

            Dim X0 As Double, Y0 As Double

            Dim X As Double, Y As Double

            Dim dAngle As Double

            Dim i As Long

            For i = 0 To UBound(dPoint, 1)

            Set pFt = pFLyr.FeatureClass.CreateFeature

            Set pNewPoint = New Point

            dAngle = dPoint(i, 0) * 3.14159263579893 / 180

            pNewPoint.X = dPoint(i, 1) * Cos(dAngle) + pPoint.X

            pNewPoint.Y = dPoint(i, 1) * Sin(dAngle) + pPoint.Y

            Set pFt.Shape = pNewPoint

            pFt.Store

            Next

            Set pFLyr = Nothing

            Set pFCsr = Nothing

            Set pFt = Nothing

            Set pPoint = Nothing

            Set pNewPoint = Nothing

            End Sub

            Sub bbb()

            '定義新加三個點的角度和距離

            dPoint(0, 0) = 10

            dPoint(0, 1) = 150

             

            dPoint(1, 0) = 30

            dPoint(1, 1) = 170

             

            dPoint(2, 0) = 120

            dPoint(2, 1) = 200

             

            End Sub

            這中方法做起來需要一點編程經驗,但是比上面那中一個一個的畫的方法要先進多了,可以把所有的點錄入同時畫出來。

            如果你不會VBA編程,請看下面:

            這是ArcGIS VBA的程序,運行的方法:

            1)運行ArcMap,加載所需圖層;

            2)Tools菜單-Macros(宏)-Visual Basic Editor(VB編輯器),這樣打開VB編輯器

            3)雙擊打開VB編輯器左上工程資源管理器中的Project/ArcMap對象/ThisDocument,把上面的代碼粘進去。注意看首行Option Explicit如果有兩行,就刪除一行。

            4)點擊VB編輯器工具欄的運行按鈕運行(或菜單 運行/運行子過程),就可以了,再激活ArcMap可以看到發生了什么!

            或者還有一種創建宏的方法(不過建議對ArcGIS VBA不大熟的同志不要用這種方法):

            1)運行ArcMap,加載所需圖層;

            2)Tools菜單/Macros(宏)/Macros,這樣打開宏編輯器

            3)在宏名稱中輸入aaa,確定后,會打開VB編輯器,將看到有一個aaa的過程,沒有實體。你把上面的aaa過程中的代碼粘進去,然后在前面加上Option Explicit(這個別重復了哈)

            Dim dPoint(2, 1) As Double就可以。

            4)點擊VB編輯器工具欄的運行按鈕運行(或菜單 運行/運行子過程),就可以了,再激活ArcMap可以看到發生了什么!

            39.簡單介紹下Sketch中的幾個工具

            Sketch construction tools的使用:

            Sketch tool:主要是用來創造線和面特征的節點,在你完成了草圖之后,ArcMAP就會增加最后的線段,形成矢量圖。

            Arc tool:這個主要是幫你創造一個弧段的,選中這個工具后,先在弧段起點點一下,然后在弧段高度方向大致位置點一下(這個點是不可見的,只是給你確定弧段的高度),最后在弧段的終點點一下,就形成一條弧段了。

            Direction-distance tool:這個主要是從已知某一個方向和某一個距離來確定一個點。首先點一個已知方向的點,這是會有一條線出來,你確定好方向后,再點已知距離的點,這是出來一個圓,確定距離后,直線和圓有交點,這就是你要的點,再上面點一下就ok!

            Distance-distance tool:這個和上面的一樣的道理,只是它都用距離來確定一個點,也就是兩個圓確定你要的點。

            Endpoint arc tool:這也是創造弧段用的,與Arc tool 工具不同的是,它是先在弧段的起點點一下,然后在弧段的終點點一下,再點一個點確定弧段的半徑。個人認為這個工具要比Arc tool工具更精確些。

            Intersection tool:就是利用兩條直線確定一個點。很簡單一用就會!

            Midpoint tool:確定中點的工具,比如馬路的中點,你可以先點一邊,再點馬路另一邊,這時馬路的中點自動出現了。 (畫道路中線太可以試試,不過得是直線道路咯,^_^)

            Tangent tool:相切弧段工具,它能夠在一條線段上畫出一條切線,只有你用其他工具畫了線段出來時你才可以用這個工具。

            Trace tool: 主要是用來在跟蹤已存在的特征,比如一棟房子,你要沿房子外圍畫一條線(比如圍墻),那么你使用這個工具就非常方便,首先開始時你必須按O鍵,設置下跟蹤的間距,如100,其中還有三個角點的方式:mitered是直角 bevelled 是鈍角rounded是圓角。(感覺那效果有點像CAD的偏移咯)

            40.如何標注多個字段的屬性及分子式標注

            Propertis/label field /expression

            實例:"<und>"& [單位名稱] &"</und>" & VbCrLf & " " & [PARCEL_NO]

            </und> 輸出分數線 VbCrLf 換行

            以前用ArcGIS Label一般也就在圖層的Properties里面定義一下Label字體大小和粗細。這兩天遇到一個問題,需要在Label中顯示多個字段的內容,比如BlockName和CompanyName。其實這個本來不是很難的問題,因為Label中支持VB,使用[BlockName] & VbNewLine & [CompanyName]。就可以實現標注中第一行顯示BlockName,第二行顯示CompanyName.

            現在問題出來了,出圖時候希望突出BlockName效果,希望加粗顯示,而CompanyName使用一般字體。考慮了很長時間終于從ArcGIS幫助中找到了相關的內容,原來Label的VB里面支持類似于Html的VB標簽,比如加粗就是用<BOL>,上面問題就可以使用下面語句解決:

            "<BOL>" & [BlockName] & "</BOL>" & VbNewLine & [CompanyName]

            除了加粗,ArcGIS中還支持下面的文本格式標簽:

            Font:

            "<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>"

            Color:

            "<CLR red='255' green='255' blue='255'>" & [LABELFIELD] & "</CLR>"

            "<CLR cyan='100' magenta ='100' yellow='100' black='100'>" & [LABELFIELD] & "</CLR>"

            Bold:

            "<BOL>" & [LABELFIELD] & "</BOL>"

            Italic:

            "<ITA>" & [LABELFIELD] & "</ITA>"

            Underline:

            "<UND>" & [LABELFIELD] & "</UND>"

            All caps:

            "<ACP>" & [LABELFIELD] & "</ACP>"

            Small caps:

            "<SCP>" & [LABELFIELD] & "</SCP>"

            Super

            "<SUP>" & [LABELFIELD] & "</SUP>"

            Sub:

            "<SUB>" & [LABELFIELD] & "</SUB>"

            Character spacing (%):

            "<CHR spacing='25'>" & [LABELFIELD] & "</CHR>"

            Word spacing (%):

            "<WRD spacing='150'>" & [LABELFIELD] & "</WRD>"

            Leading (pts):

            "<LIN leading='12'>" & [LABELFIELD] & "</LIN

            需要注意的是,使用這些標簽后,生成的Label語句在Verify按鈕中是不生效的,只對最終的顯示結果生效。

            其實問題還沒有最終解決,使用VbNewLine生成的顯示結果,上下兩行缺省時居中對齊,現在希望它們左對齊顯示,還沒找到辦法。還有一個問題,就是ArcGIS中對點的Label可以選擇Label的位置,而對面沒有,缺省是放置在中間,現在希望放置在左上角,還沒有找到該怎么辦。

            下面是一個VBS的代碼可以試試。

            FindLabel ( [OBJECTID], [SHAPE_Area] )

            Dim nFMLength

            Dim nFZLength

            nFMLength = Len([SHAPE_Area])

            nFZLength = Len([OBJECTID])

            Dim strLeftSpace

            Dim strRightSpace

            strLeftSpace = ""

            strRightSpace= ""

            If nFMLength > nFZLength Then

            For i=0 To (nFMLength-nFZLength)/2

            strLeftSpace =strLeftSpace +chr(32)

            strRightSpace =strRightSpace + chr(32)

            Next

            End If

            FindLabel = "<UND>" &strLeftSpace & [OBJECTID]&strRightSpace& "</UND>"&chr(13)&chr(10)& [SHAPE_Area]

            End

            41.用點構面

            ArcToolBox->Samples->Data Management->Features->Create Features From Text File

            點組成面,最重要的是點序的排列,因此對數據的組織有一定的要求。

            42.幾個常用的VBA代碼

            在ARCGIS屬性表中增加需要的字段,并自動賦值

            使用方法

            1)打開屬性表,選擇計算的字段,右點選擇Calculate Values;2.選擇“是”,進入Field Calculator;

            2)選擇Advance選項;

            3)在Pre-Logic VBA Code編輯框中輸入VBA代碼;

            4)在下面編輯框中輸入賦值部分.

            1--點坐標X

            VBA部分:

            Dim pGeo As IGeometry

            Set pGeo = [Shape]

            Dim pPoint As IPoint

            Set pPoint = pGeo

            賦值部分:

            pPoint.X

            2--點坐標Y

            VBA部分:

            同上

            賦值部分:

            pPoint.Y

            坐標值為文件存儲的固有值,和是否使用On the Fly坐標表示無關。返回當前顯示的坐標值參看8,9

            3--多邊形周長

            VBA部分:

            Dim pGeo As IGeometry

            Set pGeo = [Shape]

            Dim pPolygon As IPolygon

            Set pPolygon = pGeo

            賦值部分:

            pPolygon.Length

            4--多邊形面積

            VBA部分:

            Dim pGeo As IGeometry

            Set pGeo = [Shape]

            Dim pPolygon As IPolygon

            Set pPolygon = pGeo

            Dim pArea As IArea

            Set pArea = pPolygon

            賦值部分:

            pArea.Area

            5--多邊形重心X

            VBA部分:

            Dim pGeo As IGeometry

            Set pGeo = [Shape]

            Dim pPolygon As IPolygon

            Set pPolygon = pGeo

            Dim pArea As IArea

            Set pArea = pPolygon

            Dim pPoint As IPoint

            Set pPoint = pArea.Centroid

            賦值部分:

            pPoint.X

            6--多邊形重心Y

            VBA部分:

            同上

            賦值部分:

            pPoint.Y

            7--Polyline長度

            VBA部分:

            Dim pGeo As IGeometry

            Set pGeo = [Shape]

            Dim pPolyline As IPolyline

            Set pPolyline = pGeo

            Dim pCurve As IPolycurve

            Set pCurve = pPolyline

            賦值部分:

            pCurve.Length

            8--表示點坐標X

            VBA部分:

            Dim pDoc As IMxDocument

            Set pDoc = ThisDocument

            Dim pSpRef As ISpatialReference

            Set pSpRef = pDoc.FocusMap.SpatialReference

            Dim pClone As IClone

            Set pClone = [Shape]

            Dim pGeo As IGeometry

            Set pGeo = pClone.Clone

            Dim pPoint as IPoint

            Set pPoint = pGeo

            pGeo.Project pSpRef

            賦值部分:

            pPoint.X

            9--表示點坐標Y

            VBA部分:

            同上

            賦值部分:

            pPoint.Y

            坐標值為On the Fly顯示的坐標,不是文件存儲的固有坐標

            10--連續編號

            VBA部分:

            Static lCount as long

            lCount=lCount+1

            賦值部分:

            lCount (從1開始)

            lCount-1 (從0開始)

            計算面的中點

            Dim Output As Double

            Dim pArea As IArea

            Set pArea = [Shape]

            Output = pArea.Centroid.X(或y)

            當然這是很老的方法了,現在arcgis9.2以后都不需要用VBA啦,右鍵屬性表字段然后直接選擇 Caculate Geometry就可以實現比如面積計算,X,Y坐標等的屬性賦值了咯。

            43. 在同一圖層如何對同一要素的不同部分以不同的符號表示

            (注:要實現這種渲染需要兩段具有不同的屬性)

            44.自己做ArcMap的圖例

            在Symbol property Editor中進行制作

            1)先在Style Manager中的左側列表中,選擇相應的Style文件,ArcGIS默認的符號庫文件是ESRI.Style文件,當然也給出了C:\Documents and Settings\....................目錄下用于用戶自定義的Style文件

            2)展開Style文件,選擇要創建Symbol的類型,如:Fill Symbol(面填充)、Line Symbol(線)、Marker Symbol(點) 然后在右側的列表中鼠標右鍵-New

            3)在彈出的Symbol Property Editor窗體中,進一步選擇Marker Symbol的類型,如:Simple Marker Symbol、Picture Marker Symbol等等

            4)這個時候就要根據需要開始設計符號的各種屬性了,由于不同種類的Marker Symbol有不同的屬性,因此,屬性也會不盡相同。

            5)另外介紹一個經常需要或比較使用的步驟,我們需要設計的符號可以由ESRI提供的現有符號組合而成,那么我們則需要添加2個Symbol Layer,然后進行2個Symbol Layer的疊加

            6)分別設置上述2個Symbol Layer的中的Symbol的屬性,之后確認保存,這樣會在Style Manager中看到我們新制作的符號

            45.計算屬性中相同的字段個數

            選擇要計算的字段然后右鍵選擇Summarize根據相應的要求設置參數即可實現。

            46.自動提取面的中點并加點

            Arctoolbox-Feature-Feature to Point

            47.合并屬性相同的相鄰圖斑

            使用Dissolve,當選擇create multipart feature時,所有具有相同屬性的圖斑將鏈接在一起做為一個圖斑。

            48.提取圖斑轉折點坐標

            如果沒有偽節點,那么,選中一個線或者面,打開sketch Properties,就可以看到節點坐標。

            還有一種方法就是:通過Toolbox-Datamanagement-Feature-Feature VerticesTo Points得到轉折點的圖層,然后Add XY Coordinates,該點圖層的屬性表中就包含了X,Y字段,將其導出,就得到轉折點坐標了。

            ------分隔線----------------------------
            標簽(Tag):Arcgis
            ------分隔線----------------------------
            推薦內容
            猜你感興趣
            日韩在线av免费视久久