PIE SDK點元素的繪製

 

1. 功能簡介ide

    在數據的處理中會用到點元素的繪製,目前PIE SDK支持IMarkerSymbol的點元素的繪製,MarkerSymbol對象是用於修飾點狀對象的符號,它包括ArrowMarkerSymbol(箭頭形式的符號)、CharacterMarkerSymbol(字符形式的點符號)、MultiLayerMarkerSymbol(多個符號疊加生成的新的點符號)、PictureMarkerSymbol(以圖片爲背景的點符號)、SimpleMarkerSymbol(簡單類型的點符號)這5個不一樣類型點符號的子類。下面對點元素的繪製功能進行介紹。字體

2. 功能實現說明spa

2.1. SimpleMarkerSymbol類型的點元素的繪製

2.1.1.  實現思路及原理說明

第一步3d

設置點的Geometry信息code

第二步視頻

設置點的符號對象

第三步blog

繪製元素教程

2.1.2.  核心接口與方法

接口/類接口

方法/屬性

說明

 

IMarkerElement

Geometry屬性

獲取或設置Geometry

Symbol屬性

獲取或設置符號樣式

IGraphicsContainer

AddElement(IElement element)

添加要素

ISimpleMarkerSymbol

Style屬性

樣式

2.1.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/08元素繪製/01點的繪製

視頻路徑

百度雲盤地址下/PIE視頻教程/08元素繪製/01點的繪製.avi

示例代碼

 1          /// <summary>
 2         /// 簡單點樣式的點繪製
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void toolStripButton_DrawSimplePoint_Click(object sender, EventArgs e)
 7         {
 8             //1.設置空間信息
 9             IPoint point = new PIE.Geometry.Point();
10             point.PutCoords(200, 200, 0);
11             IMarkerElement markerElement = new MarkerElement();
12             markerElement.Geometry = point as IGeometry;
13 
14             //2.設置符號信息
15             ISimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol();
16             simpleMarkerSymbol.Style = SimpleMarkerStyle.SMSCircle;
17             markerElement.Symbol = simpleMarkerSymbol as IMarkerSymbol;
18 
19             //3.繪製元素,刷新顯示           mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement);            mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
20         }
View Code

2.1.4. 示例截圖

 

2.2.  ArrowMarkerSymbol類型的點元素的繪製

2.2.1. 實現思路及原理說明

第一步

設置點的Geometry信息

第二步

設置點的符號

第三步

繪製元素

2.2.2 . 核心接口與方法

接口/類

方法/屬性

說明

 

IMarkerElement

Geometry屬性

獲取或設置Geometry

Symbol屬性

獲取或設置符號樣式

IGraphicsContainer

AddElement(IElement element)

添加要素

IArrowMarkerSymbol

Length屬性

符號的長度

Width屬性

符號的寬度

2.2.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/08元素繪製/01點的繪製

視頻路徑

百度雲盤地址下/PIE視頻教程/08元素繪製/01點的繪製.avi

示例代碼

 1         /// <summary>
 2        /// 箭頭填充樣式的點繪製
 3        /// </summary>
 4        /// <param name="sender"></param>
 5        /// <param name="e"></param>
 6         private void toolStripButton_DrawArrowMarkerSyPoint_Click(object sender, EventArgs e)
 7         {
 8             IPoint point = new PIE.Geometry.Point();
 9             point.PutCoords(200, 200, 0);
10             IMarkerElement markerElement = new MarkerElement();
11             markerElement.Geometry = point as IGeometry;
12 
13             //2.設置符號信息
14             IArrowMarkerSymbol arrowMarkSymbol = new ArrowMarkerSymbol();
15             arrowMarkSymbol.Length = 100;
16             arrowMarkSymbol.Width = 20;
17             markerElement.Symbol = arrowMarkSymbol as IMarkerSymbol;
18 
19             //3.繪製元素,刷新顯示           mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement);          mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
20         }  
View Code

2.2.4. 示例截圖

 

2.3. CharacterMarkerSymbol類型的點元素的繪製

2.3.1. 實現思路及原理說明

第一步

設置點的Geometry信息

第二步

設置點的符號

第三步

繪製元素

2.3.2.  核心接口與方法

接口/類

方法/屬性

說明

 

IMarkerElement

Geometry屬性

獲取或設置Geometry

Symbol屬性

獲取或設置符號樣式

IGraphicsContainer

AddElement(IElement element)

添加要素

ICharacterMarkerSymbol

CharacterIndex屬性

獲取或設置字體符號的編號

Font屬性

獲取或設置字體

IMarkerSymbol

Color,Size等屬性

顏色,大小等屬性

2.3.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/08元素繪製/01點的繪製

視頻路徑

百度雲盤地址下/PIE視頻教程/08元素繪製/01點的繪製.avi

示例代碼

 1         /// <summary>
 2         /// 字符樣式填充的點繪製
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void toolStripButton_DrawCharacterSyPoint_Click(object sender, EventArgs e)
 7         {
 8             //1.設置空間信息
 9             IPoint point = new PIE.Geometry.Point();
10             point.PutCoords(200, 200, 0);
11             IMarkerElement markerElement = new MarkerElement();
12             markerElement.Geometry = point as IGeometry;
13             //定義點狀符號
14             ICharacterMarkerSymbol characterMSymbol = new CharacterMarkerSymbol();
15             characterMSymbol.CharacterIndex = 111;//飛機
16             System.Drawing.Font font = new Font("ESRI Default Marker", 20);
17             characterMSymbol.Font = font;
18             //characterMSymbol,顏色,偏移量
19             IMarkerSymbol markSymbol = characterMSymbol as IMarkerSymbol;
20             markSymbol.XOffset = 20;
21             markSymbol.YOffset = 40;
22             markSymbol.Size = 24;
23             markSymbol.Color = Color.Red;
24             markerElement.Symbol = markSymbol;
25             mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement);            mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
26         } 
View Code

2.3.4. 示例截圖

 

2.4.  PictureMarkerSymbol類型的點元素的繪製

2.4.1.  實現思路及原理說明

第一步

設置點的Geometry信息

第二步

設置點的符號

第三步

繪製元素

2.4.2. 核心接口與方法

接口/類

方法/屬性

說明

 

IMarkerElement

Geometry屬性

獲取或設置Geometry

Symbol屬性

獲取或設置符號樣式

IGraphicsContainer

AddElement(IElement element)

添加要素

IPictureMarkerSymbol

CreateFromFile(string filePath)

從文件建立

2.4.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/08元素繪製/01點的繪製

視頻路徑

百度雲盤地址下/PIE視頻教程/08元素繪製/01點的繪製.avi

示例代碼

 1         /// <summary>
 2         /// 圖片樣式填充的點繪製
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void toolStripButton_DrawPicSyPoint_Click(object sender, EventArgs e)
 7         {
 8             //1.設置空間信息
 9             IPoint point = new PIE.Geometry.Point();
10             point.PutCoords(200, 200, 0);
11             IMarkerElement markerElement = new MarkerElement();
12             markerElement.Geometry = point as IGeometry;
13 
14             //2.設置符號信息
15             IPictureMarkerSymbol picMarkSymbol = new PictureMarkerSymbol();
16             OpenFileDialog openFileDialog = new OpenFileDialog();
17             openFileDialog.Filter = "Picture File|*.bmp";//jpg的格式不支持
18             openFileDialog.Title = "選擇一張圖片:";
19             openFileDialog.Multiselect = false;
20             if (openFileDialog.ShowDialog() != DialogResult.OK) return;
21             string picFilePath = openFileDialog.FileName;
22             bool ok = picMarkSymbol.CreateFromFile(picFilePath);
23             if (ok)
24             {
25                 markerElement.Symbol = picMarkSymbol as IMarkerSymbol;
26                 mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement);
27                 mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
28             }
29         }
View Code

2.4.4. 示例截圖

 

2.5.  MultiLayerMarkerSymbol類型的點元素的繪製

2.5.1.  實現思路及原理說明

第一步

設置點的Geometry信息

第二步

設置點的符號

第三步

繪製元素

2.5.2. 核心接口與方法

接口/類

方法/屬性

說明

 

IMarkerElement

Geometry屬性

獲取或設置Geometry

Symbol屬性

獲取或設置符號樣式

IGraphicsContainer

AddElement(IElement element)

添加要素

IMultiLayerMarkerSymbol

AddLayer(…)

 添加點符號樣式圖層

IMarkerSymbol

Size,Color等屬性

獲取或設置大小和顏色等屬性值

2.5.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/08元素繪製/01點的繪製

視頻路徑

百度雲盤地址下/PIE視頻教程/08元素繪製/01點的繪製.avi

示例代碼

 1          /// <summary>
 2         /// 多圖層樣式填充的點繪製
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void toolStripButton_DrawMultiLayeSyPoint_Click(object sender, EventArgs e)
 7         {
 8             //1.設置空間信息
 9             IPoint point = new PIE.Geometry.Point();
10             point.PutCoords(200, 200, 0);
11             IMarkerElement markerElement = new MarkerElement();
12             markerElement.Geometry = point as IGeometry;
13 
14             //2.設置符號信息
15             // 定義第一個字體符號
16             ICharacterMarkerSymbol characterMSymbol1 = new CharacterMarkerSymbol();
17             characterMSymbol1.CharacterIndex = 111;//飛機形狀
18             System.Drawing.Font font = new Font("ESRI Default Marker", 20);
19             characterMSymbol1.Font = font;
20 
21             // 設置顏色、大小、偏移,角度
22             IMarkerSymbol markerSymbol1 = characterMSymbol1 as IMarkerSymbol;
23             markerSymbol1.Size = 24;
24             markerSymbol1.Color = System.Drawing.Color.Red;
25             markerSymbol1.XOffset = 0;
26             markerSymbol1.YOffset = 0;
27             // markerSymbol1.Angle = 30;
28 
29             // 定義第二個字體符號
30             ICharacterMarkerSymbol characterMSymbol2 = new CharacterMarkerSymbol();
31             characterMSymbol2.CharacterIndex = 41;//正方形框
32             characterMSymbol2.Font = font;
33 
34             // 設置顏色、大小、偏移,角度
35             IMarkerSymbol markerSymbol2 = characterMSymbol2 as IMarkerSymbol;
36             markerSymbol2.Size = 36;
37             markerSymbol2.Color = System.Drawing.Color.Blue;
38             markerSymbol2.XOffset = 0;
39             markerSymbol2.YOffset = 0;
40             // markerSymbol2.Angle = 30;
41 
42             IMultiLayerMarkerSymbol multiLayerMSymbol = new MultiLayerMarkerSymbol();
43             multiLayerMSymbol.AddLayer(markerSymbol2, false);
44             multiLayerMSymbol.AddLayer(markerSymbol1, false);
45 
46             markerElement.Geometry = point as IGeometry;
47             markerElement.Symbol = multiLayerMSymbol as IMarkerSymbol;
48             //3.繪製元素,刷新顯示
49             mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement);
50             mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
51         }   
View Code

2.5.4. 示例截圖

 

相關文章
相關標籤/搜索