有史以来最伟大的QGIS发布!qgis 3.0是对我们所钟爱的开放源码地理信息系统的一次大检修和清理。Qgis3.0带来了大量的新变化——我们将在这里讨论其中的重点。我们可以一如既往地提醒您,QGIS是一个开源项目,如果您能够,请考虑支持我们的工作 donations , sponsorship 或对代码文档、网站等的贡献。
Thanks
我们要感谢开发人员、文档编制人员、测试人员以及所有在那里自愿投入时间和精力的人(或者为他们提供资金)。从QGIS社区,我们希望您喜欢这个版本!如果你想捐献时间、金钱或参与到使QGIS更棒的工作中,请漫步至 qgis.org 伸出援手!
QGIS由捐助者和赞助商提供支持。在我们的网站上可以看到对该项目作出重大和小型财政捐助的捐助者的最新名单。 donors list . 如果您想成为正式的项目发起人,请访问 our sponsorship page 详情。赞助QGIS有助于我们资助我们的六个月一次的开发者会议,维护项目基础设施和资助缺陷修复工作。下面提供了当前赞助商的完整列表-非常感谢所有赞助商!
qgis是免费软件,您没有义务支付任何费用来使用它-事实上,我们希望鼓励人们广泛地使用它,无论您的财务或社会地位是什么-我们相信赋予人们空间决策工具将导致一个更好的社会为全人类。
|图14青铜:500欧元
2D3D.GIS |
综合可持续发展私人有限公司 |
AGE技术 |
Landplan OS股份有限公司 |
Alta流行性出血热 |
卢特拉咨询公司 |
Asociaci_n geinnova公司 |
宏达国际有限公司 |
自动知识 |
映射地理信息系统 |
bgeo打开gis,sl |
马普赞 |
考多尔林业 |
迈尔诺有限责任公司 |
Chartwell咨询有限公司 |
OSGeo.JP |
坎宁市 |
开放式地质勘探 |
坎宁市 |
像素化 |
日期:BANKGESELLSCHAFT MBH |
巴西QGIS用户组 |
Kerth+Lampe Geo Informetric GmbH博士 |
QGIS用户组(瑞典) |
福纳特股份公司 |
qtibia工程 |
森林设计研究所 |
温莎-梅登黑德皇家自治市镇 |
盖娅 |
Soltig(Soluciones en tecnology_as de informaci_n geogr_fica) |
GIS支持Sp.Z O.O. |
塞佩蒂玛 |
GKG Kassel,(Dr.-ing.Claas Leiner) |
Solargis·S·R·O |
盖亚三维有限公司 |
康明斯 |
格梅恩古达 |
TerreLogiche |
geos geod_tische软件Andreas Hellinge |
特拉格-维根 |
地理志 |
乌尔索尔 |
GIS3W |
瓦格内特 |
基建工程服务有限公司 |
WhereGroup GmbH&Co.KG公司 |
Ingenieurb_ro Kaupper |
tkt Teleconsult Kommunikationstechnik GmbH公司 |
澳大利亚保险集团有限公司(IAG) |
现在通过处理完全暴露了这一点,这是该功能驻留的逻辑位置。
此功能在OGR中可用,不再需要专用的QGIS插件来完成此任务。
taudem是一组非常特殊的工具,它需要安装一些额外的工具。所以我们决定把它变成单独的提供者,减少核心代码库的大小和维护工作。
添加了更多算法和对话框的帮助按钮,现在指向在线QGIS文档。
配置允许访问存储在联机、组织网络或本地计算机上的上下文帮助。还可以组合不同的帮助来源。
此功能由Alexander Bruy开发
新的逻辑将是开发能够遵循外部软件生命周期的插件提供者。
对于qt>5.6版本,可以在同一浮动窗口中放置多个浮动平台,它们显示为选项卡https://wobq.com/blog/qdockwidget-changes-in-56.html。
一些鼠标/指针设备(尤其是在Mac上)的分辨率更高。它们以很高的频率发送鼠标轮事件,但增量值较小。使用这种设备进行缩放无法用于快速缩放操作。这已在3.0中修复。
此功能由Matthias Kuhn开发
定位条是一个快速,随时准备,通用和可插入的搜索工具,在左下角的qgis。
目前,它可以搜索算法、动作和层名称,也可以通过键入属性值来选择当前活动层中的特征。
它很容易扩展,所以每个人都可以为他/她的国家地理编码服务或其他在线搜索或数据库搜索设施创建一个QGSlocatorFilter。
这个功能是由nyall dawson开发的
地图画布的“另存为图像”功能已经扩展,现在为用户提供了随时调整比例、分辨率和范围的可能性。范围可以限制为高宽比。还添加了另存为PDF函数,以快速将地图画布导出为与分辨率无关的PDF。
此功能由Andreas Neumann提供资金(部分资金)
此功能由开发 Mathieu Pellerin
由qgis赠款计划赞助的“向用户界面控件添加一致性”的这项工作现在已经完成并合并到master中。作为这项工作的一部分,完成了以下任务:
所有API transparency/opacity/alpha 标准化到 设置() 和 不透明度() . 方法采用介于0(透明)和1(不透明)之间的双精度值,保持与qt api的一致性。
A 新小工具qgsopacitywidget 已经创建,并且现在通过设置不透明度的UI在任何地方使用。这可以确保一致的行为,并在任何地方查找不透明度控件。
旋转 已经在API和UI中实现了标准化,所以现在总是顺时针旋转。所有旋转部件都已更新,因此它们接受-360到360之间的值。
2.x使用旋转和数据定义旋转标记的项目是透明的 升级 在3.0中打开时
在整个QGIS API中,比例API保持一致。 尺度分母与真实尺度的混淆已经被消除 现在一切都按比例分母运行。所有尺度范围调用的行为都是标准化的,具有最小/最大尺度的共同含义(以及与此相关的显式API文档)。
所有的缩放控件现在都使用标准的缩放小部件来保持整个用户界面的一致性。
现在,标签使用与其他用户界面相同的最小/最大比例定义,并且现有项目在3.0中打开时透明升级。
修复了与扩展使用相关的最突出的错误,包括违反基于规则的扩展限制的错误
感谢qgis psc和项目捐赠者赞助这项工作并允许它继续下去!
此功能由QGIS赞助商和捐助者资助。
此功能由开发 Nyall Dawson
我们有一个全新的本地三维地图视图在qgis!三维地图视图在顶部地形上显示二维地图(从项目图层渲染)。默认情况下,地形是一个平面,但可以使用带数字高程模型的栅格图层作为高度数据源。
使用“菜单视图>新建三维地图视图”添加项目的三维视图。这将使用3D地图画布创建一个新的停靠小部件。三维视图使用与二维地图视图相同的控件,使用鼠标(拖动地图以四处移动,鼠标滚轮以缩放)或键盘箭头键浏览地图。此外,还有特定于三维视图的相机控件:可以通过以下方式之一旋转和倾斜相机:
按下鼠标中键拖动鼠标
按下SHIFT键并拖动鼠标,同时按下鼠标左键
按SHIFT键并使用上/下/左/右键
此功能由 QGIS.ORG
在默认配置中,地图图层渲染为地形顶部的二维地图图像。但是,通过为某些地图层配置3D渲染器,可以更好地利用3D世界。使用3D渲染器,数据可以在3D视图中显示为真实的3D对象-这是当前支持的矢量层(所有几何类型-点、线或多边形)。这使得可视化效果更好,例如:
具有建筑足迹的多边形可以拉伸(可能具有数据定义的高度),以实现三维外观。
具有树点位置的点可以使用树的三维符号(简单的几何图形或从支持的文件格式加载的现有三维模型)进行渲染。
要配置三维渲染器,请使用“图层样式停靠”小部件或“矢量图层属性”对话框-有一个用于配置三维渲染器的新选项卡。
此功能由 QGIS.ORG
返回qgis使用的当前区域设置。默认情况下,这是当前系统区域设置。如果用户在qgis设置中启用了区域设置覆盖,则将返回覆盖区域设置。
此功能由Alexander Bruy开发
- map_crs, map_crs_definition: retrieves crs details for map
- map_units: retrieves units for map (eg 'meters','degrees')
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
Atlas表达式
atlas_layerid 和 atlas_layername :返回地图集中当前图层的图层ID和图层名称。
聚合表达式
array u agg(expression,group u by,filter):返回字段或表达式中聚合值的数组。
数组表达式
包含用于创建和操作数组(也称为列表数据结构)的表达式函数的新组。与“map”数据结构相反,数组中值的顺序很重要,其中键-值对的顺序不相关,值由键标识。
**array(value1,value2,…………):返回一个包含作为参数传递的所有值的数组。
array_append(array,value):返回在末尾添加给定值的数组。
**array u cat(array1,array2,……………):返回一个包含所有连接的给定数组的数组。
数组包含(数组,值):如果数组包含给定值,则返回true。
array \u distinct(array):返回包含给定数组的非重复值的数组。
array \u find(array,value):返回数组中某个值的索引(第一个为0)。如果找不到值,则返回-1。
array \u first(array):返回数组的第一个值。
array uget(array,index):返回数组的第n个值(第一个值为0)。
array 插入(array,pos,value):返回在给定位置添加给定值的数组。
array u intersect(array1,array2):如果array1的任何元素存在于array2中,则返回true。
array \u last(array):返回数组的最后一个值。
array 长度(array):返回数组的元素数。
array u prepend(array,value):返回一个在开头添加给定值的数组。
array \u remove \u all(array,value):返回一个数组,删除给定值的所有条目。
**array 移除位于(array,pos)**的数组:返回删除给定索引的数组。
array uReverse(array):返回给定的数组,数组值的顺序是相反的。
arrayu slice(array,start u pos,end u pos):返回数组的一部分。切片由start u pos和end u pos参数定义。
array u to u string(array,delimiter,empty u value):将数组元素连接成一个字符串,用分隔符分隔,空值用可选字符串分隔。
regexp 匹配(string,regex,empty u value):返回由捕获组捕获的所有字符串的数组,按组在提供的正则表达式中相对于字符串的显示顺序排列。
string 到数组(字符串、分隔符、空值):使用提供的分隔符和空值的可选字符串将字符串拆分为数组。
颜色表达式
创建渐变(map,discrete):从颜色字符串和步骤的映射返回渐变渐变。
日期和时间表达式
epoch(date):返回unix epoch与给定日期值之间的间隔(毫秒)。
通用表达式
env(name):获取环境变量并以字符串形式返回其内容。如果找不到变量,则返回空值。
栅格统计(层、带、属性):从栅格层返回统计信息。属性:min/max/avg/range/stdev/sum
with u variable(name,value,node):此函数为将作为第三个参数提供的任何表达式代码设置变量。这只对复杂表达式有用,因为在不同的地方需要使用相同的计算值。
几何表达式
**extend(几何,开始距离,结束距离)*:在行的开始和结束处将行字符串扩展指定的量
hausdorff 距离(几何体A,几何体B,加密分数):返回两个几何体之间的hausdorff距离。这基本上是对两个几何图形相似或不同程度的度量,较低的距离表示更相似的几何图形。
倾斜度(倾斜度(点A,点B):返回从点A到点B的天顶(0)到最低点(180)测量的倾斜度。
生成圆(圆心、半径、分段):创建一个圆形、分段的多边形。
创建椭圆(中心、半长轴、半短轴、方位角、分段):创建椭圆分段多边形。
生成正正多边形(中心、半径、边数、圆):创建正多边形。
make u triangle():帮助仍然丢失
minimal u circle(geometry,segment):返回几何体的最小封闭圆。它表示包围集合中所有几何图形的最小圆。
offset u curve(几何体、距离、分段、连接、斜接限制):返回通过将LineString几何体偏移到侧面而形成的几何体。距离在这个几何体的空间参考系中。
定向框(geom):返回表示输入几何体最小定向边界框的几何体。
不可接近极点(几何,公差):计算曲面不可接近的近似极点,该曲面是距曲面边界最远的内部点。该函数使用“多标签”算法(Vladimir Agafonkin,2016),这是一种迭代方法,确保在指定的公差范围内找到不可接近的真正极点。
Simplify(geometry,tolerance):通过使用基于距离的阈值(即Douglas-Peucker算法)删除节点来简化几何体。该算法保留了较大的几何偏差,并减少了近直线段的顶点数目。
Simplify uVw(几何,公差):通过使用基于区域的阈值(visvalingam-whyatt算法)删除节点来简化几何。该算法删除在几何图形中创建小区域的顶点,例如窄的尖峰或接近直线的段。
平滑(几何体、迭代、偏移、最小长度、最大角度):通过添加额外的节点来平滑几何体,这些节点会绕过几何体中的角。
单面缓冲区(几何图形、距离、段、连接、斜接限制):返回仅缓冲一个LineString几何图形的一侧而形成的几何图形。距离在这个几何体的空间参考系中。
层属性
crs_description 返回层的CRS描述。
映射表达式
此组包含用于创建和操作“映射”数据结构(也称为字典对象、键值对或关联数组)的表达式函数。可以为给定的键指定值。映射对象中键值对的顺序不相关。
**map(key1,value1,key2,value2,………)*:返回一个包含作为参数对传递的所有键和值的映射。
map a keys(map):以数组形式返回映射的所有键。
map uAvals(map):以数组形式返回映射的所有值。
**mapconcat(map1,map2,………………):返回包含给定映射的所有条目的映射。如果两个映射包含相同的键,则取第二个映射的值。
map u delete(map,key):返回已删除给定键及其对应值的映射。
map 存在(map,key):如果给定的键存在于映射中,则返回true。
map uget(map,key):返回给定关键点的映射值。
map 插入(map,key,value):返回一个添加了key/value的映射。
图层
包含当前项目中可用地图图层列表的新组。返回内部映射层ID。这在许多其他引用地图层的表达式函数中使用。
数学表达式
倾斜度(点A,点B):返回从点A到点B的天顶(0)到最低点(180)测量的倾斜度。
Operators
记录和属性表达式
仅从“记录”重命名
get u feature u by u id(layer,feature u id):返回层上具有ID的功能。
被选中(功能,层):如果选择了功能,则返回。如果不带参数调用,则检查当前功能。
num u selected(layer):返回给定层上选定功能的数量。默认情况下,在计算表达式的层上工作。
representate u value(value,fieldname):返回为字段值配置的representaff值。它取决于配置的小部件类型。通常,这对于“值映射”小部件很有用。
uuid():使用qt quuid::createUuid方法为每行生成一个通用唯一标识符(uuid)。每个UUID的长度为38个字符。
Relations
列出项目中所有可用表关系的新组。对于关系聚合函数很有用。
Deprecated
$scale:获取当前地图比例的旧变量。替换为**地图比例尺**
Changes
**substr()**函数中的更改
支持负起始值(例如substr('hello',-2)返回'lo')
支持负长度值(例如substr('hello',3,-1)返回'll')
长度参数现在是可选的,默认为字符串结尾(例如substr('hello world',7)返回'world')
**strpos()**现在依赖于字符串搜索中的简单字符串
**regexp \u match()**现在返回匹配正则表达式的pos
这个特性是由许多开发人员开发的
这使得在“聚合”表达式函数的过滤器中可以从父功能访问属性和几何图形。有了这个功能,就可以计算每个功能的聚合。
E.g. max "measurement" for each point_station per polygon_research_area.
或数字化要素时的默认属性值:
aggregate(layer:='countries', aggregate:='max', expression:=\"code\", filter:=intersects( $geometry, geometry(@parent) ) )
此功能由开发 Matthias Kuhn (OPENGIS.ch)
当表达式在组合上下文中使用时,这会添加一个新的item变量表达式函数。
函数接受一个参数,即组合中某个项的ID,并返回该项的变量名到值的映射。这允许您执行诸如在标签中插入文本之类的操作,以获取组合中其他项的属性,例如
将地图比例插入标签:
map_get( item_variables( 'map'),'map_scale')
将地图中心的X坐标插入标签:
x(map_get( item_variables( 'map'),'map_extent_center'))
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
添加数据定义的覆盖以控制符号层的可见性。允许用户禁用为匹配功能绘制某些符号层。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
此功能由Alexander Bruy开发
在qgis 3.0中,通过一个新引入的颜色渐变按钮小部件,颜色渐变的处理变得更好。改进包括:当重新打开项目时,会记住自定义颜色渐变设置-在小部件中实现颜色渐变反转,在qgis中启用此操作-快速访问小部件弹出菜单中的“最喜爱”颜色渐变-与目录(cpt city和colorbrewer)的交互现在更加愉快。
此功能由开发 Mathieu Pellerin
样式管理已获得重大升级。改进包括:
添加了一个新的收藏分组系统,符号列表小部件默认为
当切换层(以及跨会话)时,“符号列表”小部件中选定的标记/智能组将继续存在。
当用户添加/重命名/删除类别时,符号列表小部件将更新标记/智能组组合框。
用户现在可以在将符号保存到样式数据库的同时直接标记并添加到收藏夹中。
为了简化样式管理,组已被移除并完全替换为标签
标签已集成到导入/导出用户界面中
此功能由开发 Mathieu Pellerin
现在可以同时更改多个值的颜色和透明度,用于单波段伪颜色和调色板渲染器。只需在“值”列表中选择“值”,然后右键单击弹出菜单。
此功能由开发 Mathieu Pellerin
此功能由Mathieu Pellerin开发
请参阅https://lists.osgeo.org/pipermail/qgis-developer/2016-09/044393.html跟踪栅格伪彩色更新范围自动分类。
这个功能是由Even Rouault开发的
这将更改注释帧的渲染以使用qgis的符号引擎,这意味着所有现有的填充样式现在都可以用于注释帧的样式。
同时绘制效果和数据定义的符号参数。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
新的符号渲染器,将附近的点组合为单个渲染的标记符号。或者,标签显示已聚合到单个符号中的功能的数量。
此外,对点位移渲染器进行了一些改进,特别是:
点现在被分配给“最近”的组,而不是在搜索距离内分配给第一个组。在某些情况下,这是将特性分配给较远的集群,从而导致不太可预测的集群模式。
各个点现在在其自己的选择状态下正确显示。
大量的代码清理+文档。
对于开发人员:QGSpoint置换渲染器被拆分为一个新的纯虚拟QGSpointDistancerEnderer基类,用于处理集群检测和点分组。新的集群呈现器重用这个基类以避免代码重复。
看到人群 funding programme 了解更多详细信息。
此功能由Andreas Neumann、Qtibia Engineering(Tudor Barascu)、Karl Magnus J_nsson、geonesia(Nicolas Ponzo)和许多其他匿名支持者资助,他们的慷慨贡献也很有价值!
此功能由开发 Nyall Dawson
参见http://nyalldawson.net/2017/02/new-map-coloring-algorithms-in-qgis-3-0/
这个功能是由nyall dawson开发的
允许使用由选定颜色列表组成的颜色渐变。目前,在qgis中,无法使用您以前选择的一些颜色列表对渲染器进行分类。因此,您可以在分类后手动修改颜色,但是如果您经常使用相同的颜色方案,这是一种痛苦。基本上,它类似于颜色酿酒师的颜色渐变选项,但允许用户选择自己预设的颜色列表来使用(因为辛西娅·布鲁尔不是唯一的制图颜色专家!)
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
在每个符号层属性的底部添加一个新的复选框,允许您控制层是否启用。禁用的图层不会被绘制,但会被保存,可以在以后的阶段启用。这使得在不完全删除符号层的情况下更容易调整符号外观。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
在qgis 3.0中,对现有栅格调色板渲染器进行了调整,以便于对离散栅格层(如Landcover或Boolean栅格)进行样式设置。现在,用户可以选择重命名的“调色板/唯一值”渲染器,然后单击“添加唯一值”按钮从图层加载所有唯一栅格值。这些将使用选定的颜色渐变自动指定颜色。
唯一值计算是在后台线程中执行的,以保持UI对大型(或远程)栅格层的响应。此外,用户可以根据需要手动添加单个新类,并编辑任何现有类的关联像素值。还支持一次删除多个类,以及一次更改多个类的颜色、透明度和标签。
颜色选项板可以从文本文件加载,支持esri clr/gdal/grass颜色表格式。颜色选项板可以保存到clr文本文件中进行共享。
此功能由圣潘·亨里奥德、Satelligence(http://satelligence.com/)、鸟瞰图(http s://www.birdseyeviewgis.com/)和其他匿名支持者资助。
此功能由开发 Nyall Dawson (North Road)
Thanks to the awesome auxiliary data storage and the editable joined table, the manual label customization is now always enabled. You do not need anymore to add dedicated fields in your datasource to change labels position, rotation, or any of the possible settings for labels to activate the toolbar. No more copy of readonly datasources and so much faster labeling ! Be warned, labels are only saved along with your project file in a .qgd sqlite database, or inside the .qgz zipped project file if you chose that format. Don't forget to share that .qgd file if you want to share your project file.
对于超级用户,在数据源中使用数据定义字段的老方法仍然存在。像以前一样在层的属性中定义它们!
此功能由 French ministry of Ecology and Sustainable Developpement
此功能由开发 OSLANDIA - Paul Blottiere
为图表添加对更多数据可定义属性的支持:
距离
优先
ZIndex
IsObstacle
秀
AlwaysShow
图表起始角度
此功能由QGIS赠款计划资助。
此功能由开发 Nyall Dawson (North Road)
QGIS 3.0现在支持活动层。这些层按您确定的时间间隔自动重新渲染,以干净和无闪烁的方式。实时层对于跟踪不断变化的数据非常有用,比如汽车车队、拥有遥测数据的鸟群等等。
此功能由Kartoza&North Road开发
在实时层效果之后,只有当数据库通知qgis它应该做些什么时,它才允许触发qgis中的操作或层刷新。它需要的资源比间隔刷新更少,甚至可以用它在qgis中编写聊天应用程序代码:)
见https://vimeo.com/236604742
http://oslandia.com/en/2017/10/07/refresh-your-maps-from-postgresql/
此功能由 QGIS.org Grant application
此功能由开发 OSLANDIA - Vincent Mora
此更改允许将标签结果缓存到地图渲染后的图像中。如果缓存的标签结果图像可以在下一次渲染中重用,那么它将是,避免重新绘制参与标签问题的所有层,并解决标签解决方案。基本上这意味着 canvas refreshes as a result of changes to any NON-LABELED layer are much faster . (更改作为标记解决方案一部分的图层仍需要完全重新绘制所有标记图层)
此功能由开发 Nyall Dawson (North Road)
该功能使您可以选择 顶点范围 从一个功能。
可以通过按启动 移位+R -之后,需要单击一个特征中的起点和终点-这将选择两个特征之间的所有顶点。
右键单击或按Esc键可以随时取消范围选择。
对于闭合曲线(多边形),可以通过按住来切换到环周围的“较长”方向。 Ctrl 单击最后一点时。
节点工具(现在改名为顶点工具)经过了彻底的修改,使其更加灵活。一些更重要的变化是:
该工具现在能够同时处理多个特征,而不是要求用户首先选择一个特征,然后在第二步中编辑其顶点。因此,很容易从多个特征中选择顶点,并同时移动或删除它们。如果需要将顶点选择约束到特定的特征,则可以先使用选择工具选择特征-在这种情况下,顶点工具将仅使用选定特征的顶点。
该工具现在可以同时处理处于编辑模式的所有图层,而不只是处理当前选定的图层。逻辑上属于一起但位于不同层的特性的移动变得容易得多。但是,如果在拾取顶点时有多个选择,则会考虑当前层。
当用户将鼠标指针移到特征及其顶点上时,这些特征及其顶点会突出显示,从而提供更好的视觉反馈。
在qgis 2.x中,通过单击一个顶点,在按住鼠标左键的情况下拖动该顶点,最后释放鼠标按钮将其删除。此行为已更改为“单击单击”方法,用户首先单击一个顶点来拾取它,然后拖动它而不按任何鼠标按钮,然后通过再次单击最终目标将其放下。此更改的参数如下:
更容易精确地放置节点(不必一直对鼠标按钮施加力)
不会无意中移动节点
可以取消操作
它允许在移动节点时按空格键来平移地图。
更多信息请参见https://github.com/qgis/qgis-enhancement-proposals/issues/69。
此功能由 QWAT
矢量层属性中有一个新的选项卡可用于管理辅助存储:
一种新的行动 在项目中存储数据 在“数据定义”菜单中提供了一种简单的方法来管理属性的辅助数据:
辅助数据存储在sqlite数据库中,并通过ogr数据提供程序(而不是空间提供程序)进行管理,以尽可能小地保留数据库文件。此数据库文件(扩展名为*.qgd*)要么保存在项目文件旁边,要么直接嵌入到新的*.qgz*格式中。
看原版 pull request 还有这篇文章 which explains more
此功能由开发 Paul Blottiere / Oslandia
对QGIS中的元数据系统进行了检修。在qgis 3.0中,我们引入了我们自己的内部形式化元数据模式,它与qgis项目文件格式分离。我们引入了新的API功能来读取和写入层的元数据。我们将元数据的显示与编辑分离,并添加了一个新的元数据编辑工具。元数据当前保存在项目文件中。它还可以与基于文件的层一起保存为XML文件,或者保存在远程层的本地sqlite数据库(例如postgis)中。
您可以参考qgis增强建议(qep),了解更多关于本工作中采用的设计考虑事项- QEP-92
请注意,这是为QGIS开发完整且符合标准的元数据基础设施的第一阶段。我们正在寻求进一步的资金,以实现元数据系统的更完整的实现-请参见 this document 有关需要资金的未来计划工作包的详细信息。
QGIS元数据模式的规范是 here .
这项工作的主要资助者是 The WorldBank/GFDRR 配套资金由 NINA .
此功能由 WorldBank/GFDRR
此功能由开发 Kartoza and collaborators
我们删除了qgis 2.x版本中提供的OSM下载工具。我们鼓励您更愿意使用已经移植到qgis 3.0的quickosm插件。
此功能由Matthias Kuhn开发
这将添加一个新的配置选项,以在拖放设计器窗体中有条件地显示或隐藏选项卡和分组框。配置是通过双击字段配置界面中的设计器树来完成的。可以输入表达式来控制可见性。每当表单中的值发生更改,并且相应地显示/隐藏选项卡或分组框时,将重新计算表达式。
此功能由Matthias Kuhn开发
现在,这些小部件可以对它们处理字段类型的能力进行评分。导致更好的默认小部件。
此外,可以添加插件来选择外部信息函数中的小部件类型。其中一个使用PostgreSQL中的表,允许为每个字段指定要使用的小部件类型和配置。
自动为外键选择RelationReference小部件。
此功能由Patrick Valsecchi开发
非强制约束只向用户显示警告,但不阻止提交功能。强制约束阻止用户提交不符合的功能。所以我们现在有软警告!提供程序检测到的任何约束都将始终强制执行。
此功能由OpenGIS.ch资助。
此功能由开发 Nyall Dawson (North Road)
自动完成器在后台进行了很好的更新,这样即使相关表中有数百万条记录,图形用户界面也能保持良好的响应性。
它现在用作文本字段的搜索小部件,因此,如果将过滤器设置为文本字段,或者通过选择层并按F3启动基于表单的选择/过滤,则可以在浏览器窗口中看到。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
允许快速导航和识别符合表单条件的功能
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
允许您快速隐藏所有取消选择的图层。当您有一个大型项目并且希望快速隐藏除几个层之外的所有内容时,这非常方便。
此功能由开发 Nyall Dawson (North Road)
选中/取消选中组不会更改其子组的选中状态。仅当选中节点及其所有父节点时,节点才可见。
组不再有半选中状态
Ctrl-clic 在未选中的组上,将检查该组及其所有子代。
未选中层上的clic将检查啤酒及其所有父代。
选中的组上的ctrl clic将取消选中该组及其所有后代。
选中层上的ctrl clic将取消选中该层及其所有父级。
这些操作在树视图的上下文菜单项中可用。
不可见的层,因为它们或它们的父级未选中将灰显。
这个功能是由Even Rouault开发的
这允许映射项的CRS与画布/项目CRS不同。它还允许不同的映射项具有不同的CRS,例如,可以将概述映射设置为主映射的不同CRS。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
项目 框架 和 背景色 数据定义 作曲图片项的SVG颜色和轮廓宽度 (当图片显示北箭头时特别有用!)数据定义 图例标题和列计数 数据定义 标尺颜色和线条宽度
此功能由QGIS赠款计划资助。
此功能由开发 Nyall Dawson (North Road)
这是对如何在qgis代码中管理组件的一个重大修改。
亮点是:
一个新的QGSlayoutManager类,用于存储和序列化/反序列化组合。QGSlayoutManager附属于QGSProject。这允许核心代码访问附加到项目的组合。所有对组合的处理都从应用程序转移到了核心,使服务器(以及其他非基于应用程序的项目)更容易处理。QFrave/Road?在不使用脆弱的XML解析的情况下访问项目组合。
按需创建作曲家窗口,关闭时销毁。这就避免了在加载项目时为每个作曲家项创建所有作曲家窗口和小部件的繁重要求。 这是以前加载具有组件的项目如此缓慢的主要原因。 . 现在,只有在窗口打开时才创建作曲家窗口,而在窗口关闭时才销毁作曲家窗口。编写器项配置小部件也只能按需创建(当选择项时),而不是预创建所有小部件。
关闭时销毁作曲家窗口的一个附带好处是 我们现在不再忍受qt错误了 这阻止了在作曲家窗口中使用浮动码头。现在您可以浮动项目/合成/etc面板!更适合在多监视器设置中使用合成的全屏工作。
通过iface重新编写了与作曲家合作的API . 由于作曲窗口不存在,除非它们当前处于打开状态,所有与作曲者交互的iface方法都已重做,以清楚地表明它们只适用于打开的窗口。此外,还添加了一个简单的编写器接口,为插件和脚本提供稳定的API,以便与编写器窗口一起使用。目前非常基本,但将来我们可以使用更多的钩子来扩展,以允许插件与编写器窗口交互。
大量的代码清理和删除
更多信息请访问https://north-road.com/qgis-layout-and-reporting-engine-campaign/
这项功能是由瑞士QGIS用户组和更多人资助的!
此功能由开发 Nyall Dawson (North Road)
http://imhere-asia.com/blog/post/qgis-raster-layer-unique-values-count
此功能由http://imhere-asia.com开发/
此更改允许用户选择运行简化几何体算法时要使用的方法,包括现有的基于距离(Douglas Peucker)算法、基于区域(Visvalingam)算法和对齐网格。
与标准的基于距离的方法相比,visvaligam尤其能使图像更简单化。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
向QGSGeometry添加选项::平滑到不平滑短于某个阈值的段或角度超过阈值的尖角
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
现在有更多的算法尊重z/m值,不丢弃这些信息,另外,许多算法现在正确地维护曲线几何,而不强制分段这些几何。
此算法允许您从几何图形中提取特定节点。例如,可以提取几何图形中的第一个或最后一个节点。
该算法接受要提取的节点索引的逗号分隔列表,例如0=第一个节点、1=第二个节点等。可以使用负索引从几何体的末尾提取节点。例如-1=最后一个节点,-2=第二个最后一个节点。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
此功能由Alexander Bruy开发
此功能由Mathieu Pellerin开发
此功能由Mathieu Pellerin开发
该算法使用qgis表达式更新输入特征的现有几何图形(或创建新几何图形)。这使得复杂的几何修改可以利用qgis表达式引擎的所有灵活性来操作和创建输出特征的几何。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
将几何捕捉器插件移植到处理
捕捉几何体算法允许捕捉到其他图层类型,支持点/线图层
对齐层算法接受模式参数。有一个新选项,更喜欢捕捉到几何体上最近的点。旧的行为更倾向于捕捉到节点,即使一个节点比一个段更远离输入几何图形。新选项允许您将几何图形捕捉到最近的点,而不管它是节点还是段。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
这将为表达式输入添加新的输入类型。表达式输入可以链接到父层,以便生成器显示正确的字段和层变量。
它被设计成当一个算法特别需要一个表达式时使用,例如按表达式选择和按表达式提取。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
重命名算法split lines with lines to split with lines接受多边形作为输入,也只使用要拆分的选定行(如果处理设置为仅使用选定内容),如果尝试拆分多个几何图形,则发出日志消息更新帮助
此功能由Bernhard Str_bl开发
实现了一种计算曲面不可接近极点的处理算法,该曲面是距曲面边界最远的内点。该函数使用“多标签”算法(Vladimir Agafonkin,2016),这是一种迭代方法,确保在指定的公差范围内找到不可接近的真正极点。更精确的公差需要更多的迭代,并且需要更长的时间来计算。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
允许在层中的属性上创建索引,以便更快地基于属性的筛选
支持取决于层的基础数据提供程序
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
替换现有的“数字字段的基本统计信息”和“字符串字段的基本统计信息”算法,并添加对日期/时间/日期时间字段的支持。
单一的统一算法允许更灵活的模型,其中字段类型可能不预先知道。
此功能由 North Road
此功能由开发 Nyall Dawson (North Road)
在处理中添加最短路径和服务区域算法
还允许计算从一个点到层中所有点,或从层中所有点到终点的最短路径。以及为一个层中的所有点创建服务区域。
结果路标插件被删除。
此功能由Alexander Bruy开发
除了将处理模型导出为位图图像外,现在还可以将处理模型导出为与分辨率无关的PDF和SVG。这允许高分辨率的模型输出,这些模型可以嵌入到正在出版的论文和书籍中。
此功能由开发 Mathieu Pellerin
此功能由Victor Olaya开发
此功能由Alexander Bruy开发
此功能由Alexander Bruy开发
提取节点算法现在可以保存节点索引、沿直线的距离和节点处的角度。
此功能由Andreas Neumann资助
此功能由开发 Nyall Dawson (North Road)
在这个版本中,“处理建模器”窗口受到了很多关注。改进包括:-窗口工具栏中的缩放控件-自定义输入和算法面板的位置-面板现在可以浮动在处理窗口上方
此功能由开发 Mathieu Pellerin
还支持多边形几何图形,处理空几何图形,并记录原始线角度以及每个点的距离。
此功能由Andreas Neumann资助
此功能由开发 Nyall Dawson (North Road)
很久以前,在developer的邮件列表中,我们讨论了一个存储XML文件和其他资源的容器。现在这是可能的,尽管它仍然是可选的。辅助存储功能通过存储关联的.qgd sqlite数据库来利用这一点。我们希望在下一个版本中支持嵌入其他资源,如SVG、颜色渐变、数据源、图像等。
此功能由 French ministry of Ecology and Sustainable Developpement
此功能由开发 OSLANDIA - Paul Blottiere
所有用户设置/插件等现在都从每个平台的应用程序数据位置加载,不再加载。qgis3/2。每个配置文件中的设置和插件现在彼此隔离。
这允许根据用户需要进行不同的运行时设置,例如测试、生产、演示等。
配置文件菜单允许在配置文件之间切换或创建新的配置文件。
此功能由开发 Nathan Woodrow
我们已经删除了随QGIS 2.x一起提供的独立QGIS浏览器应用程序。该应用程序的用户接受度很差,并且代表了我们不希望在3.0代码库中继续使用的维护开销。
这个功能是由nyall dawson开发的
对z维和m值的支持被添加到qgis的gpkg、空间和内存层提供程序中。添加Z和M尺寸的选项也已添加到“创建新图层”对话框中。
此功能由 QWAT group, http://www.imhere-asia.com/
此功能由马修·佩林、亚历山大·伯里、保罗·布洛蒂埃开发。
自动检测为Postgres、Spatialite和OGR提供程序实现的提供程序端唯一和非空约束
可以在QGIS中设置客户端唯一和非空约束。
以属性形式强制实施唯一约束
此功能由OpenGIS.ch资助。
此功能由开发 Nyall Dawson (North Road)
GeoNode 是一个开放源代码的地理空间内容管理系统,使在Web上发布地理空间数据变得容易。qgis 3.0包含了新的功能,允许您非常容易地将geonode实例添加到浏览器树中,并将该站点中的任何层作为wms、wfs或xyz添加到项目中。没有必要到处挖掘试图找出WMS/WFS的端点,QGIS会为您做一切。使用WMS和XYZ平铺层时,将使用发布的geonode层的样式。
如果geonode实例使用的是qgis服务器后端而不是支持geoserver,则可以从服务器复制和粘贴样式,并将其应用到本地层,以便WFS层与服务器上的效果完全相同(如此处的动画gif所示)。
还有python绑定,这样您就可以从插件中将geoserver层添加到qgis中。如果您有兴趣使用qgis服务器后端运行自己的geonode,请参阅 this site 有关如何使用Docker和Rancher实现这一点的详细信息。
此功能由 WorldBank/GFDRR
此功能由开发 Kartoza
此功能由Patrick Valsecchi开发
这允许声明层之间的数据依赖关系。当一个层中的数据修改(而不是直接用户操作)可能修改其他层的数据时,就会发生数据依赖。例如,在修改另一层的几何图形后,数据库触发器更新了一个层的几何图形。
这项功能是由雨果·麦谢尔开发的。
此功能由Juergen E.Fischer开发
这个功能是由Even Rouault开发的
改进对默认值的处理(inc provider default子句、文本默认值和qgis表达式默认值),并自动处理层上的唯一值约束。
任何具有唯一值约束的字段都将保证具有该字段唯一的值。
这也意味着,在某些编辑操作(如复制粘贴、分割特征等)之后,属性现在将被设置为其默认值(如果适用)。
此功能由ZUG的Canton和QGEP项目资助。
此功能由开发 Nyall Dawson (North Road)
如你所知,QGIS正在跳到一个新的主要版本(是的!)。这样做是必要的,因为需要切换到python 3、qt5,而且还因为我们需要在几个地方中断qgis API。(http://blog.qgis.org/2016/02/10/qgis-3-0-plans/)
一年前,一个来自瑞士的小巨魔敲响了警钟,说他们迫切需要爱的服务器代码库。事实上,API是被一些旧的QGIS服务器方法锁定的。简言之,qgis服务器以自己的方式重新编写qgs项目文件,并创建了我们需要删除的部分qgis的依赖项。
由于外包服务器代码库不是一个选项,所以我们必须重构它。参与方决定在法国里昂市进行代码冲刺,致力于分享他们的愿景,规划工作,并最终实现以下所有目标:
更高级别的重构
所有服务(wms getmap、wfs getfeature、getlegendgraphics、wcs、getprint等)都已重写。有些像大规模杀伤性武器是完全重写的。向开发者致敬!
新特点
多线程渲染,就像在桌面上一样
信任层元数据从而加速项目加载的新选项
WFS 1.1支持https://github.com/qgis/qgis/pull/5297
服务器API的完整python绑定
服务器服务作为插件,如提供程序
深度、复杂和无回报的任务
删除所有单例呼叫
将所有依赖项剪切到旧的QGIS项目文件分析器
最小化对GUI库的依赖。由于字体是渲染地图所必需的,因此完全删除它们是不可行的。
基础设施任务
构建OGC兼容平台,并将其集成到持续集成平台中。合格报告现在被推送到tests.qgis.org。
添加单元测试…还有更多的单元测试
强调QGIS服务器的安全漏洞(SQL注入和其他恶意攻击)
开始仿形和台架标记性能。这项工作仍需要一些爱心和资金来完成。
7月在FOSS4G-EU进行了介绍。
此功能由qgis.org捐助者资助
许多Web客户端无法在几何图形中显示圆弧。为了使这些客户机仍能显示某个功能的几何图形(例如,为了突出显示该功能),引入了一个新的每个项目的QGIS服务器选项(菜单“Project”->“Project Properties”->“QGIS Server”),以便在以GetFeatureInfo响应将几何图形发送给客户机之前对其进行分段。
此功能由 Kanton of Zug
此功能由开发 Marco Hugentobler
这扩展了脱机编辑的可能性,使其仅适用于大型图层的子集。
这项功能由DB Fahrwegdienste GmbH资助。
此功能由Matthias Kuhn开发
已删除gdaltools插件。
以前通过gdaltools插件提供的所有功能都被移到了qgis处理框架中,允许在脚本、模型中使用这些工具,并在批处理过程中执行它们。另外,我们用最新的gdal版本中引入的新参数更新了算法,并通过公开一些高级参数(如创建选项、nodata值设置等)改进了整个UI/UX。
此功能由Alexander Bruy开发
对QGIS中的几何类进行了大修。旧类已重命名(根据下表)。新的几何类将正确地保留Z和M属性(如果存在)。
参考资料:https://github.com/qgis/qgis3.0 u api/issues/11
这最终会在几何API中恢复一致的命名状态。
QGIS 2 |
QGIS 3 |
---|---|
QgsPolygon |
QGSPOXYXY |
QgsMultiPoint |
QGS-多点 |
QgsMultiPolyline |
QG多聚线氧 |
QgsMultiPolygon |
QG多聚甲醛 |
QGSPOLYNGV2 |
QgsPolygon |
QGS-多点V2 |
QgsMultiPoint |
qgsmultipolinev2系列 |
QgsMultiPolyline |
qgsmultipolygonv2型 |
QgsMultiPolygon |
另请参见https://github.com/qgis/qgis/pull/5491
此功能由Matthias、Nyall和其他人开发
介绍一个用于创建后台任务的框架,这些任务通过集中的管理器进行交互。
添加新类:-qgstask。用于长时间运行的后台任务的接口-qgstaskmanager。处理任务组-也可作为QGSApplication成员用于跟踪应用程序范围内的任务
添加简单的python方法qgstask.from function,以便从函数创建任务,而不必创建qgstask子类。
支持依赖任务
取消其他人依赖的任务也会导致所有其他任务被取消。
将依赖层的处理添加到任务管理器
如果任务具有将要删除的依赖层,则该任务将自动取消。
qgstask可以有子任务
现在,Qgstask可以通过调用Qgstask::AddSubtask来设置子任务Qgstask。子任务可以有自己的依赖任务集。
子任务对用户不可见,用户只看到父任务的总体进度和状态。
这允许创建由许多较小的组件任务组成的任务。任务管理器仍将处理启动和调度子任务,例如子任务可以并行运行(如果它们的依赖关系允许这样做)。
子任务本身可以有子任务。
此更改旨在允许算法和建模器算法的处理概念直接转换为任务管理器架构。
此功能由QGIS赠款计划资助。
此功能由开发 Nyall Dawson (North Road)
QGSDataItem实现可以提供HasDragEnabled()、Mimeuri()和QGSCustomDropHandler实现来处理自定义项的删除。
此功能由Martin Dobias开发