C#開發ArcGIS Engine根據座標提取對應區的屬性(點選查詢)
AE 點選查詢 IMap pMap = axMapControl1.Map; IActiveView pActiveView = pMap as IActiveView; IFeatureLayer pFeatureLayer = pMap.get_Layer(0) as IFeatureLayer; IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass; //設定點選點的位置 IPoint point = pActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(e.x, e.y); ITopologicalOperator pTOpo = point as ITopologicalOperator; double length; length = ConvertPixelsToMapUnits(pActiveView, 4); IGeometry pBuffer = pTOpo.Buffer(length); IGeometry pGeomentry = pBuffer.Envelope; //空間濾過器 ISpatialFilter pSpatialFilter = new SpatialFilter(); pSpatialFilter.Geometry = pGeomentry; //根據被選擇要素的不同,設定不同的空間濾過關係 switch (pFeatureClass.ShapeType) { case esriGeometryType.esriGeometryPoint: pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains; break; case esriGeometryType.esriGeometryPolyline: pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelCrosses; break; case esriGeometryType.esriGeometryPolygon: pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; break; } IFeatureSelection pFSelection = pFeatureLayer as IFeatureSelection; pFSelection.SelectFeatures(pSpatialFilter, esriSelectionResultEnum.esriSelectionResultNew, false); ISelectionSet pSelectionset = pFSelection.SelectionSet; ICursor pCursor; pSelectionset.Search(null, true, out pCursor); IFeatureCursor pFeatCursor = pCursor as IFeatureCursor; IFeature pFeature = pFeatCursor.NextFeature(); while (pFeature != null) { pMap.SelectFeature(pFeatureLayer, pFeature); pFeature = pFeatCursor.NextFeature(); pFeture.get_value("");//在這裡你可以寫上想要獲取的屬性的欄位 } pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphicSelection, null, null); 上述的自定義函式是將距離的轉換 private double ConvertPixelsToMapUnits(IActiveView pActiveView, double pixelUnits) { // Uses the ratio of the size of the map in pixels to map units to do the conversion IPoint p1 = pActiveView.ScreenDisplay.DisplayTransformation.VisibleBounds.UpperLeft; IPoint p2 = pActiveView.ScreenDisplay.DisplayTransformation.VisibleBounds.UpperRight; int x1, x2, y1, y2; pActiveView.ScreenDisplay.DisplayTransformation.FromMapPoint(p1, out x1, out y1); pActiveView.ScreenDisplay.DisplayTransformation.FromMapPoint(p2, out x2, out y2); double pixelExtent = x2 - x1; double realWorldDisplayExtent = pActiveView.ScreenDisplay.DisplayTransformation.VisibleBounds.Width; double sizeOfOnePixel = realWorldDisplayExtent / pixelExtent; return pixelUnits * sizeOfOnePixel; }
相關推薦
C#開發ArcGIS Engine根據座標提取對應區的屬性(點選查詢)
AE 點選查詢 IMap pMap = axMapControl1.Map; IActiveView pActiveView = pMap as IActiveView; IFeatureLayer pFeatureLayer = pMap.
ArcGIS Engine簡單圖形繪製功能的實現(點、線、面)
我們新增點、線、面來實現圖形的編輯需要使用Geometry物件類。 Point(點) 是一個0維的幾何圖形,具有X、Y座標值,以及可選的屬性,如高程值(Z值)、度量值(M值)、ID值等,可用於描述需要精確定位的物件。 Polyline(線) 是一個有序
C#基於ArcGIS Engine寫的要素圖層工具類
用於從MapControl中獲取可見圖層、獲取指定圖層名等: using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Geometry; usi
用C#和ArcGIS Engine實現在地圖上繪製形狀
初始化時將地圖控制元件MapControl傳進來,繪製過程中監聽滑鼠操作事件,適情況隱藏父級窗體,繪製點、多段線、多邊形、圓形、矩形等。 public class DrawGeometryHelper { private IMapControl2 m_pMap
C#開發系統服務時用的定時器元件(修正版)
// 相較上一版本改進 // 1. 修改Bug // 當設定每月一次頻率時,設定的Day日期如果為31,30,29,在有些年份的有些月份會丟擲異常,因為有些月份是沒有31天的,改正之後, // 如果設定了31天,則只有有31天的月份會執行。 // 2. 修正一年中某天的日期
使用ArcGIS Engine來實現地圖的點選查詢並閃爍
ArcGIS Engine沒有提供在MapControl中點選查詢的命令,只是提供了ReaderControl中的使用的點選查詢的命令,下面的程式碼就是實現點選查詢並閃爍的程式碼。 過程描述 Private Sub MapControl1_OnMouseDown(ByVal
ArcGIS Engine專題地圖渲染器的實現(入門版)
專題地圖(Thematic Map)是著重表示一種或數種自然要素特徵或社會經濟現象的地圖 專題地圖的內容由兩部分構成: 1、專題內容——圖上突出表示的自然或社會經濟現象及其有關特徵 2、地理基礎——用以標明專題要素空間位置與地理背景的普通地圖內容,主要有經緯網、水系、境界、居民地等
C#儀器數據文件解析-Excel文件(xls、xlsx)
sheet 解析 工作站 row 問題 .get 壓縮 安裝 shee 不少儀器工作站可以將數據導出為Excel文件,包括97-2003版本的xls文件和2007+的xlsx文件。 采集Excel文件相比采集pdf文件更容易、程序更健壯,畢竟Excel中數據有明確的行、列
C#儀器數據文件解析-Word文件(doc、docx)
new read ffi 數據文件 word 不同 軟件 情況下 如果 不少儀器數據報告輸出為Word格式文件,同Excel文件,Word文件doc和docx的存儲格式是不同的,相應的解析Word文件的方式也類似,主要有以下方式: 1.通過MS Word應用程序的DCOM
c語言程序設計第3周編程作業(數字特征)
對數 bsp idt 作業 表格 技術分享 很快 lec .com 題目內容: 對數字求特征值是常用的編碼算法,奇偶特征是一種簡單的特征值。對於一個整數,從個位開始對每一位數字編號,個位是1號,十位是2號,以此類推。這個整數在第n位上的數字記作x,如果x和n的奇偶性相同,
iOS11 開發你了解這些新特性嗎?(文末福利)
iOS 11 Xcode 9 編程語言 點擊標題下「異步社區」可快速關註iOS是一個強大的系統,被廣泛地應用於蘋果公司的系列產品iPhone、iPad和iTouch設備中。iOS通過這些移動設備展示了多點觸摸、在線視頻以及眾多內置傳感器的界面。本文將帶領大家認識iOS這款系統,為讀者步入後面知識的
c# 日期函數DateTime.ToString()日期的各種格式 (本人親測)
OS lan src localtime except tool 索引超出 exceptio 記錄 平時寫代碼的過程難免遇到對日期的格式轉換,這個時候很容易忘記具體格式的轉換是什麽,當然這不是什麽復雜的,查一下就能找到,但是又懶得找,為此百度一搜,也許你就可以興奮的發現這裏
<C++學習十一>標準庫string的使用(未完待續)
clu size_t ... namespace art ring star using start 使用: 1、C++標準庫負責管理和存儲字符串所占用的內存; 2、頭文件:#include<string> 3、空間域:using namespa
java小白自己動手開發一個網站之搭建一個網站需要啥(第2回)
新手小白,大神們看到什麼問題,請多多指出 目錄 新手小白,大神們看到什麼問題,請多多指出 搭建網站的流程 註冊域名 購買空間 製作網站 搭建網站的流程 搭建網站有哪些流程 1\註冊域名 2\購買空間 3\製作網站 &
C#LeetCode刷題之#819-最常見的單詞(Most Common Word)
問題 給定一個段落 (paragraph) 和一個禁用單詞列表 (banned)。返回出現次數最多,同時不在禁用列表中的單詞。題目保證至少有一個詞不在禁用列表中,而且答案唯一。 禁用列表中的單詞用小寫字母表示,不含標點符號。段落中的單詞不區分大小寫。答案都是小寫字母。 輸入:
C#LeetCode刷題之#709-轉換成小寫字母(To Lower Case)
問題 實現函式 ToLowerCase(),該函式接收一個字串引數 str,並將該字串中的大寫字母轉換成小寫字母,之後返回新的字串。 輸入: "Hello" 輸出: "hello" 輸入: "here" 輸出: "here" 輸入:
C#LeetCode刷題之#686-重複疊加字串匹配(Repeated String Match)
問題 給定兩個字串 A 和 B, 尋找重複疊加字串A的最小次數,使得字串B成為疊加後的字串A的子串,如果不存在則返回 -1。 舉個例子,A = "abcd",B = "cdabcdab"。 答案為 3, 因為 A 重複疊加三遍後為 “abcdabcdabcd”,此時 B 是其子串;A
C#LeetCode刷題之#680-驗證迴文字串 Ⅱ(Valid Palindrome II)
問題 給定一個非空字串 s,最多刪除一個字元。判斷是否能成為迴文字串。 輸入: "aba" 輸出: True 輸入: "abca" 輸出: True 解釋: 你可以刪除c字元。 注意:字串只包含從 a-z 的小寫字母。字串的最大長度是
C#LeetCode刷題之#459-重複的子字串(Repeated Substring Pattern)
問題 給定一個非空的字串,判斷它是否可以由它的一個子串重複多次構成。給定的字串只含有小寫英文字母,並且長度不超過10000。 輸入: "abab" 輸出: True 解釋: 可由子字串 "ab" 重複兩次構成。 輸入: "aba" 輸出: Fa
java小白自己動手開發一個網站之建立專案及域名訪問(第5回)
新手小白,大神們看到什麼問題,請多多指出 目錄 一、建立專案 1.建立web專案,新增一個index.html頁面, 2.建立一個本地服務tomcat,並配置(檢驗tomcat是否成功,http://localhost:8080/) 3.後將專案新增進去,本地測試