ImageVerifierCode 换一换
格式:DOCX , 页数:82 ,大小:37.51KB ,
资源ID:11791576      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11791576.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Qgis学习资料.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Qgis学习资料.docx

1、Qgis学习资料QGIS教程【GBPS详解】写在前面的话: 我喜欢用ArcMap来绘制地图,但今天要讲的是用一款叫QGIS的软件。 为什么要用QGIS?ArcGIS太强大了,正因为它太强大,所以,不得不考虑换一个软件。ArcGIS 10的安装包有3.75G,如此庞大的软件,的确令人生畏。而购买ArcGIS的费用也基本上是天价级别,如果不用破解,大伙都用不起。于是我一直想找寻一款免费但功能强劲的GIS软件来支持我的GBPS理论,从QGIS到DIVA-GIS,到MapWindow,又到QGIS。最后还是决定用QGIS。 QGIS,全称为Quantum GIS,是一款比较知名的免费开源GIS软件,由

2、于在这里我们不谈论二次开发,所以什么源码、编程之类一概不谈。(QGIS官网:www.qgis.org) 分割线 正文: 其实我还蛮喜欢教东西的,但是只是喜欢说教,却懒得写教程,所以可能有些地方写的不详细,还请各位看官见谅。有疑问可留言,我会尽快回复。 对了,我在写教程的过程中我会默认你在大学中上过有关GIS的课,哪怕你上课睡觉或者早就忘的差不多了都没有关系。如果没有那你最好先补一下GIS的基本常识(我对GIS也不是很精通,所以有个皮毛就可以了)。 1、下载和安装QGIS 下载地址:http:/qgis.org/downloads/QGIS-OSGeo4W-1.7.4-d211b16-Setup

3、.exe (截至2012年7月5日的最新版本为1.8.1,但我发现其不支持中文数据,所以在这提供的是1.7.4版本。大小为111M) 下载后双击安装,最好安装在非中文目录下,即路径中不要含有中文字符;而且路径名称中不要有空格,所以不能装在Program Files文件夹下面,建议装在“C:/QGIS”或“D:/QGIS”目录下。 不出意外的话,点桌面上的“Quantum GIS Desktop (1.7.4)”图标即可打开。如果报错,请XX或谷歌。 2、安装Openlayer插件 打开你的QGIS,如果操作界面看不大明白没关系,以后再讲。 为啥要装这个插件?这个插件可以在地图中添加常用的网络地

4、图为底图,对于我们绘制地图来说非常方便。支持谷歌、OpenStreetMap、Yahoo、Bing、Apple iphoto等。 执行: 插件(P)-Fetch Python plugins 这时候弹出一个框,等它下载完后,出现三个标签,选第二个,即Repositories,按“Add”,添加一个URL为:http:/build.sourcepole.ch/qgis/plugins.xml 的Repositories(字面意思可理解为放插件的仓库地址),名称随意,然后确定。 确定后会更新插件列表,从列表中选择OpenLayer安装。如果不好找试试用Filter搜索。 3、绘制地图 执行:插件(

5、P)-OpenLayer plugin-Add Google Physical Map 谷歌地图就添加到地图窗口了。(如果无聊的话你可以试试其他的地图,因为服务商都不是中国的,所以,中国的数据还是谷歌的比较详细) 画哪儿的地图呢?就画个什邡的吧,谁让什邡最近这么火呢。 先在地图上找到什邡,地图缩放到中国-四川-成都,然后上面一点就是什邡了。如果不好找,就用openLayer再添加一个谷歌的街道地图。 地儿是找着了,没有边界啊。现在到网上去找一张什邡的地图,看这里: 地图下载后 执行:Raster-Georeferencer-Georeferencer(或者直接点工具栏上的配准图标) 在新弹出的

6、窗口中点Open Raster工具。将下载的地图添加进来,需要说明的是QGIS的配准方法与ArcMap稍微有一点点差别,但本质上是一样的。这时候Add Point工具是默认选中的,QGIS需要至少添加4个配准点才能配准。先在图片上找一个配准点点一下,然后会弹出一个框提示你输入地图坐标,这时候选“From map canvas”,即从地图上拾取。点击后,配准窗口自动最小化,显示出地图窗口,然后从地图上选取与刚刚选择的配准点对应的点,点击后会自动回到配准窗口,点击确定,以添加该配准点。 下面的截图显示了我添加的四个配准点,由于我早就有什邡的边界的shp文件,所以我投机取巧仅仅是示意一下,大家在配准

7、的时候,可要仔仔细细,多添加几个配准点,而且要确保清晰准确。配准后通过转换设定和开始配准工具,即可生成带有坐标的tif位图。 回到地图主窗口,点添加位图工具,将配准后的tif图片加入。调整其透明度(双击其所在的图层),检查配准情况。 配准合格后,我们新建一个shp文件(New Shapefile Layer工具)。 类型选择线,坐标系统默认即可,设置一个名为type的新属性,格式为text,然后确定,我们将文件名命名为border.shp。 在图层窗口中选中border.shp,工具栏点“Toggle Editing”工具,开始进行编辑,左键画,右键完成。 设置snapping,执行:设置(S

8、)-Snapping options,设置border.shp的snapping最大容许值,设置为0.005m,QGIS和ArcMap的这个值的单位好像不大一样,自己试试看。 然后画边界,县界、乡镇界的type值稍微区分一下。 完成后保存编辑,我们得到这个: 设置border.shp的样式,关闭tif图片,再添加个乡镇的点shp。 最后得到: QGIS教程【GBPS详解】-2:绘制一张地图(中) 6. 七月 2012 | 0 评论| by codeychai 4、绘制道路和景点 根据之前所讲的,现在再把道路和景点临摹上去。等所有都完成后,去掉或隐藏所有网络地图。 然后适当调整每个图层的现实样式

9、,得到: 5、给城市和景点添加标注 双击城镇的图层,打开图层属性,找到“标签”的tab,启用标签,设置显示字段name,并调整标签样式。 (请原谅我写的没有那么细致,因为一项项写出来实在是太费事了,都不难,自己看看就能学会,这是我正式用QGIS的第二天,你看,我不也都自己学会了,QGIS的操作方法跟ArcMap很像,应该很容易上手的) 因为景点太多了,我们用另一种方式给他添加标签。选中景点所在的图层,点击工具栏上的“Labeling”工具,按提示设置label的样式。随着地图的缩放你会发现label会自动调整自己的位置以不遮挡其他label。这个跟ArcMap的类似。 6、排版输出jpg图片

10、执行:文件(F)-New Print Composer 这时候会弹出个排版的窗口。 工具栏上按添加新地图工具,在白纸上拖出一个画幅,放置刚刚绘制的地图。通过Move item Content工具,并配合滚轮,可以设置地图内容的位置和缩放大小。 我们选一个A3的纸张,设置为300dpi,对整个地图进行排版。输出后,得到一份简约的什邡旅游地图: 本次就先写到这,下次讲如何给地图加地形(可用于分析的地形,而非网络地图)。 QGIS教程【GBPS详解】-3:绘制一张地图(下) 7. 七月 2012 | 0 评论| by codeychai 7、添加DEM 美国的卫星数据有很多是免费的,虽然精度有限,但

11、对于县域地图来说,已经足够了。网上有很多免费的DEM可供下载,比如SRTM、ASTER GDEM等等,中科院也有相关的镜像,可以从国内下载。国外的地址请自行谷歌,我这里贴一个中科院的镜像地址: 我在这里用中科院的30米分辨率数字高程数据产品,在检索页面找到什邡市的DEM数据,有两块。因为什邡市跨越了东经103、104两个经度段。将它们分别下载下来。 解压后得到两个20M左右的img格式文件。 这两个img对于什邡市地图来说,太大了。所以最好裁剪一下,当然了,如果你的计算机硬件足够ok,也可以忽略这一步。 但在裁剪之前必须先将这两个img合并,或者你分别对两个img进行裁剪,但我想那不是一个好主

12、意。 合并两个img,执行:Raster-Miscellaneous-Merge 按提示输入两个img文件,并设置保存文件名。这里记得勾选一下No Date Value:0,否则合并后有接缝。 同时勾选一下Load into canvas when finished,这样合并完之后会自动添加到地图中去。点击确定,进行合并。 进行裁剪,执行:Raster-Extraction-Clipper 裁剪范围我用的事先准备好的shp文件,当然也可手动输入坐标范围。裁剪完成后得到一张黑不溜秋的dem_clip。 8、生成hillshade 执行:Raster-Analysis-DEM 设置输出文件名称,m

13、ode选hillshade。其他参数默认,然后确定。 将dem_clip和hillshade两层至于所有图层最后,然后hillshade置于最后。 调整dem_clip的透明度为50%,并将其Style调整为显示colormap,将Colormap标签下添加10个色段。默认的色段颜色是蓝到红,做地形渐变很难看。调整其为浅绿色到浅红色的渐变。(这一点不如ArcMap好使了,因为ArcMap有预置好的色带可选,而QGIS则需要手动调,不过调好后可以存下来备用,下次用的时候就方便了。) 调整好个图层的样式后,回到print composer,设置地图版式和布局。然后就可以输出地图了。 输出jpg后发

14、现,栅格数据输出后带了几条线,是个bug。导出pdf也同样带这条线。矢量数据输出则没有任何问题。 小结:这几天试着学了一个QGIS,顺便出这个教程,对于制图而言,发现ArcMap可以做的,QGIS基本都可以实现。有些情况下,ArcMap效率可能更高,毕竟是商业软件和免费软件的区别。但对于GBPS来说,我想QGIS已经足够了! 今天画地图只是开个小头,接下的教程里会跟大家逐一介绍如何用QGIS对规划中各个环节进行支撑,如何分析基础条件、资源、市场、空间布局,并对基础设施规划和生态环境保护等做详细介绍。 再次声明,GBPS不是出几张坡度、坡向、高程的分析图,而是一套完整的规划支持体系,如果以为GI

15、S就是谷歌地图、GIS分析就是做坡度分析,那我也无话可说,您可以出门右拐了毕竟很多做规划的人并不懂GIS每个字母代表什么意思。 Filed in: 规划与GISTags: QGIS教程, GBPS QGIS教程【GBPS详解】-4:将地图数据与规划团队分享 11. 七月 2012 | 0 评论| by codeychai 就目前国内规划项目组的成员组成来看,你可能是你所在的规划团队中唯一一个懂GIS的人,其他人不会对GIS软件进行操作,那你的成果如何让其他人也能享用? 将成果导出为jpg,这是一个不错的主意,但并不是所有的东西都转成jpg来的好使。 前三次教程主要讲如何制作一副地图,随着数据的

16、不断深入,它完全可以作为最终规划图件的底图。而这一步在规划前期(项目实地考察前)即可基本完成。 当项目考察时,你可以将地图导出为高精度的jpg,这样,项目团队在考察过程中就有了方向感。当然,有些情况下甲方会现场提供当地的一些地图资料,但在未到达项目地之前,你做的地图就是给大家最好的空间指引,甚至有时候你会发现,你做的地图会比他们给出的图件更有价值。 在项目考察的过程中,你用笔或者GPS设备记录下走过的节点,回到公司,你迫不及待的将这些点输入到GIS中,并对之前的地图做出修正。 随着项目的推进,当团队成员开始对项目地的资源进行消化的时候,你会发现,他们虽然都不会使用GIS分析软件,但他们都打开了

17、电脑桌面上的Google Earth或者在浏览器中拖拽着谷歌卫星地图。他们现在困惑的是:你给出的地图上面虽然标注的很清楚,但他们不知道这些点究竟在GE里面处于一个什么样的位置,他们在搜索框中,冒着被GFW封锁的危险,一次次的输入想要查询的内容 其实GE是一款大众化的地图浏览软件,其对卫星地图的浏览功能很强大,最为重要的是:你所在的项目组成员都会使用它! 现在要做的是:把QGIS地图导入到GE。 在QGIS中的操作很简单,在相应的图层上点击右键,选save as即可。 保存格式选择Keyhole Markup Language(KML),然后起名,保存。 双击保存后的kml,我们就可以把该图层的

18、信息在GE中加载了。 下面是加载了边界和旅游资源点的GE: 如果你的数据表中还有其他更多的信息,我相信,你的团队成员看到后,会大吃一惊,并会毫不吝啬的夸奖你的! ps:QGIS导出的格式为kml,而ArcMap可导出Kmz。Kmz可以看做是zipped kml,这两种格式都是谷歌自家的格式,GE都能打开,但ArcMap导出Kmz的时候,会把地图样式也打包进去,而QGIS导出的kml则将是GE的默认样式,你可以通过在GE中重新修改样式来自定义点线面的样式。不过这并不妨碍QGIS发挥其伟大的功能为我们这些矮穷挫的屌丝规划师们提供福音。 Filed in: 规划与GISTags: QGIS教程, G

19、BPS, GE 复制代码复制代码复制代码QGIS二次开发教程(一) QGIS二次开发教程一 用QGIS的API编写自定义应用程序 教程一:使用QGIS Canvas API编写一个简单的地图显示程序 参考翻译自Quantum GIS官方网站 事实上,我们并不是所有的时候都需要一个庞大、完整的GIS桌面应用程序,有时候我们的应用程序主要用于其他的目的,而我们所需要的只是在用程序中添加一个具有地图显示功能的小工具。譬如一个带有地图显示功能的数据库前端。 接下来我们就创建一个简单的地图小工具,功能仅仅是加载一个shape文件并用随机颜色加以显示。但是通过这个简单的例子你应该能体会到将QGIS作为一个

20、嵌入式的地图组件的潜力。 首先,在我们的应用程序里添加必要的includes: 1 / 2 / QGIS Includes 3 / 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 / 11 / Qt Includes 12 / 13 #include 14 #include 15 #include 我们用QgsApplication代替Qt中的QApplication来创建应用程序,这样可以方便地调用QGIS中的许多静态方法,比如得到库文件所在的路径等等。 各种数据的提供商plugins通过提供商注册表(

21、QgsProviderRegistry)来管理,它会根据提供商自动加载相应的plugins,我们所需要做的就是指定plugins所存放的目录,让应用程序实例化这样的提供商注册表。 QgsSingleSymbolRenderer是最基本的符号类,它用一种颜色表示点、线、多边形对象。默认情况下颜色是随机选取的,当然,你也可以自己设定希望显示的颜色。每一个矢量图层都有一个对应的符号。 地图图层注册表(QgsMapLayerRegistry)用来管理现在正在使用的图层。QgsVectorLayer 继承自QgsMapLayer,添加了矢量数据特有的功能。 最后,地图画布(QgsMapCanvas)才是

22、问题的关键,我们的地图将被绘制在这个工具上。 现在,我们开始初始化我们的应用程序: 1 int main(int argc, char * argv) 复制代码复制代码复制代码2 3 / Start the Application 4 QgsApplication app(argc, argv, true); 5 6 QString myPluginsDir = /home/timlinux/apps/lib/qgis; 7 QString myLayerPath = /home/timlinux/gisdata/brazil/BR_Cidades/; 8 QString myLayerBas

23、eName = Brasil_Cap; 9 QString myProviderName = ogr; 这样我们就得到了一个qgsapplication。 变量myLayerPath指定了plugins所在的目录。 变量myLayerPath和myLayerBaseName指向要使用的shape文件。 变量myProviderName很重要,它告诉qgis加载数据文件需要使用哪个数据提供商。一般为”ogr”或”postgres”。 现在我们可以开始创建图层了: 1 / Instantiate Provider Registry 2 QgsProviderRegistry:instance(my

24、PluginsDir); 首先我们需要初始化提供商注册表。QgsMapLayerRegistry是一个单类(singleton class),因此我们使用它的静态函数instance()传递供应商插件库的路径,在此之后它将在这个路径下查找提供商的插件。 接下来我们继续创建图层: 1 QgsVectorLayer * mypLayer = 2 new QgsVectorLayer(myLayerPath, myLayerBaseName, myProviderName); 3 QgsSingleSymbolRenderer *mypRenderer = new QgsSingleSymbolRe

25、nderer(mypLayer-geometryType(); 4 QList myLayerSet; 5 6 mypLayer-setRenderer(mypRenderer); 7 if (mypLayer-isValid() 8 9 qDebug(Layer is valid); 10 11 else 12 13 qDebug(Layer is NOT valid); 14 15 16 / Add the Vector Layer to the Layer Registry 17 QgsMapLayerRegistry:instance()-addMapLayer(mypLayer, T

26、RUE); 18 / Add the Layer to the Layer Set 19 myLayerSet.append(QgsMapCanvasLayer(mypLayer, TRUE); 复制代码复制代码这段代码的意义显而易见。我们用前面定义的变量创建了一个图层,然后给这个图层分配了一个渲染器(renderer)。在创建渲染器的时候,我们需要指定图层的几何类型,这个可以通过图层对象的geometryType()函数得到。然后将图层对象layer添加到图层列表layerset和地图图层注册表QgsMapLayerRegistry中,layerset告诉QgsMapCanvas那些图层需要渲染、它们的顺序如何。最后,我们要保证这个图层是可见的。 现在我们创建一个地图画布用于显示地图图层。 1 / Create th

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1