欢迎来到天天文库
浏览记录
ID:50247119
大小:45.00 KB
页数:6页
时间:2020-03-07
《ArcGIS Engine实现Style符号样式文件管理工具.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、其实我们在使用ArcGISEngine开发完成的ServerStyle样式文件的管理功能,自我感觉有几个比较难处理的地方,写下来,与大家共享: 1.在.Net里实现System.Drawing.Image到stdole.IPicture的相互转换方法,这里就要用到个让人不经意的类System.Windows.Forms.AxHost,通过继承它实现的两个静态方法GetIPictureFromImage()和GetImageFromIPicture()来实现它们之间的相互转换方法,这具很经典吧...,方法实现如下:publicstaticstdole.IPictureD
2、ispGetIPictureFromImage(System.Drawing.Imageimage){ returnOleConverter.GetIPictureFromPicture(image)asstdole.IPictureDisp;}publicstaticSystem.Drawing.ImageGetImageFromIPicture(stdole.IPicturepPicture){ returnOleConverter.GetPictureFromIPicture(pPicture);} 2.通过修改模板(Gap和Mark)来改变线符
3、号大小:在线符号编辑器功能里有个缩放符号大小的功能,我们可以通过修改线符号的ITemplate来完成这样的功能,这个功能可是我几经尝试才实现,没有功劳,也有苦劳呀!呵呵..//////修改模板(Gap和Mark)来改变符号大小///privatevoidModifyTemplate(ITemplatepTemplate,doubledblScale){ intpatternElementCount=pTemplate.PatternElementCount; if(patternElementCount==0)
4、 return; double[]dblElement=newDouble[patternElementCount*2]; for(intindex=0;index5、ntCount;index++) pTemplate.AddPatternElement(dblElement[index*2]*dblScale,dblElement[index*2+1]*dblScale);}就是下图左上角符号预览的缩放功能,这是ArcMap里的样式管理器一样的功能 3.还有就是要重写几个控件了,比如用ListBox显示多层符号的控件了,还有预览符号的PictureBox控件,还有显示字体和索引符号的控件,还有线LineTemplate设置控件(这个控件比较麻烦),当然这些,只要你有点.Net开发方面的基础,应该是没有问题6、的了!好了!其实这个功能就是内容比较多而已,当你完成第一个符号编辑器后,以后其它符号的实现方法都差不多一样的了!呵呵..在做符号管理功能时,对指定符号生成图片是最主要的方法之一,当然在ArcGISEngine里也提供了丰富的接口来完成这样的功能,结合.Net的GDI+,使完成图片的生成方法更加简单!下面我传上代码的实现,希望能给大家带来一些参考。。。。usingSystem;usingSystem.Drawing;usingESRI.ArcGIS.Display;usingESRI.ArcGIS.Geometry;namespaceStyleConfigManager{7、 /// ///ClsDrawSymbols的摘要说明。 /// publicclassClsDrawSymbols { /// ///从符号中创建指定大小的图片 /// publicstaticImageCreatePictureFromSymbol(ISymbolpSymbol,doubledblWidth,double dblHeight,doubledblGap) { Bitmapbitmap=newBitmap((
5、ntCount;index++) pTemplate.AddPatternElement(dblElement[index*2]*dblScale,dblElement[index*2+1]*dblScale);}就是下图左上角符号预览的缩放功能,这是ArcMap里的样式管理器一样的功能 3.还有就是要重写几个控件了,比如用ListBox显示多层符号的控件了,还有预览符号的PictureBox控件,还有显示字体和索引符号的控件,还有线LineTemplate设置控件(这个控件比较麻烦),当然这些,只要你有点.Net开发方面的基础,应该是没有问题
6、的了!好了!其实这个功能就是内容比较多而已,当你完成第一个符号编辑器后,以后其它符号的实现方法都差不多一样的了!呵呵..在做符号管理功能时,对指定符号生成图片是最主要的方法之一,当然在ArcGISEngine里也提供了丰富的接口来完成这样的功能,结合.Net的GDI+,使完成图片的生成方法更加简单!下面我传上代码的实现,希望能给大家带来一些参考。。。。usingSystem;usingSystem.Drawing;usingESRI.ArcGIS.Display;usingESRI.ArcGIS.Geometry;namespaceStyleConfigManager{
7、 /// ///ClsDrawSymbols的摘要说明。 /// publicclassClsDrawSymbols { /// ///从符号中创建指定大小的图片 /// publicstaticImageCreatePictureFromSymbol(ISymbolpSymbol,doubledblWidth,double dblHeight,doubledblGap) { Bitmapbitmap=newBitmap((
此文档下载收益归作者所有