winformqt绘制坐标系地图,保存和载入qt绘制坐标系地图一般用什么方法,用记录坐标还是用图片。

IT学习广场
& & 一般情况下B/S的系统上传图片直接保存到文件夹中。C/S的系统上传图片要把图片存到数据库中,SQL Server把数据库字段设为Image,Oracle把数据库字段设为BLOB。图片上传到数据库中的代码://浏览图片
private void btnUp_Click(object sender, EventArgs e)
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = &选择要上传的图片&;
ofd.Filter = &All Files(*.*)|*.*|位图(*.bmp)|*.bmp|JPEG(*.jpg)|*.jpg&;
ofd.ShowDialog();
textBox1.Text = ofd.FileN
if (!File.Exists(ofd.FileName))
MessageBox.Show(&照片为空&);
//上传保存到数据库
private void btnUpLoad_Click(object sender, EventArgs e)
string strPath = txtbImage.Text.Trim();
FileStream fs = new FileStream(strPath, FileMode.Open, FileAccess.Read);
byte[] byteFile = new byte[fs.Length];
fs.Read(byteFile, 0, (int)fs.Length);
fs.Close();
SqlConnection conn = new SqlConnection(&Data Source=.;Initial Catalog=TIntegrated Security=True&);
SqlCommand cmd = new SqlCommand();
cmd.Connection =
string strSql = &insert into test(FileName,Img) Values(@FileName,@Img)&;
mandText =strS
//cmd.Parameters.AddWithValue(&@FileName&, strPath);
//cmd.Parameters.AddWithValue(&@Img&, byteFile);
SqlParameter[] parameters = new SqlParameter[2];
parameters[0] = new SqlParameter(&@FileName&, SqlDbType.NVarChar, 200);
parameters[0].Value = strP
parameters[1] = new SqlParameter(&@Img&, SqlDbType.Image,int.MaxValue);
parameters[1].Value = byteF
cmd.Parameters.AddRange(parameters);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show(&上传成功&);
conn.Close();
MessageBox.Show(&上传失败!&);
}从数据库读取图片显示到窗体://读到图片显示到PictureBox
private void btnDownLoad_Click(object sender, EventArgs e)
byte[] bytF
SqlConnection conn = new SqlConnection(&Data Source=.;Initial Catalog=TIntegrated Security=True&);
SqlCommand cmd = new SqlCommand();
string strSql = &select img from test where ID=3&;
cmd.Connection =
mandText = strS
conn.Open();
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
bytFile = (Byte[])sdr[&Img&];
bytFile = new byte[0];
sdr.Close();
conn.Close();
//通过内存流MemoryStream,
//把byte[]数组fileContent加载到Image中并赋值给图片框的Image属性,
//让数据库中的图片直接显示在窗体上。
MemoryStream ms = new MemoryStream(bytFile, 0, bytFile.Length);
this.picImage.Image = Image.FromStream(ms);
//关闭内存流
ms.Close();
conn.Close();
MessageBox.Show(&失败&);winform 从数据库 保存图片到本地
[问题点数:40分,结帖人hello831109]
winform 从数据库 保存图片到本地
[问题点数:40分,结帖人hello831109]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2012年 总版技术专家分年内排行榜第一
2013年 总版技术专家分年内排行榜第七2011年 总版技术专家分年内排行榜第五2009年 总版技术专家分年内排行榜第九
本帖子已过去太久远了,不再提供回复功能。地图制图教学中创新能力的培养
地图学创新实验总结
大一下的地图学课程中,老师给我们带来了全新的教学模式,即学生以讲座的形式针对自己选择的主题,搜集资料,在老师的启发和指导下进行探索性学习,并在最终的讲座中展示成果,与同学交流。
我也幸运的参加了这次的学习活动。联系到我们的实习作业——制作南京中山陵风景区的专题旅游地图,在选择报告讲座主题时,我便决定,针对怎样将这次的实习做好做精,向大家谈谈我的看法。
报告一出,便受到大家的一致好评,这是令我非常高兴的。更重要的是,在准备,制作直到与大家交流这份报告时,我对地图学,特别是专题地图的制作,有了非常多的感悟。
在这之后的实习中,我将自己学习、体会到的众多方法、技巧、理念运用到了自己制作的这份旅游地图之中,制作出一幅令老师和同学赞赏的地图。
现在回想起整个一个学期地图学的学习,应该是成功的,特别是自己的报告讲座和实习作业,两者不但各自都很精彩,而且还具有一个主题的连贯性,自成一体。
还是得感谢老师的这种创新的教学方法。它除了是我在对这些感到一点点小成就之外,更让我从感性到理性,从理论到实践都对地图的制作有了进一步的认识与了解。
一学期的课程学下来,我在报告、制图等方面都积累了不少的经验,使我受益匪浅。
·关于讲座·
一个成功的报告讲座,需要诸多因素的共同配合。总结起来,积累准备阶段和台上的演讲两个阶段是主导报告成功与否的关键阶段。
准备阶段具体的可以分为知识准备和演讲材料的准备。知识的准备就是将平时了解、学习到的专业知识、技巧加以总结、概括、提炼,以供报告之用——这部分的内容将在后文中体现;演讲材料的准备,需要确定的是:1、此次报告的要求,如时间、对象,2、报告主题,3、采用形式 等等
以本人的报告为例,时间长短为十到二十分钟,决定了报告的内容不能太宽太广,要找到个切入点,在深度上下功夫;报告即以怎样做好实习作业——南京市中山陵旅游风景区专题旅游地图——为主题,贴近报告对象:全班同学,能吸引所有人的注意;形式上主要采用了演讲加幻灯片演示的方法,清晰、明了。
因此,在准备阶段可以遵循以下三个步骤:
最后的成果输出相比来说要求就不高了。因为使用ArcView软件进行制作,因此,一是要导出一张图片格式(*.jpg文件)的地图成图,二是要将矢量文件(*.shp以及相关文件)组织起来,保存。
至此,一个完整的制图步骤宣告结束。下面,将制图过程中的各种方法技巧等按照以上的步骤总结于下:
(1)在准备阶段明确地图的类型与目标用户是必不可少的。因为这是判断各个地物重要性排序,在发生冲突时到底哪个优先的最根本的标准,同时也影响到最终地图的风格。
(2)数据源准备时,自己找的一些地图给我后来的地图制作提供了相当大的帮助。考虑到提供的实习用底图是从一张较早的黑白普通地图上剪裁,缩放而来,它还是有些缺点,比如:比例尺信息在剪裁过程中缺失了;由于图片质量的原因,一些信息难于辨认,像公共汽车站、地名等;这张底图提供了大量的地理信息,然而对比要做的成图,一个是普通地图一个是旅游地图,一个黑白一个彩色,在制图上,风格、色调等等这张地图就基本没有参考价值。因此,不管是同一地区的其他地图——补充缺失的地理信息,还是一些专业的其他地区的旅游地图——参考其设计风格、特点,都是需要准备的。
(3)最初的设计准备时,认为计算机图形编辑软件是必不可少的——用以弥补ArcView软件在这方面的不足。结果在后来对ArcView软件的深入了解与探索之后我深感:其实ArcView在地图设计上功能已经足够强大,只是大部分的使用者没有积极探索罢了。难怪不少人看了我完全只用ArcView做出的地图,还问是否用Photoshop之类的软件修改过。当然,对于Arcview软件的使用心得与经验将在后文中重点介绍。
(4)确定最终的地图大小是整个实战阶段的第一步,也是重要的一步,并且原则上,大小一旦确定,将不再做任何改变。这一点,在手工绘制地图的时代,是再显然不过的了,一张纸就在面前,剪裁好了谁也无法放大缩小。然而到了计算机制图的时代,不少人就会迷失在强大的“缩放”功能里。他们将复杂地区的地图尽可能放大细化,一一编辑。认真负责的态度值得赞扬,错误的方法却让人无法接受:我们制作的是一幅普通的、可以打印出来的旅游地图,而非比例尺可随意变换的电子地图。因此,对待复杂地区的正确方法是制图综合。
(5)与地图大小所不同的是,地图的色彩搭配是在整个制图过程中都要注意、修改、完善的一个方面。首先,应该用质底法将整张地图分成不同区块来上底色。以这张南京中山陵风景区旅游地图来说,可以分为景区、水域和其他地区三大部分。水域使用蓝色,景区使用绿色,而其他地区的色相没有具体特定的要求。同时,水域与景区都只限定了色相,而对于色彩的另外两个要素:明度和饱和度均无要求,因此得到的色彩搭配可以说是成千上万。从开始制作到地图上的内容逐渐丰富,各个地图要素之间的关系将变得多样、复杂,及有可能产生原本协调的色彩,特别是底色的搭配,变得不再协调的情况。因此,适时地审查、修改是必要的。
(6)在确定了地图类型与用户之后,便很容易的可以得到一张地理变量重要性的列表。这个表的作用很大。第一,在跟踪数字化时,不必按照“点—线—面”的老模式、老套路去做,而是按照重要性的先后顺序来跟踪,这样做起来逻辑性更强;第二,遇到变量符号冲突的问题可以很方便的解决,因为要优先考虑的符号已经在地图上,而需要让步的符号正在编辑。以此次的实习为例可以得到这样的列表:1、景点——旅游图的核心;2、辅助设施、公共基础设施——交通路线、车站、饭店、旅馆——必要的内容;3、植被等自然地物;4、……
(7)地图符号方面,不管是自己设计还是选取已有,都需要注意两方面问题,清晰明了与风格统一。清晰明了是地图作为地理信息的载体所必需的,而风格的统一则是视觉效果上需要达到的,很难想象巨大而又粗犷的符号与小巧而又精致的符号放在一起会有什么感觉。
(8)在地图注记方面,建议对不同类型的地物作不同样式的注记,这样不但可以分类还做到了突出重点。很多人做注记时只知道一味地用同一种注记方式将地图填满,还经常造成注记叠置,这些都是急需改进的。注记的类型有很多,比较推荐的是加框注记和跟随路径的注记方式。
(9)最后的地图与地图各个辅助要素的排版设计也是关键的一步。特别是图例,有时候一个糟糕的图例比丢失了一个注记的问题还要严重得多。在图例方面建议按照“点—线—面”的方式进行分类组织。
·关于ArcView·
这段时间,我在地图的制作上学到了很多。同时也对制作地图的软件,特别是ArcView软件进行了较为深刻的探索。
众所周知的基本操作这里就不再重复了,下面我将学习中得到的一些使用经验与技巧等总结一下,共同参考、交流。
1、以工程文件(*.apr)组织地图的制作工作
在使用ArcView进行地图设计制作时,会将各种不同的点、线、面的地理要素分别在各自的层(theme)上进行编辑,然后再将其叠加到一起来得到完整的地图。在计算机中,这些层都是分别独立地以文件的形式保存。而且每次在使用加载功能将各个层添加到View中时,会发现当初设计的该层的颜色、符号样式等视觉变量全都面目全非了。
那是因为保存层信息的shp文件中只记录了各个点、线、面的空间位置信息,而颜色、形状等信息都丢失了。再次载入时计算机只好随机设置一个颜色并使用默认的符号样式了。
解决这个问题,最好的办法是将整体保存为以工程文件(*.apr)。工程文件就像一个集装箱,它将所有的层次信息收集起来,包括各个层次的详细设置,相互之间的位置关系,地图上各个注记以及地图辅助要素的设置等等所有与地图有关的信息都完整地保存下来。
这样,以后每次修改地图就不必一次次费心载入一个个的层次了。只需要简单得打开工程文件,前一次编辑的最后工作状态就出现在你的眼前。
2、更多的视觉变量选择
刚刚使用ArcView这款软件,在设计各个符号的形状、颜色等特征时,往往对软件所提供的为数不多的选择感到捉襟见肘。时常是因为找不到合适的形状与颜色而不得不退而求其次,选择使用并不令人满意的搭配。
然而事实上,解决的办法早已经有了,只是并没有发现而已。不管是颜色的数量还是个重点、线、面符号的样式都可以手动地去添加,这些资源其实早已从安装此软件开始就存在于计算机中了。
具体的做法是:打开设置层外观属性的Legend Editor面板,双击符号,在探出的窗口选择第一排的最后一个按钮,即Palette Manager面板,选择Load按钮。这时,在弹出的对话框中将路径指向软件安装文件夹下的 \av_gis30\arcview\symbols文件夹中,接着就可以看到列表框中的许多 .avp 文件了。选中其中一个,确定后即可载入进来,最后在Legend Editor点上Make Default按钮,这样以后每次都会自动载入,避免了重复劳动。
遗憾的是,这里需要指出软件的几个不足之处。一是在载入.avp文件时不支持同时选择多项。这就意味着用户只能一个个重复步骤去载入这些文件;二是若是在此过程中,同一个文件被载入了多次,在选项中就会增加相同的内容。比如加载了提供更多颜色的文件两次,那么在颜色选择时会发现许多可选颜色都重复了。
在避免了上述由软件“先天不足”造成的缺陷,正确的添加了这些文件之后,就可以在设置符号颜色与样式时有相当多的选择了。
3、灵活运用多样的地图注记方式
除了可以在地图上直接贴上文字外,ArcView还提供了多种地图注记的方式。
长按注记按钮右下的小三角符号就会弹出多重的注记方式供选择。如普通主机、带阴影注记、带箭头符号注记、加框注记、跟随路径注记等等。这些注记方式各有各的特点。比如带阴影的比较适合做图名;带箭头注记比较适合描述点状地物的符号;跟随路径注记比较适合道路、河流等现状符号。
在菜单Graphics → Text and
label defaults中,还可以详细的设置各种注记的样式。如使用的字体、字大、字色,阴影颜色,带框注记的填充色、边框色等等内容。
这样使用多种注记方方式以及对同种注记使用不同外观,地图上的注记可以变得更加丰富。
4、巧用地图符号
在设计、使用地图符号时,有很多地方都是需要注意与灵活运用的。
有多种可用符号时用最合适的。
在设计道路的线划时,会发现简单的单线视觉效果并不好,特别在复杂的背景之下,单线显得比较粗糙、单薄。通过尝试和参考其他优秀、精美的地图,我发现大部分地图的道路,特别是重要道路都使用了两遍细黑线中间其他色彩的绘制方法。比较看来这样的线划更加鲜明、突出,同时ArcView也提供了这样的线状符号,值得使用。
没有合适符号时自己巧设计。这里介绍两个例子。
(1)、符号 + 符号 = 新符号:在设计公交车站符号时,首先在软件提供的符号库中找到了公交车的符号。本想就以它作为公交车站的符号,结果在使用时发现它总是不能恰当地突出公交车站,效果并不令人满意。于是便想到用两层符号拼成新符号的办法。做法是将一个点层设置为普通的圆点样式,修改其半径至能将公交车符号包括其中,修改颜色,如蓝色。接着复制出同样的一个层,将符号设置为公交车的符号,颜色推荐为白色,层次位于前者之上。这样,视觉效果上看来就是一个呈蓝色圆形,中间镂空成公交车状的符号。相当精致,用它来做符号,醒目多了。
(2)、符号 + 注记 = 新符号:全国公认的代表学校的圆圈中一个“文”字的符号在ArcView中却无法找到,毕竟这款软件是美国制造。不过巧用符号与注记的组合可以做出这样的符号:首先选择圆圈符号,设定适当的半径;接着用普通的注记,选择适当字大与字体,将“文”字写在每个圆圈的正中。这样,一个可以“以假乱真”的学校符号就出炉了。
当然,以上的这两种方法并不是最高明的。说到好方法,不知道你对前面提到的.avp 文件是否还有印象。其实,通过直接编辑这类文件,将想要的符号设计好,再将其用前面的方法载入到ArcView可用的符号库中,就可以直接选择使用这个符号了。不过,以上的判断还只停留在理论阶段,事实上直接编辑.avp 文件的工具本人未有了解——目前还只是一个想法。
5、优化、美化图例
很多人在制作地图图例时,就直接使用ArcView中的图例一选了之。然而这显然是不合适的,总结起来有这样一些原因:自动生成的图例直接使用层文件名作为图例符号的文字解释,这样做会造成很多错误,同时 .shp 的后缀出现在图例中也是毫无意义的;另外自动生成符号并不很美观,特别是线状符号,都被扭曲成“之”字形,很不合适作为图例。
基于以上原因,优化、美化图例势在必行。不过,我们不必推翻重做,可以直接在原图上修改。右击图例,选择“simplify”,这时所有的图例元素都分开来了,可以对任意一个进行详细修改。这里,建议的修改内容有:1、将所有线条都改成直线;2、将点、线、面分类组织;3、适当修改文字解释。最后再选择全部图例元素,使用菜单Graphics → Group命令,将图例再组合成一个整体。
这样的一个过程下来,图例的效果一定令人满意了许多。
6、必不可少的对齐功能
大部分软件具有的好用的对齐功能ArcView也是有的。制图时,有很多地方使用对齐是使用且必须的。
还是以图例为例。修改好的图例怎样恢复原来的整齐排列呢。光用鼠标拖动来目测看来是不行了,这时选中所有需要对齐的元素,使用菜单Graphics → Align命令,在对话框中设置对齐方式,同时根据情况选择是否平分间距。这样经过详细调整后,一份工整的图例便得到了。
7、ArcView的中文支持问题
前面就已经提到,ArcView是来自美国的软件,它在对中文的支持上还是存在一些问题的。
在汉字输入时,ArcView并不是将中文字符作为一个全角字符,而是作为两个半角字符。这就会造成移动光标时位置出现错误,甚至是移动到了中文字符中间去。这时若是键入任何字符,哪怕是空格都会使中文字符变成面目全非的乱码。
这是软件不够完善的问题,因此建议输入中文时要特别注意,尽量少修改,出了错就直接重输一遍。
8、不同缩放下注记大小不一的问题
添加注记时,经常会遇到这样的情况:刚刚添加的所有文字本来都是设置成一样大小的,结果比较一下,却发现明显的大小不一。
一开始,本以为是软件问题。不过在后来的研究中,却发现情况是这样的。每次添加注记时,软件都会正正确确地提供设定的大小的注记,即显示在屏幕上的文字,大小是符合设置的。但是,问题就出在缩放上。注记是会随缩放来改变大小的,因为它是地图上的一部分。在两个不同缩放比率的情况下添加的当时屏幕上大小相同的注记自然不会大小一样。而且注记的长度比就是两次缩放比率之比的反比。
要想使注记等大小,解决问题的根本办法就是始终在同一个缩放比率下添加注记。
9、View与Layout存在显示差异的问题
在绝大多数用户用惯了微软的office系列的“所见即所得”的软件之后,很理所当然地认为所有的软件都应该是“所见即所得”的。然而事实的情况并不是这样。
在多次的比较与验证之后发现,在ArcView软件的地图主体编辑模式,即View模式下,屏幕上显示的地图内容与真正最终打印出来的地图并不完全的相同。而在对地图的主体、辅助要素进行设置以及最后导出的Layout模式下,显示的地图内容才是所见即所得。
也就是说,View模式与Layout模式下的地图并不相同。比较可得:View下,几乎所有的色彩都不失真,但是大部分的符号都有些夸张或变形,甚至有些符号会叠置。但是在Layout中的真实效果却不是这样。或许软件在View下并不完全与Layout中相同是为了突出编辑的各个元素吧。
这是一个相当关键的问题。它要求在编辑、设计地图时,要以Layout中的效果为最终目标,而非View中的效果。因此,在制图整个过程中都需要不断在两个模式下切换,比较。以达到最终满意的结果。
10、输出问题
针对两种不同的输出格式,有两个建议:
矢量输出时,保存的是一个个层信息文件,以及工程文件。需要注意的是,ArcView中的所有文件都是以绝对路径来保存其在计算机中的位置的。因此在转移文件时,必须保证绝对路径的一致,否则将无法正常打开工程文件。以原路径找不到特定文件的话将出现手动定位的对话框,将新路径填入并保存工程文件可以更新工程文件中的此文件的绝对路径。
栅格输出时,并不是采用屏幕截图的方法,因为那样的图像质量很差,大小也不是设定大小,而且还要剪裁。正确的方法是使用菜单File → Export命令,接着选择输出格式为jpg格式,导出即可。

我要回帖

更多关于 qt绘制坐标系 的文章

 

随机推荐