1. 要素的剪切與延伸
實(shí)用工具 TASK 任務(wù)欄 Extend/Trim feature 剪切所得內(nèi)容與你畫線的方向有關(guān)。
2. 自動捕捉跟蹤工具
點(diǎn)擊Editor工具欄中Snapping來打開Snapping Environment對話框
捕捉設(shè)置中有3個選項(xiàng), vertex edge end 分別是節(jié)點(diǎn)、終點(diǎn)、和邊,選擇end應(yīng)該會捕捉端點(diǎn)
3. 圖斑面積計算及長度計算
應(yīng)用工具CALCULATE AREA 或者使用VBA代碼實(shí)現(xiàn) 新建字段并開啟Advanced 寫入代碼,面積計算:
Dim Output as double
Dim pArea as Iarea
Set pArea = [shape]
在最后的一個空格里面寫入代碼(即:字段名)pArea.area
長度計算:
Dim Output as double
Dim pCurve as ICurve
Set pCurve = [shape]
Output = pCurve.Length
4. 剪切圖斑
Task任務(wù)欄 cut polygon feature工具,需要sketch工具畫線輔助完成
5. 配準(zhǔn)工具
Spatial Adjustment 工具 需要注意先要 set adjustment data 然后配準(zhǔn)
6. 影像校正
Georeferncing工具
7. 要素變形
Task 工具條中的reshape feature 配合sketch工具
8. 添加節(jié)點(diǎn)
Modify feature 在需要加點(diǎn)的地方右鍵單擊insert vertex
也可單擊右鍵選擇properties 打開edit sketch properties對話框,在坐標(biāo)點(diǎn)位置右鍵插入節(jié)點(diǎn)
9. 共享多邊形生成
Auto-complete polygon 工具生成共享邊的多邊形,配合snapping environment更好。
10. 畫島圖
1).使用任務(wù)欄中的sketch工具,當(dāng)畫完外面的一圈時,右鍵 選擇finish part 然后畫中間的部分 再右鍵finish sketch
2).分別畫連個圖斑然后應(yīng)用Editor 工具欄中的工具先intersect(圖斑重疊的地方創(chuàng)建一個新的圖斑)然后Clip(剪切)即可。(補(bǔ)充其他工具:Union,把多個圖斑聯(lián)合起來并形成一個新的連接在一起的圖斑,原圖斑無變化,聯(lián)合后的圖斑不繼承原任何圖斑的屬性;Merge,把多個圖斑合并到其中一個圖斑上并繼承它的屬性,原圖斑變化;Split用于間斷線段,但得知道具體的長度,如果不知道那么長度或者沒必要那么精確就直接用Eeitor工具欄的Split tool工具 )
11. 連接外界屬性數(shù)據(jù)(如:.xsl文件等)
利用JOIN 工具可以方便的實(shí)現(xiàn)與外界屬性數(shù)據(jù)的關(guān)聯(lián),但這種關(guān)聯(lián)是依賴于外界數(shù)據(jù)庫本身的,需經(jīng)過重新導(dǎo)出之后即完全保存在相應(yīng)圖層屬性頁。在做外聯(lián)如EXCEL等的時候?qū)?shù)據(jù)有一些要求,確保第一行包含字段名,這些字段名不能超過十個字母,不能出現(xiàn)特殊字符。最好把EXCEL保存為.csv文件去除一些不兼容的內(nèi)容再連接。
轉(zhuǎn)載ESRI論壇Lucy1114帖子說明:
12. 導(dǎo)出Shape格式為其他軟件識別的打印格式如JEPG等格式
FILE/EXPORT MAP 然后選擇相應(yīng)的圖片格式,此時也可設(shè)置答應(yīng)的分辨率 pdi
13. 建立注記層
方法一.carvert to Ananotation ,方法二.Draw工具條 方法三.從其他地方轉(zhuǎn)換注記圖層
14. 查看特定區(qū)域范圍內(nèi)的某種地物分布情況
Selection / select by location
15. 如何用面生成中線
先把數(shù)據(jù)轉(zhuǎn)成coverage格式,workstion里有Centerline命令。
另外ArcToolBox->Data Management Tools->Generalization->Collapse Dual Lines To Centerline也行。不過以上做法要求邊界是雙線。你必須先把面轉(zhuǎn)成線,特別是參數(shù)的設(shè)置。也可以嘗試下sketch工具條中的midpoint tool 后面有詳細(xì)的講解過程。
16. 根據(jù)坐標(biāo)數(shù)據(jù)生成點(diǎn)
方法一. :[工具] >>[添加XY 數(shù)據(jù)],在“添加XY 數(shù)據(jù)”窗口中,選擇已添加的
XY 數(shù)據(jù)表,指定X 坐標(biāo)字段(東經(jīng))和Y 坐標(biāo)字段(北緯),按“編輯”按鈕,選擇坐標(biāo)系統(tǒng)。一般GPS系統(tǒng)采用的坐標(biāo)系統(tǒng)為WGS_1984。
方法二.直接用TOOL工具下的ADD XY 可以單個加點(diǎn)
17. 用任意多邊形剪切柵格數(shù)據(jù)(矢量數(shù)據(jù)轉(zhuǎn)換為柵格數(shù)據(jù))
在ArcCatalog下新建一個要素類(要素類型為:多邊形),命名為:ClipPoly.shp
在ArcMap中,加載柵格數(shù)據(jù):Landuse、和ClipPoly.shp
打開 編輯器工具欄,開始編輯ClipPoly ,根據(jù)要剪切的區(qū)域,繪制一個任意形狀的多
邊形。打開屬性表,修改多邊形的字段“ID”的值為1,保存修改,停止編輯。
打開 空間分析工具欄
GIS軟件應(yīng)用-ArcGIS
執(zhí)行命令:<空間分析>-<轉(zhuǎn)換>--<要素到柵格>
指定柵格大?。翰樵円羟械臇鸥駡D
層Landuse 的柵格大小,這里指定為25
指定輸出柵格的名稱為路徑
執(zhí)行命令: <空間分析>-<柵格計算器>
構(gòu)造表達(dá)式:[Landuse]*[polyClip4-polyclip4] ,執(zhí)行柵格圖層:Landuse 和 用以剪切
的柵格polyClip4 之間的相乘運(yùn)算
GIS軟件應(yīng)用-ArcGIS
得到的結(jié)果即是以任意多邊形剪切的Landuse數(shù)據(jù)
18. 柵格重分類(Raster Reclassify)
通過柵格重分類操作可以將連續(xù)柵格數(shù)據(jù)轉(zhuǎn)換為離散柵格數(shù)據(jù)
19. Eliminate合并破碎多邊形
以下的操作將會把面積小于10000 平方米的多邊形合并到周圍與之有最長公共
邊的多邊形中:
執(zhí)行菜單命令[選擇]>>[通過屬性選擇],查詢”Area”<=10000 (平方米)的圖斑
被選中的多邊形以高亮方式顯示,這些小的圖斑將會被合并到與之相鄰且有最大公共邊
的多邊形。當(dāng)然也可以選擇合并到相鄰的面積最大的多邊形。
打開 Arctoolbox,執(zhí)行 [消除]
命令
指定輸入圖層:tinSlopef, 輸出要素類:TinSlopef_Elminate.shp
Eliminate(合并破碎多邊形)操作原理
20. 重疊要素的選擇切換
目標(biāo):在覆蓋同一區(qū)域的多個要素中切換被選擇要素
操作步驟:
1).在編輯環(huán)境中選中覆蓋同一區(qū)域的多個要素中的一個要素
2).按下N鍵,被選要素就會自動地切換到另一個圖層的要素上去(如圖1)
3).重復(fù)操作,直到選中目標(biāo)要素為止
21. 編輯時一些常用的快捷鍵
一、公共快捷鍵(對所有編輯工具有效):
在編輯未完成時按快捷鍵E切換到選擇的環(huán)境中去 Z 放大 X 縮小 C 漫游 V顯示節(jié)點(diǎn) Ctrl+Z 撤銷Ctrl+Y 重做 SpaceBar 暫停捕捉
二、編輯工具:
Shift:添加至/取消選擇 Ctrl:移動選擇錨 N:下一個被選要素
三、用于Edit工具的與注記相關(guān)的快捷鍵:
E:在Sketch工具、Edit工具和Edit Annotation工具間切換;
四、Edit Annotation工具:
Shift:添加至/取消選擇 Ctrl:移動選擇錨 N:下一個被選要素 R:切換至旋轉(zhuǎn)模式/從旋轉(zhuǎn)模式切換 F:切換至要素模式/從要素模式切換
E:在Sketch工具、Edit工具和Edit Annotation工具間切換 L:在跟蹤要素模式下將選中的注記要素旋轉(zhuǎn)180度
O:在跟蹤要素模式下打開Follow Feature Options 對話框
Tab:在跟蹤要素模式下對注記放置的位置進(jìn)行左右邊的切換
P:在跟蹤要素模式下對注記放置的角度進(jìn)行平行和垂直方向的切換。
E:在Sketch工具、Edit工具和Edit Annotation工具間切換 L:在跟蹤要素模式下將選中的注記要素旋轉(zhuǎn)180度
O:在跟蹤要素模式下打開Follow Feature Options 對話框
Tab:在跟蹤要素模式下對注記放置的位置進(jìn)行左右邊的切換
P:在跟蹤要素模式下對注記放置的角度進(jìn)行平行和垂直方向的切換。
五、Sketch工具:
Ctrl+A:方位 Ctrl+F:偏轉(zhuǎn) Ctrl+L:長度 Ctrl+D:X,Y增量 Ctrl+G:方位/長度 Ctrl+P:平行 Ctrl+E:垂直 Ctrl+T:切線 Ctrl+Delete:刪除草圖 F2:完成草圖 F6:絕對X,Y坐標(biāo) F7:線段偏轉(zhuǎn) T:顯示容限 已經(jīng)輸入的命令可以通過Esc取消。
六.鼠標(biāo)操作技巧
i. 在使用【Pan】工具時,鼠標(biāo)單擊處將位于地圖的中心。
ii. 在使用【Zoom In / Zoom Out / Pan】工具時,按F6鍵可以循序在這3個工具間切換
iii. 在TOC中按住Alt鍵,并單擊圖層,等效于縮放到圖層(Zoom To Layer)
22. 對線要素標(biāo)注的增強(qiáng)
(對線要素進(jìn)行標(biāo)注時,如果標(biāo)注在線上,標(biāo)注和線會疊加顯示,效果不理想,下面叫介紹一種可以在顯示標(biāo)注的地方把線斷開的方法,這樣效果會美觀一些)
操作步驟:
1).把標(biāo)注轉(zhuǎn)成注記,保存在GDB中
2). 用ArcToolbox中的制圖工具Cartography Tools->Masking Tools->Intersecting Layer Masks,為注記創(chuàng)建模版,模版的大小用參數(shù)Margin來決定
3).右鍵點(diǎn)擊數(shù)據(jù)框,在環(huán)境菜單中選擇高級繪制選項(xiàng)(Advanced Drawing Options),用注記的模版圖層去遮蓋線圖層,確定
23.同一圖層使用Clip實(shí)現(xiàn)圖斑的無縫拼接
當(dāng)一個圖斑的邊界確定,需要實(shí)現(xiàn)兩個圖斑的無縫拼接時,可以把圖斑拉伸覆蓋確定邊界的圖斑的一部分,然后用下面的圖斑剪區(qū)上面的圖斑。
方法二:圖斑之間有小的縫隙,可以先在縫隙上任意補(bǔ)畫一個圖斑,然后合并(merge)圖斑,最后再剪切(Clip)即可得到無縫的圖斑。
如下圖所示:
24.利用兩個相交圖斑創(chuàng)建新圖斑。
兩個圖斑都選中然后 Eidtor 工具條intersect,此方法原圖斑不會被接切。
25.屬性表中選擇集與非選擇集的切換
Options/switch selection
26.快速把選擇的要素另存為一個圖層并加載進(jìn)來。
先選責(zé)需要另存圖層的要素(直接選擇或者屬性表),然后在圖層上右鍵Selection/create Layer From Selected Features。
(以前都是直接export竟然沒有發(fā)現(xiàn))
27.利用Hyperlinks豐富數(shù)據(jù)庫,為其添加超鏈接。
單擊rowse工具欄中Identify按鈕。 單擊地圖中一個要素,在Identify Results窗口右擊需要設(shè)置超鏈接的要素,然后點(diǎn)擊Add Hyperlink菜單。若要將一個Web頁加為超鏈接,單擊項(xiàng),并輸入URL。要鏈接到一個文檔,單擊Link to a Document,并輸入文檔路徑名。 單擊Tools工具欄中的Hyperlink工具,并單擊圖上某一個要素即可實(shí)現(xiàn)。
使用一個屬性字段作為超鏈 在內(nèi)容表中右擊包含一個超鏈接字段的圖層,然后點(diǎn)擊properties ,單擊Display選項(xiàng)卡。選中Supprt Hyper3. Hyperlinks using field選項(xiàng),單擊下拉箭頭并點(diǎn)擊一個字段。 單擊Document or URL。單擊OK,單擊Tools中的Hyperlink按鈕,將鼠標(biāo)指移到一要素上并單擊以顯示其超鏈接。
28.Arcmap中的SQL語言
當(dāng)查詢ArcInfo coverages, shape文件, INFO表以及dBASE表時,SQL表達(dá)式中的字段名必須用雙引號擴(kuò)起。如:“AREA”,如果查詢的是個人地理數(shù)據(jù)庫數(shù)據(jù),則需要將字段名包含在方括號內(nèi),如:[AREA],如果查詢的是ArcSDE地理數(shù)據(jù)庫數(shù)據(jù)或是ArcIMS要素類或ArcIMS影象服務(wù)子層中的數(shù)據(jù),則不需要將字段名括起,如:AREA
有些運(yùn)算符和關(guān)鍵字也可能有所變化。
在查詢表達(dá)式中,字符串必須加單引號,例如:
[STATE_NAME]=‘California’
除個人地理數(shù)據(jù)庫要素類和表之外,查詢表達(dá)式中的字符串是區(qū)分字母大小寫的。如果搜索不需要區(qū)分大小寫,可以使用SQL函數(shù)將所有的值都轉(zhuǎn)換成大寫或者小寫。對于基于文件的數(shù)據(jù)源,例如shape文件或coverages,既可以使用UPPER函數(shù),也可以使用LOWER函數(shù)。
例如下面這個查詢將選出那些姓名的最后為Jones或JONES的顧客。
UPPER("LAST_NAME") = 'JONES'
可以用LIKE運(yùn)算符(不是 = 運(yùn)算符)與通配符一起構(gòu)建部分字符串查詢。
例如,表達(dá)式 [STATE_NAME] LIKE 'Miss*'將在美國州名中選擇Mississippi和Missouri。
*表示多個字符。
還比如,查詢表達(dá)式 [OWNER_NAME] LIKE '?atherine smith' 將找出Catherine Smith和Katherine Smith。
?表示單個字符。通配符的使用依賴于不同的數(shù)據(jù)庫。例子中使用的通配符只適用于個人地理數(shù)據(jù)庫。
可以使用NULL關(guān)鍵字來選擇那些在指定字段中值為NULL的要素和記錄。通常,NULL關(guān)鍵字的前面總有IS或IS NOT。
29.Select by location小結(jié)
按位置查找要素的方法
使用按位置選擇(Select By Location) 對話框,可以根據(jù)要素間的相對空間位置進(jìn)行查找??梢允褂枚喾N方法,查找在同一圖層中或不同圖層間相互鄰近或疊置的點(diǎn)、線、多邊形等要素。
被…跨越邊界(Are crossed by the outline of)
利用這種方法,選擇被另一圖層要素覆蓋的某個圖層上的要素。例如,搜索道路跨越的荒地,得到的結(jié)果是道路跨越其邊界的所有荒地。
相交(Intersect)
與Are crossed by the outline of類似,但是該方法可以選擇與參照要素接連的要素。例如,選擇與道路相交的荒地,選擇的結(jié)果將包括該道路在其邊界范圍之內(nèi)或在其邊界之上的所有荒地。
在…距離范圍內(nèi)(Are within a distance of)
這一方法將選擇同一圖層或不同圖層上相鄰或鄰近的要素。例如,現(xiàn)有一個包括清潔井和污染井的圖層,使用該方法可以找出距離污染井500米范圍內(nèi)的所有清潔井。同樣,也可以找出距離污染井500米范圍內(nèi)其他圖層上的水庫和農(nóng)田。還可以用該選項(xiàng)選擇與其他要素相毗鄰的要素。例如,假如用戶已選定了公司可能購買的地塊,現(xiàn)在想獲取鄰近地塊的信息。這種情況下,利用該選項(xiàng)選擇選中地塊零距離范圍內(nèi)的所有地塊即可。
中心在…里(Have their center in)
這種方法選擇某一圖層上的要素,其中心點(diǎn)落在另一圖層要素中。
完全在…內(nèi)(Are completely within)
這種方法選擇完全落在另一圖層多邊形內(nèi)部的某一圖層上的要素,例如,選擇林區(qū)里面的湖泊。通過指定一個緩沖距離,可以選擇落于多邊形內(nèi)部并距離多邊形邊界一定范圍內(nèi)的所有要素。例如,選擇林區(qū)內(nèi)部500米范圍內(nèi)的湖泊。
完全包含(Completely contain)
這種方法選擇某一圖層上完全包含另一圖層上的要素的多邊形。例如,選擇內(nèi)部包含湖泊的林區(qū)。通過指定一個緩沖距離,可以選擇在其內(nèi)部一定范圍內(nèi)包含要素的多邊形。例如,對湖泊做緩沖區(qū),可以選擇距離湖泊500米范圍內(nèi)的林區(qū)。
與…有公共線段(Share a line segment with)
這種方法選擇那些與其他要素具有公共線段、頂點(diǎn)或節(jié)點(diǎn)的要素。
與…等同(Are identical to)
這種方法選擇與另一圖層中某一要素具有同樣幾何形狀的所有要素。這時,要素類型必須相同。舉個例子:必須用多邊形選擇多邊形,用線段選擇線段,用點(diǎn)選擇點(diǎn)。
包含(Contain)
這種方法選擇某一圖層中包含另一圖層中要素的要素。這種方法與完全包含(Completely contain)方法的區(qū)別在于:要素間的邊界可以接觸。例如,使用包含(Contain)方法,即使湖泊的邊界和包含該湖泊的森林的邊界接觸,森林也會被選中。但是在用完全包含(Completely contain)方法時,森林是不會選中的。
包含于(Are Contained by)
這種方法選擇某一圖層中被另一圖層中要素包含的要素。例如,選擇被鄉(xiāng)村包圍的城市。這種方法和完全包含于(Are completely within)方法的區(qū)別在于,要素的邊界可以接觸。
與…接觸(Touch the boundary of)
如果使用包含線的圖層來選擇要素,則該方法將選擇那些與此圖層里的線有公共線段,頂點(diǎn)或端點(diǎn)(節(jié)點(diǎn))的線和多邊形要素。如果跨越了線,則這些線和多邊形將不會被選中。
如果使用包含多邊形的圖層來選擇要素,則該方法將選擇那些與此圖層里的多邊形邊界有公共線段或頂點(diǎn)的線和多邊形要素。如果跨越了多邊形邊界,則這些線和多邊形將不會被選中。
30. 如何高亮顯示指定圖層
在內(nèi)容表中右擊一個圖層,然后點(diǎn)擊Properties。
單擊Selection選項(xiàng)卡。
選中第三個選項(xiàng)(with this color),并選擇一種你想要顏色。
單擊OK。
這種設(shè)置將取代利用Selection Options對話框中所做的任何設(shè)置。
31. 將選中的要素放大至整個窗口
在內(nèi)容表中右擊包含選中要素的圖層,單擊Selection菜單,并單擊Zoom To Selected Features子菜單。
選中要素將放大至整個ArcMap窗口。
32.顯示選中要素的屬性
在內(nèi)容表中右擊選中要素所在圖層,單擊Open Attribute Table,單擊Show Selected records。
窗口中顯示出選中要素的屬性記錄。也可以打開屬性表在select和all之間切換。
33. 通過單擊要素添加文本
1). 在內(nèi)容表中,右擊需要添加標(biāo)注的圖層,單擊Properties。
2). 單擊Labels選項(xiàng)卡。
3). 單擊Label Field下拉箭頭,單擊作為標(biāo)注的字段。
4). 單擊OK。
5). 單擊Draw工具條上的Label按鈕。 應(yīng)該是只需單擊下拉箭頭選擇Label按鈕。
6). 單擊Place label at position clicked。 如果選擇了Automatically find best placement,ArcMap會自動的為標(biāo)注尋找合適的位置。
7). 單擊Choose a style,然后單擊需要的標(biāo)注樣式。
8). 在需要標(biāo)注的要素上單擊鼠標(biāo),標(biāo)注就添加上去了。
(先在Draw工具條下新建標(biāo)注組方便管理,New Annotation Group)
34. 標(biāo)注工具條和標(biāo)注管理器
如果圖層中有一些要素需要指定特殊的標(biāo)注屬性,需要在標(biāo)注管理器中生成其它的標(biāo)注類。
點(diǎn)擊左側(cè)面板上的一個圖層,在右側(cè)面板上為其添加一個新的標(biāo)注類。
個人認(rèn)為此方法雖然沒有轉(zhuǎn)為注記后的標(biāo)注靈活,但卻可以方便的實(shí)現(xiàn)自動相對智能化的標(biāo)注,相比之下更省心,提高效率。
35. 在進(jìn)行地圖查詢或編輯的時候?yàn)槭裁磿偸沁x中所有的圖層
訣竅在這里(雖然是一點(diǎn)點(diǎn)小問題,但當(dāng)我第一次遇到這個問題時卻花費(fèi)了我不少時間,甚至于懷疑自己的數(shù)據(jù)有問題)
36.建立拓?fù)潢P(guān)系檢查圖斑
先根據(jù)需要在Catalog中建立相應(yīng)的拓?fù)潢P(guān)系規(guī)則,然后在Arcmap中進(jìn)行拓?fù)涮幚?,輔助工具條Topolygon,下圖所示為重疊圖斑檢查。(也可以在Arctoolbox下的Data Management tools/topology來做)
有關(guān)geodatabase的topology規(guī)則
多邊形topology
1).must not overlay:單要素類,多邊形要素相互不能重疊
2).must not have gaps:單要素類,連續(xù)連接的多邊形區(qū)域中間不能有空白區(qū)(非數(shù)據(jù)區(qū))
3).contains point:多邊形+點(diǎn),多邊形要素類的每個要素的邊界以內(nèi)必須包含點(diǎn)層中至少一個點(diǎn)
4).boundary must be covered by:多邊形+線,多邊形層的邊界與線層重疊(線層可以有非重疊的更多要素)
5).must be covered by feature class of:多邊形+多邊形,第一個多邊形層必須被第二個完全覆蓋(省與全國的關(guān)系)
6).must be covered by:多邊形+多邊形,第一個多邊形層必須把第二個完全覆蓋(全國與省的關(guān)系)
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:點(diǎn)+多邊形,點(diǎn)層的要素必須全部在多邊形內(nèi)
11).must be covered by boundary of:點(diǎn)+多邊形,點(diǎn)必須在多邊形的邊界上
線topology
1).must not have dangle:線,不能有懸掛節(jié)點(diǎn)
2).must not have pseudo-node:線,不能有偽節(jié)點(diǎn)
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:線+點(diǎn),線層中的終點(diǎn)必須和點(diǎn)層的部分(或全部)點(diǎn)重合
12).must be covered by boundary of:線+多邊形,線被多邊形邊界重疊
13).must be covered by endpoint of:點(diǎn)+線,點(diǎn)被線終點(diǎn)完全重合
14).point must be covered by line:點(diǎn)+線,點(diǎn)都在線上
Topology工具條及功能介紹:
37.給多個要素同一賦值
選中你需要同一賦值的是所有圖斑,然后點(diǎn)擊Atrributes,此時出現(xiàn)屬性修改對話框,點(diǎn)擊根目錄是對所有要素同一賦值,點(diǎn)擊下面的支目錄則可以分別賦值。(也可以用字段計算器實(shí)現(xiàn))
38.如何根據(jù)確定的點(diǎn)畫出以他相應(yīng)的點(diǎn)
例如:我在地圖上已經(jīng)指導(dǎo)了一個一直點(diǎn),而其他的點(diǎn)在地圖上都是以他為中心畫出來的。學(xué)?! E60度,140米 意思是學(xué)校在中心點(diǎn)南偏東60度,距離是140米,這樣的點(diǎn)在arcmap中怎么加呢?我的方法有二分別如下。
1).
確定已有一個點(diǎn)圖層,其中有學(xué)校,然后:
對該圖層開始編輯
選擇工具欄editor---direction-distance tool
以中心點(diǎn)為中心,先畫角度線(arcmap左下角會有角度提示),再畫距離/半徑(注:畫的過程中點(diǎn)擊A鍵可以輸入角度值,點(diǎn)擊D鍵可以輸入距離值)
確定,即可
如果找不到direction-distance tool 的同志請看下面
Direction-distance tool is here
第二種方法就是直接編寫代碼實(shí)現(xiàn)
下面是一段示例的VBA代碼(本段代碼作者:GIS空間站 knight_sl)
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()
'定義新加三個點(diǎn)的角度和距離
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
這中方法做起來需要一點(diǎn)編程經(jīng)驗(yàn),但是比上面那中一個一個的畫的方法要先進(jìn)多了,可以把所有的點(diǎn)錄入同時畫出來。
如果你不會VBA編程,請看下面:
這是ArcGIS VBA的程序,運(yùn)行的方法:
1),運(yùn)行ArcMap,加載所需圖層;
2),Tools菜單/Macros(宏)/Visual Basic Editor(VB編輯器),這樣打開VB編輯器
3),雙擊打開VB編輯器左上工程資源管理器中的Project/ArcMap對象/ThisDocument,把上面的代碼粘進(jìn)去。注意看首行
Option Explicit如果有兩行,就刪除一行。
4),點(diǎn)擊VB編輯器工具欄的運(yùn)行按鈕運(yùn)行(或菜單 運(yùn)行/運(yùn)行子過程),就可以了,再激活A(yù)rcMap可以看到發(fā)生了什么!
或者還有一種創(chuàng)建宏的方法(不過建議對ArcGIS VBA不大熟的同志不要用這種方法):
1),運(yùn)行ArcMap,加載所需圖層;
2),Tools菜單/Macros(宏)/Macros,這樣打開宏編輯器
3),在宏名稱中輸入aaa,確定后,會打開VB編輯器,將看到有一個aaa的過程,沒有實(shí)體。你把上面的aaa過程中的代碼粘進(jìn)去,然后在前面加上
Option Explicit(這個別重復(fù)了哈)
Dim dPoint(2, 1) As Double
就可以。
4),點(diǎn)擊VB編輯器工具欄的運(yùn)行按鈕運(yùn)行(或菜單 運(yùn)行/運(yùn)行子過程),就可以了,再激活A(yù)rcMap可以看到發(fā)生了什么!
39.這里說道了工具的使用,那么就簡單的再介紹下Sketch中的幾個工具吧
Sketch construction tools的使用:
Sketch tool:主要是用來創(chuàng)造線和面特征的節(jié)點(diǎn),在你完成了草圖之后,ArcMAP就會增加最后的線段,形成矢量圖。
Arc tool:這個主要是幫你創(chuàng)造一個弧段的,選中這個工具后,先在弧段起點(diǎn)點(diǎn)一下,然后在弧段高度方向大致位置點(diǎn)一下(這個點(diǎn)是不可見的,只是給你確定弧段的高度),最后在弧段的終點(diǎn)點(diǎn)一下,就形成一條弧段了。
Direction-distance tool:這個主要是從已知某一個方向和某一個距離來確定一個點(diǎn)。首先點(diǎn)一個已知方向的點(diǎn),這是會有一條線出來,你確定好方向后,再點(diǎn)已知距離的點(diǎn),這是出來一個圓,確定距離后,直線和圓有交點(diǎn),這就是你要的點(diǎn),再上面點(diǎn)一下就ok!
Distance-distance tool:這個和上面的一樣的道理,只是它都用距離來確定一個點(diǎn),也就是兩個圓確定你要的點(diǎn)。
Endpoint arc tool:這也是創(chuàng)造弧段用的,與Arc tool 工具不同的是,它是先在弧段的起點(diǎn)點(diǎn)一下,然后在弧段的終點(diǎn)點(diǎn)一下,再點(diǎn)一個點(diǎn)確定弧段的半徑。個人認(rèn)為這個工具要比Arc tool工具更精確些。
Intersection tool:就是利用兩條直線確定一個點(diǎn)。很簡單一用就會!
Midpoint tool:確定中點(diǎn)的工具,比如馬路的中點(diǎn),你可以先點(diǎn)一邊,再點(diǎn)馬路另一邊,這時馬路的中點(diǎn)自動出現(xiàn)了。 (畫道路中線太可以試試,不過得是直線道路咯,^_^)
Tangent tool:相切弧段工具,它能夠在一條線段上畫出一條切線,只有你用其他工具畫了線段出來時你才可以用這個工具。
Trace tool: 主要是用來在跟蹤已存在的特征,比如一棟房子,你要沿房子外圍畫一條線(比如圍墻),那么你使用這個工具就非常方便,首先開始時你必須按O鍵,設(shè)置下跟蹤的間距,如100,其中還有三個角點(diǎn)的方式:mitered是直角 bevelled 是鈍角rounded是圓角。(感覺那效果有點(diǎn)像CAD的偏移咯)
40.如何標(biāo)注多個字段的屬性及分子式標(biāo)注
Propertis/label field /expression
實(shí)例:"<und>"& [單位名稱] &"</und>" & VbCrLf & " " & [PARCEL_NO]
</und> 輸出分?jǐn)?shù)線 VbCrLf 換行
效果圖:
引用GIS空間站 兔八哥文章詳解
以前用ArcGIS Label一般也就在圖層的Properties里面定義一下Label字體大小和粗細(xì)。這兩天遇到一個問題,需要在Label中顯示多個字段的內(nèi)容,比如BlockName和CompanyName。其實(shí)這個本來不是很難的問題,因?yàn)長abel中支持VB,使用[BlockName] & VbNewLine & [CompanyName]。就可以實(shí)現(xiàn)標(biāo)注中第一行顯示BlockName,第二行顯示CompanyName.
現(xiàn)在問題出來了,出圖時候希望突出BlockName效果,希望加粗顯示,而CompanyName使用一般字體。考慮了很長時間終于從ArcGIS幫助中找到了相關(guān)的內(nèi)容,原來Label的VB里面支持類似于Html的VB標(biāo)簽,比如加粗就是用<BOL>,上面問題就可以使用下面語句解決:
"<BOL>" & [BlockName] & "</BOL>" & VbNewLine & [CompanyName]
除了加粗,ArcGIS中還支持下面的文本格式標(biāo)簽:
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
需要注意的是,使用這些標(biāo)簽后,生成的Label語句在Verify按鈕中是不生效的,只對最終的顯示結(jié)果生效。
其實(shí)問題還沒有最終解決,使用VbNewLine生成的顯示結(jié)果,上下兩行缺省時居中對齊,現(xiàn)在希望它們左對齊顯示,還沒找到辦法。還有一個問題,就是ArcGIS中對點(diǎn)的Label可以選擇Label的位置,而對面沒有,缺省是放置在中間,現(xiàn)在希望放置在左上角,還沒有找到該怎么辦。
下面是一個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.用點(diǎn)構(gòu)面
ArcToolBox->Samples->Data Management->Features->Create Features From Text File
點(diǎn)組成面,最重要的是點(diǎn)序的排列,因此對數(shù)據(jù)的組織有一定的要求。
42.幾個常用的VBA代碼
在ARCGIS屬性表中增加需要的字段,并自動賦值
使用方法
1打開屬性表,選擇計算的字段,右點(diǎn)選擇Calculate Values;2.選擇“是”,進(jìn)入Field Calculator;
2選擇Advance選項(xiàng);
3 在Pre-Logic VBA Code編輯框中輸入VBA代碼;
4在下面編輯框中輸入賦值部分.
1--點(diǎn)坐標(biāo)X
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPoint As IPoint
Set pPoint = pGeo
賦值部分:
pPoint.X
2--點(diǎn)坐標(biāo)Y
VBA部分:
同上
賦值部分:
pPoint.Y
坐標(biāo)值為文件存儲的固有值,和是否使用On the Fly坐標(biāo)表示無關(guān)。返回當(dāng)前顯示的坐標(biāo)值參看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--表示點(diǎn)坐標(biāo)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--表示點(diǎn)坐標(biāo)Y
VBA部分:
同上
賦值部分:
pPoint.Y
坐標(biāo)值為On the Fly顯示的坐標(biāo),不是文件存儲的固有坐標(biāo)
10--連續(xù)編號
VBA部分:
Static lCount as long
lCount=lCount+1
賦值部分:
lCount (從1開始)
lCount-1 (從0開始)
計算面的中點(diǎn)
Dim Output As Double
Dim pArea As IArea
Set pArea = [Shape]
Output = pArea.Centroid.X(或y)
當(dāng)然這是很老的方法了,現(xiàn)在arcgis9.2以后都不需要用VBA啦,右鍵屬性表字段然后直接選擇 Caculate Geometry就可以實(shí)現(xiàn)比如面積計算,X,Y坐標(biāo)等的屬性賦值了咯。
43. 在同一圖層如何對同一要素的不同部分以不同的符號表示
(注:要實(shí)現(xiàn)這種渲染需要兩段具有不同的屬性)
44.自己做arcMAP的圖例
在Symbol property Editor中進(jìn)行制作了
1)、先在Style Manager中的左側(cè)列表中,選擇相應(yīng)的Style文件,ArcGIS默認(rèn)的符號庫文件是ESRI.Style文件,當(dāng)然也給出了C:\Documents and Settings\........................................目錄下用于用戶自定義的Style文件
2)、展開Style文件,選擇要創(chuàng)建Symbol的類型,如:Fill Symbol(面填充)、Line Symbol(線)、Marker Symbol(點(diǎn)) 然后在右側(cè)的列表中鼠標(biāo)右鍵->New
3)、在彈出的Symbol Property Editor窗體中,進(jìn)一步選擇Marker Symbol的類型,如:Simple Marker Symbol、Picture Marker Symbol等等
4)、這個時候就要根據(jù)需要開始設(shè)計符號的各種屬性了,由于不同種類的Marker Symbol有不同的屬性,因此,屬性也會不盡相同。
5)、另外介紹一個經(jīng)常需要或比較使用的步驟,我們需要設(shè)計的符號可以由ESRI提供的現(xiàn)有符號組合而成,那么我們則需要添加2個Symbol Layer,然后進(jìn)行2個Symbol Layer的疊加
6)、分別設(shè)置上述2個Symbol Layer的中的Symbol的屬性,之后確認(rèn)保存,這樣會在Style Manager中看到我們新制作的符號
45.計算屬性中相同的字段個數(shù)
選擇要計算的字段然后右鍵選擇Summarize根據(jù)相應(yīng)的要求設(shè)置參數(shù)即可實(shí)現(xiàn)。功能示意如下圖:
46.自動提取面的中點(diǎn)并加點(diǎn)
Arctoolbox->Feature-> Feature to Point
47.合并屬性相同的相鄰圖斑
使用Dissolve
當(dāng)選擇了create multipart feature時,所有具有相同屬性的圖斑將鏈接在一起做為一個圖斑。
48.提取圖斑轉(zhuǎn)折點(diǎn)坐標(biāo)
如果沒有偽節(jié)點(diǎn)那么,選中一個線或者面,打開sketch Properties,就可以看到節(jié)點(diǎn)坐標(biāo)。
還有一種方法就是:通過toolbox-datamanagement-feature-FeatureVerticesToPoints得到轉(zhuǎn)折點(diǎn)的圖層然后Add XY Coordinates,該點(diǎn)圖層的屬性表中就包含了X,Y字段,將其導(dǎo)出,就得到轉(zhuǎn)折點(diǎn)坐標(biāo)了。