《ArcGIS Engine实现Style符号样式文件管理工具》.doc

《ArcGIS Engine实现Style符号样式文件管理工具》.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《ArcGIS Engine实现Style符号样式文件管理工具》.doc

其实我们在使用ArcGIS Engine开发完成的ServerStyle样式文件的管理功能,自我感觉有几个比较难处理的地方,写下来,与大家共享:   1.在.Net里实现System.Drawing.Image到stdole.IPicture的相互转换方法,这里就要用到个让人不经意的类System.Windows.Forms.AxHost,通过继承它实现的两个静态方法GetIPictureFromImage()和GetImageFromIPicture()来实现它们之间的相互转换方法,这具很经典吧...,方法实现如下: public static stdole.IPictureDisp GetIPictureFromImage( System.Drawing.Image image ) { ????? return OleConverter.GetIPictureFromPicture( image ) as stdole.IPictureDisp; } public static System.Drawing.Image GetImageFromIPicture( stdole.IPicture pPicture ) { ????? return OleConverter.GetPictureFromIPicture( pPicture ); }   2.通过修改模板(Gap和Mark)来改变线符号大小:在线符号编辑器功能里有个缩放符号大小的功能,我们可以通过修改线符号的ITemplate来完成这样的功能,这个功能可是我几经尝试才实现,没有功劳,也有苦劳呀!呵呵.. /// summary /// 修改模板(Gap和Mark)来改变符号大小 /// /summary private void ModifyTemplate( ITemplate pTemplate, double dblScale ) { ????? int patternElementCount = pTemplate.PatternElementCount; ????? if( patternElementCount == 0 ) ??????  return; ????? double[] dblElement = new Double[patternElementCount * 2]; ????? for( int index = 0; index patternElementCount; index++ ) ??????  pTemplate.GetPatternElement( index, out dblElement[index * 2], out dblElement[index * 2 + 1] ); ????? pTemplate.ClearPatternElements(); ????? for( int index = 0; index patternElementCount; index++ ) ??????  pTemplate.AddPatternElement( dblElement[index * 2] * dblScale, dblElement[i ndex * 2 + 1] * dblScale ); } 就是下图左上角符号预览的缩放功能,这是ArcMap里的样式管理器一样的功能 ???????? 3.还有就是要重写几个控件了,比如用ListBox显示多层符号的控件了,还有预览符号的PictureBox控件,还有显示字体和索引符号的控件,还有线LineTemplate设置控件(这个控件比较麻烦),当然这些,只要你有点.Net开发方面的基础,应该是没有问题的了!好了!其实这个功能就是内容比较多而已,当你完成第一个符号编辑器后,以后其它符号的实现方法都差不多一样的了!呵呵.. 在做符号管理功能时,对指定符号生成图片是最主要的方法之一,当然在ArcGIS Engine里也提供了丰富的接口来完成这样的功能,结合.Net的GDI+,使完成图片的生成方法更加简单!下面我传上代码的实现,希望能给大家带来一些参考。。。。 using System; using System.Drawing; using ESRI.ArcGIS.Display; using ESRI.ArcGIS.Geometry; namespace StyleConfigManager {  /// summary   /// ClsDrawSymbols 的摘要说明。  /// /summary   public class ClsDrawSymbols   {   ?? /// summary   ?? /// 从符号中创建指定大小的图片   ?? ///

文档评论(0)

wgvi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档