admin 管理员组文章数量: 1184232
1、前言
在
GIS
系统的开发过程中,
地图符号化
其实是非常重要的一块内容。
ArcEngine
为我们提供了很多种符号样式,现在就来介绍一下
ArcEngine
中的点状符号。
2、常用的点符号
2.1、简单符号
3、实现代码
using System;using System.Windows.Forms;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Display;using stdole;namespace Win
{publicpartialclass frmMain : Form
{publicfrmMain(){InitializeComponent();
axMapControl1.AddShapeFile(@"C:\Users\DSF\Desktop\data",@"point.shp");}/// <summary>/// 简单点符号/// </summary>/// <param name="sender"></param>/// <param name="e"></param>privatevoidbtnSimpleMarkerSymbol_Click(object sender,EventArgs e){// 点符号颜色IRgbColor pMarkerSymbolColor =newRgbColor();
pMarkerSymbolColor.Red =255;
pMarkerSymbolColor.Green =0;
pMarkerSymbolColor.Blue =0;// 轮廓线颜色IRgbColor pOutlineColor =newRgbColor();
pOutlineColor.Red =0;
pOutlineColor.Green =0;
pOutlineColor.Blue =255;// 创建符号ISimpleMarkerSymbol pSimpleMarkerSymbol =newSimpleMarkerSymbol();
pSimpleMarkerSymbol.Angle =30;
pSimpleMarkerSymbol.Color = pMarkerSymbolColor;
pSimpleMarkerSymbol.Size =15;
pSimpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSSquare;
pSimpleMarkerSymbol.Outline =true;
pSimpleMarkerSymbol.OutlineColor = pOutlineColor;
pSimpleMarkerSymbol.OutlineSize =3;// 设置符号IGeoFeatureLayer pGeoFeatureLayer = axMapControl1.get_Layer(0)as IGeoFeatureLayer;IFeatureRenderer pFeatureRenderer = pGeoFeatureLayer.Renderer;ISimpleRenderer pSimpleRenderer = pFeatureRenderer as ISimpleRenderer;
pSimpleRenderer.Symbol = pSimpleMarkerSymbol as ISymbol;// 刷新地图
axMapControl1.Refresh();
axTOCControl1.Update();}/// <summary>/// 箭头符号/// </summary>/// <param name="sender"></param>/// <param name="e"></param>privatevoidbtnArrowMarkerSymbol_Click(object sender,EventArgs e){// 点符号颜色IRgbColor pRgbColor =newRgbColor();
pRgbColor.Red =255;
pRgbColor.Green =0;
pRgbColor.Blue =0;// 创建符号IArrowMarkerSymbol pArrowMarkerSymbol =newArrowMarkerSymbol();
pArrowMarkerSymbol.Angle =0;
pArrowMarkerSymbol.Color = pRgbColor;
pArrowMarkerSymbol.Length =20;
pArrowMarkerSymbol.Size =30;
pArrowMarkerSymbol.Style = esriArrowMarkerStyle.esriAMSPlain;
pArrowMarkerSymbol.Width =20;// 设置符号IGeoFeatureLayer pGeoFeatureLayer = axMapControl1.get_Layer(0)as IGeoFeatureLayer;IFeatureRenderer pFeatureRenderer = pGeoFeatureLayer.Renderer;ISimpleRenderer pSimpleRenderer = pFeatureRenderer as ISimpleRenderer;
pSimpleRenderer.Symbol = pArrowMarkerSymbol as ISymbol;// 刷新地图
axMapControl1.Refresh();
axTOCControl1.Update();}/// <summary>/// 叠加符号/// </summary>/// <param name="sender"></param>/// <param name="e"></param>privatevoidbtnMultiLayerMarkerSymbol_Click(object sender,EventArgs e){// 创建简单符号颜色IRgbColor pSimpleMarkerSymbolColor =newRgbColor();
pSimpleMarkerSymbolColor.Red =255;
pSimpleMarkerSymbolColor.Green =0;
pSimpleMarkerSymbolColor.Blue =0;// 创建箭头符号颜色IRgbColor pArrowMarkerSymbolColor =newRgbColor();
pArrowMarkerSymbolColor.Red =0;
pArrowMarkerSymbolColor.Green =255;
pArrowMarkerSymbolColor.Blue =0;// 创建简单符号ISimpleMarkerSymbol pSimpleMarkerSymbol =newSimpleMarkerSymbol();
pSimpleMarkerSymbol.Color = pSimpleMarkerSymbolColor;
pSimpleMarkerSymbol.Size =30;
pSimpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCross;// 创建箭头符号IArrowMarkerSymbol pArrowMarkerSymbol =newArrowMarkerSymbol();
pArrowMarkerSymbol.Color = pArrowMarkerSymbolColor;
pArrowMarkerSymbol.Length =20;
pArrowMarkerSymbol.Size =20;
pArrowMarkerSymbol.Style = esriArrowMarkerStyle.esriAMSPlain;
pArrowMarkerSymbol.Width =20;// 创建叠加符号IMultiLayerMarkerSymbol pMultiLayerMarkerSymbol =newMultiLayerMarkerSymbol();
pMultiLayerMarkerSymbol.AddLayer(pSimpleMarkerSymbol);
pMultiLayerMarkerSymbol.AddLayer(pArrowMarkerSymbol);// 设置符号IGeoFeatureLayer pGeoFeatureLayer = axMapControl1.get_Layer(0)as IGeoFeatureLayer;IFeatureRenderer pFeatureRenderer = pGeoFeatureLayer.Renderer;ISimpleRenderer pSimpleRenderer = pFeatureRenderer as ISimpleRenderer;
pSimpleRenderer.Symbol = pMultiLayerMarkerSymbol as ISymbol;// 刷新地图
axMapControl1.Refresh();
axTOCControl1.Update();}/// <summary>/// 字符标记符号/// </summary>/// <param name="sender"></param>/// <param name="e"></param>privatevoidbtnCharacterMarkerSymbol_Click(object sender,EventArgs e){// 点符号颜色IRgbColor pRgbColor =newRgbColor();
pRgbColor.Red =255;
pRgbColor.Green =0;
pRgbColor.Blue =0;// 创建字体IFontDisp pFontDisp =newStdFont()as IFontDisp;
pFontDisp.Name ="楷体";
pFontDisp.Size =40;// 创建符号ICharacterMarkerSymbol pCharacterMarkerSymbol =newCharacterMarkerSymbol();
pCharacterMarkerSymbol.Angle =0;
pCharacterMarkerSymbol.CharacterIndex =10084;
pCharacterMarkerSymbol.Color = pRgbColor;
pCharacterMarkerSymbol.Font = pFontDisp;
pCharacterMarkerSymbol.Size =40;// 设置符号IGeoFeatureLayer pGeoFeatureLayer = axMapControl1.get_Layer(0)as IGeoFeatureLayer;IFeatureRenderer pFeatureRenderer = pGeoFeatureLayer.Renderer;ISimpleRenderer pSimpleRenderer = pFeatureRenderer as ISimpleRenderer;
pSimpleRenderer.Symbol = pCharacterMarkerSymbol as ISymbol;// 刷新地图
axMapControl1.Refresh();
axTOCControl1.Update();}/// <summary>/// 图片符号/// </summary>/// <param name="sender"></param>/// <param name="e"></param>privatevoidbtnPictureMarkerSymbol_Click(object sender,EventArgs e){// 创建符号IPictureMarkerSymbol pPictureMarkerSymbol =newPictureMarkerSymbol();
pPictureMarkerSymbol.Angle =0;
pPictureMarkerSymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPicturePNG,@"C:\Users\DSF\Desktop\Driving_Directions32.png");
pPictureMarkerSymbol.Size =25;// 设置符号IGeoFeatureLayer pGeoFeatureLayer = axMapControl1.get_Layer(0)as IGeoFeatureLayer;IFeatureRenderer pFeatureRenderer = pGeoFeatureLayer.Renderer;ISimpleRenderer pSimpleRenderer = pFeatureRenderer as ISimpleRenderer;
pSimpleRenderer.Symbol = pPictureMarkerSymbol as ISymbol;// 刷新地图
axMapControl1.Refresh();
axTOCControl1.Update();}}}版权声明:本文标题:ArcEngine符号化——点符号 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1773733479a3565095.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论