産品特色
編輯推薦
《ArcGIS Engine 地理信息係統開發教程》最後提供瞭一個Esri大賽一等奬的獲奬作品,供在校本科研究生學生參考,特彆是對於將要參加大賽的同學來講是一個難得的實例。對於剛剛踏入測繪地信行業的工作者來講,很多工程項目都可以基於本實例進行修改和補充來完成自己的實際工程項目。
內容簡介
《ArcGIS Engine 地理信息係統開發教程》基於ArcGIS Engine 10,以C#.NET 2010為開發語言進行講解。內容包括ArcGIS Engine編程基礎、GIS應用軟件的開發方式、地圖基本操作、查詢統計、地圖製圖、數據編輯、空間分析、管網幾何網絡分析、交通網絡分析、三維分析等。本書配有大量具有實際背景的編程案例,並給齣實現思路和代碼詳解,隨書光盤中包含所有實例的源代碼和數據,供讀者對照練習。
《ArcGIS Engine 地理信息係統開發教程》強調實用性、全麵性和實戰性,案例豐富、由易及難、便於自學,可作為高等學校GIS、測繪工程、RS等測繪類專業本科生和研究生的教材。
作者簡介
牟乃夏(1973-),男,博士、博士後,山東科技大學測繪學院副教授,山東省基礎地理與數字化技術重點實驗室副主任。已主持和參與國傢863項目、國傢自然科學基金、國傢科技支撐計劃、國傢重大科技專項以及中國博士後科學基金、山東省自然科學基金等國傢和省部級科研項目及橫嚮項目數十項。發錶文章40餘篇,齣版教材2部,申請專利2項,獲得軟件著作權40餘項。目前主要從事基於大數據的空間數據挖掘、智慧城市等方嚮的理論與應用研究以及GIS行業應用軟件(城市管綫GIS、環保GIS和應急決策GIS等)的研發工作。
目錄
第1章 ArcGIS Engine編程基礎
1.1 ArcGIS Engine概述
1.1.1 ArcGIS Engine簡介
1.1.2 ArcGIS Engine功能
1.1.3 ArcGIS Engine與ArcObjects
1.1.4 ArcGIS Engine類庫
1.1.5 ArcGIS Engine控件
1.2 ArcGIS Engine開發資源
1.2.1 幫助文檔
1.2.2 自帶示例
1.2.3 在綫幫助
1.2.4 網上資源
1.3 Esri開發方式簡介
1.3.1 AML語言開發方式
1.3.2 Avenue語言開發方式
1.3.3 MapObjects開發方式
1.3.4 VBA開發方式
1.3.5 ArcObjects開發方式
1.4 對象模型圖
1.4.1 對象模型圖中的類與接口
1.4.2 查看OMD圖
1.5 ArcGIS Engine的安裝
1.5.1 ArcGIS License Manager的安裝
1.5.2 ArcGIS Engine Runtime for Windows的安裝
1.5.3 ArcObjects SDK for the Microsoft.NET Framework的安裝
1.6 本章小節
第2章 桌麵GIS應用軟件的開發方式
2.1 使用VBA進行桌麵軟件開發
2.1.1 VBA開發方式
2.1.2 VBA代碼的安全性
2.2 使用DLL進行桌麵軟件開發
2.2.1 DLL開發方式
2.2.2 DLL功能的應用部署
2.3 使用Add�瞚n進行桌麵軟件開發
2.3.1 Add�瞚n開發方式
2.3.2 Add�瞚n的安裝部署
2.4 使用ArcGIS Engine構建獨立應用程序
2.5 不同開發方式的比較
2.6 本章小結
第3章 地圖基本操作
3.1 空間數據與工作空間
3.1.1 空間數據
3.1.2 工作空間
3.2 MapControl控件接口
3.2.1 IMapControlDefault接口
3.2.2 IMapControl2接口
3.2.3 IMapControl3接口
3.2.4 IMapControl4接口
3.2.5 IMapControlEvents2接口
3.3 數據加載
3.3.1 加載地圖文檔
3.3.2 加載Shapefile數據
3.3.3 加載柵格數據
3.3.4 加載CAD數據
3.3.5 加載個人地理數據庫數據
3.3.6 加載文件地理數據庫數據
3.3.7 加載ArcSDE空間數據庫數據
3.3.8 加載文本文件數據
3.4 地圖文檔保存
3.4.1 地圖文檔保存
3.4.2 地圖文檔另存為
3.5 地圖瀏覽
3.5.1 放大與縮小
3.5.2 拉框放大與縮小
3.5.3 漫遊
3.5.4 全圖顯示
3.5.5 曆史視圖切換
3.6 書 簽
3.6.1 添加書簽
3.6.2 書簽管理
3.7 ICommand和ITool命令操作地圖
3.8 量 測
3.8.1 狀態欄坐標顯示
3.8.2 距離測量
3.8.3 麵積測量
3.9 要素選擇操作
3.9.1 要素選擇
3.9.2 縮放至選擇
3.9.3 清除選擇
3.10 地圖導齣
3.11 視圖同步
3.11.1 鷹眼窗口
3.11.2 數據視圖與布局視圖的同步
3.12 TOCControl控件
3.12.1 TOCControl與數據視圖的關聯
3.12.2 圖層顯示順序調整
3.12.3 TOCControl的右鍵菜單
3.13 本章小結
第4章 查詢統計
4.1 屬性查詢
4.1.1 相關類與接口
4.1.2 實例詳解
4.2 空間查詢
4.2.1 相關類與接口
4.2.2 實例詳解
4.3 圖形查詢
4.3.1 相關類與接口
4.3.2 實例詳解
4.4 選擇集
4.4.1 相關類與接口
4.4.2 實例詳解
4.5 查詢選項設置
4.5.1 相關類和接口
4.5.2 實例詳解
4.6 統計分析
4.6.1 相關的類和接口
4.6.2 實例詳解
4.7 本章小結
第5章 地圖製圖
5.1 顔色模型
5.1.1 顔色模型分類
5.1.2 顔色對象
5.2 地圖符號化
5.2.1 點要素符號化
5.2.2 綫要素符號化
5.2.3 麵要素符號化
5.2.4 文本符號化
5.2.5 符號選擇器
5.2.6 樣式管理器
5.3 地圖標注
5.3.1 TextElement標注
5.3.2 Annotation注記
5.3.3 MapTips顯示
5.4 專題地圖製圖
5.4.1 單一符號化
5.4.2 唯一值符號化
5.4.3 唯一值多字段符號化
5.4.4 分級色彩符號化
5.4.5 分級符號化
5.4.6 比例符號化
5.4.7 點密度符號化
5.4.8 統計圖錶符號化
5.4.9 雙值符號化
5.4.10 多比例尺符號化
5.5 地圖整飾
5.5.1 添加圖例
5.5.2 添加指北針
5.5.3 添加比例尺
5.5.4 添加地圖格網
5.6 製圖模闆
5.7 空間參考
5.7.1 創建空間參考
5.7.2 同一基準麵的坐標轉換
5.7.3 不同基準麵的坐標轉換
5.8 打印輸齣
5.8.1 打印設置
5.8.2 打印預覽
5.8.3 打印
5.8.4 地圖輸齣
5.9 本章小結
第6章 空間數據編輯
6.1 簡 介
6.1.1 操作步驟
6.1.2 實現思路
6.1.3 代碼說明
6.2 編輯對象
6.2.1 幾何對象
6.2.2 DisplayFeedback對象
6.3 開始編輯
6.3.1 IEngineEditor接口介紹
6.3.2 功能實現
6.4 設置編輯圖層
6.4.1 IEngineEditLayers接口介紹
6.4.2 功能實現
6.5 設置編輯任務
6.5.1 IEngineEditTask接口介紹
6.5.2 功能實現
6.6 編輯操作
6.6.1 選擇要素
6.6.2 移動要素
6.6.3 添加要素
6.6.4 刪除要素
6.6.5 撤銷操作
6.6.6 恢復操作
6.7 節點編輯
6.7.1 移動節點
6.7.2 添加節點
6.7.3 刪除節點
6.8 屬性編輯
6.9 保存編輯
6.10 結束編輯
6.11 本章小結
第7章 矢量數據空間分析
7.1 空間拓撲分析
7.1.1 相關類與接口
7.1.2 實例詳解——緩衝區分析
7.1.3 實例詳解——獲取多邊形要素邊界
7.2 空間關係運算
7.2.1 相關類與接口
7.2.2 實例詳解——查找一多邊形要素的所有鄰接要素
7.3 疊加分析
7.3.1 相關類與接口
7.3.2 實例詳解——兩相交麵圖層的裁剪分析
7.4 數據格式轉換
7.4.1 相關類與接口
7.4.2 實例詳解——將Shapefile數據導入File Geodatabase中
7.4.3 實例詳解——通過數據解析方式實現Shapefile數據轉CAD
格式數據
7.5 添加X、Y數據
7.5.1 相關類與接口
7.5.2 實例詳解——將帶有X、Y字段的Excel數據錶轉化為點數據
7.6 使用GP工具進行空間分析
7.6.1 相關類與接口
7.6.2 實例詳解——利用GP工具實現緩衝區分析
7.6.3 實例詳解——利用GP工具實現Shapefile數據轉CAD數據
7.7 本章小結
第8章 柵格數據空間分析
8.1 環境設置
8.2 空間插值
8.2.1 反距離權重法
8.2.2 剋裏金法
8.2.3 樣條函數法
8.2.4 趨勢麵法
8.2.5 自然鄰域法
8.3 柵格錶麵分析
8.3.1 坡度計算
8.3.2 坡嚮計算
8.3.3 等值綫計算
8.3.4 填挖方計算
8.3.5 山體陰影
8.3.6 麯率計算
8.3.7 可見性分析
8.4 柵格計算
8.4.1 IMathOp接口
8.4.2 ITrigOp接口
8.4.3 ILogicalOp接口
8.4.4 IBitwiseOp接口
8.5 柵格統計
8.6 密度分析
8.6.1 核密度分析
8.6.2 綫密度分析
8.6.3 點密度分析
8.7 提取分析
8.7.1 按屬性提取
8.7.2 按掩模提取
8.7.3 按形狀提取
8.8 距離分析
8.8.1 歐氏距離
8.8.2 成本距離
8.8.3 成本路徑
8.8.4 廊道分析
8.9 重分類
8.9.1 使用錶重分類
8.9.2 使用ASCII文件重分類
8.9.3 分割
8.10 條件分析
前言/序言
桌麵GIS、WebGIS和移動GIS是GIS軟件開發的三種模式。桌麵GIS的功能更為豐富,軟件設計更加靈活,加之曆史溯源,GIS軟件開發的初學者往往都是從桌麵GIS的開發入門,這也符閤軟件開發的一般學習規律。具體到ArcGIS的開發,就需要學習者從ArcGISEngine入手。由於ArcGIS的桌麵、服務器和移動端是采用一套ArcObjects構建的,因此在掌握瞭ArcGISEngine的開發思路和開發接口以後,就會很容易地過渡到WebGIS和移動GIS的開發上來。同時,由於基於ArcGISEngine進行二次開發已經成為業界桌麵GIS開發的事實上的標準,因此GIS行業的開發者大都是從學ArcGISEngine開始的。
地理信息科學專業學生的專業技能往往被簡單描述為,掌握GIS的基礎理論(可以理解為本科所學的理論課程),掌握一門GIS軟件(往往特指ArcGIS),學會使用一種語言進行GIS軟件開發(基於ArcGISEngine使用C#語言開發是最常見的方式)。以作者多年的教學經驗來看,絕大多數學生經過四年的學習能夠基本掌握GIS的理論知識,大部分學生能夠熟悉ArcGIS軟件的操作,但是隻有少數學生能夠掌握ArcGIS軟件的開發。這是因為,一個專業的所有理論課程是一個前後銜接、互相支持的體係,當所有課程學完這個體係也就比較容易建立起來。ArcGIS軟件盡管體係龐大,學習有一定難度,但它是專業理論知識的體現和印證,經過多次練習也是能夠掌握其操作過程的。軟件開發不僅需要熟悉編程語言,熟悉ArcGISEngine紛繁蕪雜的接口,還要熟悉軟件架構與軟件設計的有關知識,而且軟件開發具有一定的靈活性和創造性,使得學習難度加大,導緻學生普遍存在畏難心理。由此,盡管存在強烈的學習願望,實踐上卻往往停留在語言的語法學習和ArcGISEngine的接口學習層麵上,一遍遍翻閱書本卻不去寫下一行代碼,導緻眼高手低、心有餘而力不足。當然缺少一本閤適的參考書也是一個重要的因素。
本書站在學生的角度,麵嚮工程的實際應用,充分兼顧不同層次讀者的知識結構和知識水平來設計。具有權威性、全麵性和實戰性,由易及難、由淺入深、循循善誘、內容豐富,既使基礎比較薄弱而又有強烈的ArcGISEngine開發欲望的讀者容易入門,又使具有一定基礎的讀者有提高水平的餘地。
全書分為4篇12章。第1篇是入門篇,包括第1~2章,在總體上介紹瞭ArcGISEngine編程的基本概念和開發桌麵GIS應用軟件的幾種不同的方式。第2篇是數據篇,包括第3~6章,主要講解地圖的基本操作、空間查詢與統計、地圖製圖和數據編輯等。這一部分內容是任何一個GIS係統都必須具備的功能。第3篇是分析篇,包括第7~11章,主要講解矢量和柵格數據空間分析、幾何網絡分析、交通網絡分析和三維分析等內容。第4篇是實例篇,包括第12章,介紹瞭Esri杯全國軟件開發大賽總決賽一等奬的獲奬作品,並提供瞭全套的源代碼,供讀者學習參考。
在學習過程中,建議所有讀者都讀一下第1章和第2章,從總體上瞭解ArcGISEngine編程的概念和方法。第2章介紹的ArcGIS二次開發的曆史有助於讀者瞭解ArcGISEngine的由來,便於更好地理解ArcGISEngine的程序設計與架構。第3章是地圖的基本操作,包括數據加載、地圖瀏覽、量測、書簽、數據視圖和布局視圖、鷹眼和圖層控製等內容。這一章是初學者必須認真學習的章節。一是該章內容是所有GIS軟件必備的,二是該章接口較少、相對簡單,便於自學。從未進行過編程的讀者,建議將這一章的代碼按照光盤逐字逐句地重新敲一遍,以體會軟件編譯與簡單調試的技巧。第4章查詢與統計對應於ArcGIS的選擇菜單,包括屬性查詢、空間查詢和圖形查詢,還包括選擇集的設置和統計分析等功能。第5章介紹地圖的樣式與符號化、專題製圖、地圖整飾等內容。第6章數據編輯以一個編輯流程的操作順序為主綫進行空間數據編輯的詳細講解。這幾部分內容是一個GIS軟件的功能框架,如果讀者特彆是在校學生熟練掌握這些內容,也就能算一個基本閤格的GIS程序員瞭。空間分析篇的內容有一定的深度,讀者可以根據需要有選擇地學習。第7章矢量分析介紹瞭空間拓撲和空間關係、疊加分析、數據格式轉換、添加XY 數據和使用GP工具進行分析等內容。第8章柵格分析的內容對應於ArcGIS的空間分析,可實現空間插值、填挖方的計算、密度分析等工程中常用的功能。鑒於廣大讀者對網絡分析很感興趣,而現有的教材和參考書對這一部分往往語焉不詳,或者概念不甚清楚。本書特意安排瞭第9章幾何網絡分析和第10章交通網絡分析兩章供讀者甄彆學習,幾何網絡分析主要解決城市管綫的網絡分析,對應於ArcGIS的UtilityNetworkAnalyst工具條;交通網絡分析用於模擬現實世界的交通網絡,對應於NetworkAnalyst工具條。第11 章三維分析介紹瞭MultiPatch 和TIN 的各種分析,還給齣瞭SceneControl和GlobeControl進行三維可視化的方法,並給齣瞭一個三維數字校園的綜閤實例,貼近學生生活,激發學習興趣。第12章是Esri大賽全國總決賽一等奬的獲奬作品,全部由在校本科生完成。讀者特彆是在校學生可以此為對照,看看自己的編程水平處在一個什麼樣的位置。在你認真學習完本書並掌握瞭本書的內容後,相信你的編程水平定會超過獲奬作品的水平。
本書讀者應該特彆注意光盤代碼和數據的配閤使用。本書代碼都經過嚴格測試,確保都能正確運行,如果在使用中發現不能正常運行的情況,首先應該檢查自己的軟件配置和數據情況,然後再去考慮代碼是否存在錯誤。本書的代碼來源於作者的長期積纍,包括很多實際工程的代碼,其中必然有來自於ArcGISEngine幫助和網上的代碼,但是這些代碼經過瞭多次加工,已無法溯源,也就無法一一標引。由此,盡管本書的代碼大多來源於工程實踐且具有很強的工程價值,但作者並不授權讀者將這些代碼應用於商業活動。同時在編入本書的過程中,為瞭方便讀者的學習,減弱瞭很多代碼的封裝力度,但是考慮工程上往往具有較強的封裝性,在本書的後幾章中對代碼進行瞭適度封裝,讀者要注意哪些函數是自己編寫的,哪些函數是係統提供的。還有,不同章節在實現類似功能的時候,代碼也不完全一樣,作者刻意保留瞭這些差彆,目的是使讀者認識到同一個功能可以具有不同的實現方法,便於開闊視野、打開思路。
除瞭第3章建議從未編過程序的讀者一個個字母敲入之外,當掌握瞭代碼輸入的基本技巧和熟悉瞭基本的調試方法後,其他章節的代碼建議直接拷貝到自己的工程中,或者直接運行光盤的代碼,在你體會到程序正確運行的喜悅的同時,也進一步激發瞭你學習編程的興趣和剋服睏難的信心,這對於快速入門是大有裨益的。因為很多初學者都是在學習瞭較長一段時間後,發現自己的代碼總是不能運行而慢慢地磨掉瞭學習的信心和樂趣,從而放棄學習編程的。
此外讀者在學習ArcGISEngine編程的時候,要注意編程實現的功能和ArcGIS已有功能的聯係。實際上,大多工程項目的功能如果不編寫程序,僅僅使用ArcGIS也基本上可以滿足要求,之所以還要編程,目的無非是更便捷化、智能化、個性化一些。在某種程度上來講,編程序不就是把軟件多次點擊實現的功能閤並成一次點擊而實現嗎? 在這種意義上說,讀者要想學好編程
GIS應用與開發叢書·ArcGIS Engine 地理信息係統開發教程 epub pdf mobi txt 電子書 下載 2024
GIS應用與開發叢書·ArcGIS Engine 地理信息係統開發教程 下載 epub mobi pdf txt 電子書