QGIS教程基础篇,qgis教程如何制作地图

1. 概述

城市肌理是由反映城市生态和自然环境条件的自然系统与体现在城市历史传统、经济文化和科学技术方面的人工系统相互融合、长期作用形成的空间特质,是城市、自然环境与人所共同构筑的整体,这一整体直接反映了一座城市的结构形式和类型特点反映了生活在其中的人们的历史图式反映了城市所处地域环境的文化特征。

城市肌理是历史积淀的结果,在时间的打磨中蕴含了丰富的生活内容,因而城市肌理是有一定规模、一定组织规律的人类城市聚居形态。

它涉及城市生活的方方面面,亦与城市构、城市功能及城市形态密切相关。

下面我们展示使用QGIS制作此类肌理分析图,但是QGIS并非唯一方式,用ArcGIS配合Rhino、Grasshopper、ELK或是MapBox都能做到。

2. 使用QGIS的好处

选择用QGIS,主要原因:

QGIS的图更好看,图面效果极度依赖于样式设置,而QGIS的样式设置能做到的事情,ArcGIS应该也都能做到,但QGIS导的图是带抗锯齿的。

当然,在ArcGIS里也能通过将出图分辨率设置到600PPI然后再缩小来实现抗锯齿,但QGIS在工作区里的图形也是抗锯齿的。

QGIS还有不少特色,包括而不限于免费、开源、体积相对较小、支持多种数据格式。

在作图的过程中用到了一些插件。

OpenLayersPlugin,用来将OpenStreetMap(OSM)底图载入到工作区,方便寻找要目标位置,也就是本例的曼哈顿。

OSMplacesearch,可以输入地名,搜索位置——类似于地图网站和谷歌地球,当然,不安装这个插件也没问题。

QuickOSM,用以处理OSM数据包。如果直接使用QGIS导入OSM数据,会有一些属性被放到other_tags字段中——譬如本例中关键的height。

QGIS的插件可以在菜单栏→Plugins→ManageandInstallPlugins中进行安装,在搜索栏中键入插件的名称,就能找到上述插件。

QGIS教程基础篇,qgis教程如何制作地图

QuickOSM工具

本例中使用到的工具条如下,最好在菜单栏→View→Toolbars中设置为与下图相同,以免产生找不到工具的麻烦。

QGIS教程基础篇,qgis教程如何制作地图

工具条设置

3. 数据获取

本例使用的数据来自OpenStreetMap,也可以使用水经微图进行下载。

水经微图还可以下载高清卫星影像、高程数据、历史影像、矢量道路等专业数据,如果你还没有安装水经微图,请通过关注微信公众号”水经注GIS”,然后在后台回复”微图”即可获取软件下载地址,当然也可以直接在水经注GIS官方网站下载。

QGIS教程基础篇,qgis教程如何制作地图

选择OpenStreet地图

QGIS教程基础篇,qgis教程如何制作地图

加载数据

Multipolygon除了包含建筑外轮廓,也包含其他面状要素如图中多边形块。

而这些要素,显然并非本例需要的。

要去除这些块状,可以利用表达式选取工具(图5中高亮的图标)。在窗口中输入以下表达式”building”isnotNull。

然后点窗口右下角的Select,就可以选取所有属于建筑的面状要素。

不同的数据集,其字段很可能是不同的(当然,OSM数据的格式相当固定,”building”字段表示的就是建筑类型,若是Null,也就是非建筑了),在处理数据的时候,需要查看属性表(高亮图标右边的工具,或者右键单击图层,OpenAttributeTable)根据情况来写表达式。

默认情况下,选中的要素会变成亮黄色。

此时,再右键单击图层面板中的当前图层命名为Polygons,再执行一次另存为操作。

记得在这一次操作中,勾选Saveonlyselectedfeatures。

5. 表达

虽然纽约的OSM数据相对完善,但查看属性表之后,会发现仍然有部分建筑的高度信息(height)为Null也就是说,该要素缺失高度信息。

同时,属性表中height字段的类型是Text(String),也就是字符串。

但是,如果想将数据映射到颜色渐变上,数据类型必须是整数(Integer)或者实数(Real)。

解决方法有两个

第一种方法是对数据本身进行转换:

打开图层的属性表(方法见上文),按属性表窗格中最左侧的黄色铅笔图标,开启编辑模式;

按右数第二个图标(NewColumn),新建一个字段,名为”BldgHeight”,类型(Type)选择Real,Width填5,Precision填2(Width指整个数据总位数,而Precision为小数位数,按需选择)。

按最右边的(?)图标,打开字段计算器(FieldCalculator)。

如下图中,勾选Updateexistingfield,选择刚才创建的BldgHeight,并在填写表达式的文本框中填入下述表达式,确定。

casewhen”height”isNullthen0else”height”end。

最后保存。

第二种方法,是直接使用原来的数据,但是在设置图层样式时使用表达式来进行转换。

设置样式的方法很简单,在图层面板中右键单击建筑图层,然后点选Properties。

在出现的窗口中选择Style,就可以看到如下界面。

在最顶端的下拉菜单中选择Graduated,以使用按数据选取渐变颜色这种表达类型,然后在Column中选择需要使用的数据——如果在上面使用了「方法一」,那么在这里就直接选择BldgHeight。

如果不打算动原始数据,那么就点击右边的epsilon图标,填入这个表达式:

casewhen”height”isNullthen0elsetoreal(“height”)end。

QGIS教程基础篇,qgis教程如何制作地图

完善要素缺失高度信息

在初始状态下,这个窗口的分类列表中是没有任何项目的。

在Mode的分类菜单中选取一种分类法——譬如图中的自然间断法——并且填写分类数量,然后点按「Classify」按钮,就能进行分类。

当然,也可以自己进行手动分类(AddClass)。

最后按Apply,就能在工作区域中看到效果了。

此时,可能会发现每个色块都是带描边的——而在这个例子中,描边的效果并不好。

要取消掉描边,只需要点按上图窗口中硕大的「Change」按钮,在弹出来的窗口中,选中Fill里面的SimpleFill,最后更改描边样式(BorderStyle)即可。

6. 出图

出图前,不妨改一改底图的底色。

通过菜单栏→Project→ProjectProperties打开文档选项,在General一项中,就可以看到底色设置了。

将图做出来了,还得导图。

QGIS提供了类似AutoCAD中布局的功能(Composer),在菜单栏→Project→ComposerManager中,可以对地图布局进行增加、删除等管理。

新建一个Composer,在出现的窗口左侧,很容易就能找到「Addnewmap」这个图标,戳一下,就能在画布上绘制矩形地图框了——类似于AutoCAD的视口。

而在右手边的Composition窗格,是关于文档本身的信息设置——譬如,纸张大小,导出图形的分辨率,是否以位图方式导出PDF(如果打算获得矢量文稿,在AI中进一步修改,就不要勾选了),等等;而ItemProperties窗格,则是当前选中的对象自身的特性,譬如地图的比例、比例尺/指北针这些对象的样式等等。

QGIS教程基础篇,qgis教程如何制作地图

最终出图效果

7. 总结

虽然这篇文章选用的工具是QGIS,但用ArcGIS也能举一反三地去做,毕竟这两个软件的内在逻辑也比较相似。

或许用ArcGIS会在数据获取、转换方面遇到一些本文没有提到的麻烦,但如果已经有一定的ArcGIS使用经验,大概也能通过查询文档和StackExchange之类的方法来解决吧。

以上案例所使用的OpenStreet数据可通过水经微图软件进行下载,除此之外水经微图可以下载高清卫星影像、高程数据、历史影像、矢量道路等专业数据,如果你还没有安装微图,请通过关注微信公众号”水经注GIS”,然后在后台回复”微图”即可获取软件下载地址,当然也可以直接在水经注GIS官方网站下载。

最后,如果您在工作中遇到与GIS相关的任何难题,请通过关注公众号”水经注GIS”并在后台留言告诉我们,我们将针对比较有典型性和代表性的问题提供解决方案,从而将我们”为您提供丰富的地图数据与专业的GIS服务”之宗旨落到实处!

本文来自作者:科技攻略,不代表小新网立场!

转载请注明:https://www.xiaoxinys.cn/450212.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。