地图编辑器QGIS中的自动地图旋转


10

问题是我想知道是否有可能在Map Composer中自动计算地图旋转。我在一个文件中有许多地图,它们都有自己的投影参数,我想根据投影公式(或其他方式)在地图编辑器中定义地图旋转

例如,在项目中定位一张特定的地图:

在此处输入图片说明

投影是

在此处输入图片说明

在地图编辑器中,地图边界看起来像

在此处输入图片说明

并为地图选择了旋转角度及其投影参数:

在此处输入图片说明

每个地图的地图旋转角度都不同,具体取决于其位置和投影参数。

是否可以自动执行此过程并自动计算地图旋转角度,因为不必每次都手动找到该值(我想通过图集生成菜单为所有地图创建通用作曲器)?


1
您是否要旋转特征以使其与地图框的边缘平行?您可以计算特征两侧的方位角并将其旋转吗?如果这是一条线,则旋转=度(atan(abs((y1-y2)/(x1-x2))))之类的角度将以度为单位。然后旋转90-将其与地图框对齐。
mixedbredie17年

2
您正在使用图集吗?如果使用“定向的最小边界框”工具生成coverage图层,则该图层将包含一个旋转属性,可以使用数据定义的属性将其绑定到地图项旋转。
ndawson

@mixedbredie,是的,我想旋转地图,以便地图边界与地图画布中的地图框架平行。我试图计算方位角,但是问题是我的地图图层是多边形的,没有告诉我们第一个点是左上顶点或其他某些顶点(右下等)。因此,几乎每次都无法满足这个角度
Jane

@ndawson建议的解决方案很有效。使用新的边界框图层作为隐藏的Coverage图层,所有内容将对齐。
mixedbredie17年

1
打开处理工具箱(Ctrl + Alt + T)并搜索“导向”-您会在QGIS地理算法>矢量通用工具下看到该工具。
blendbredie

Answers:


3

在问题评论中@ndawson找到的解决方案下面。请随时发表评论并增强此答案。

从处理工具箱中运行已使用的地图信封网格上的“定向的最小边界框”工具。

定向包围盒工具

它将创建一个与原始图层完全相同的图层。您将在属性表​​中找到ANGLE字段

OBB领域

现在,您应该能够在作曲器中使用此ANGLE字段来填充用于旋转的数据定义字段:

数据定义角度

问题似乎在于角度并不总是易于使用,因为它取决于初始多边形的制作方式。我做了一些测试,这取决于您绘制源多边形的方式。您可能需要相应地调整ANGLe字段的属性值:

(红色是原始多边形,黑色是OMBB工具多边形)。我以数字化为例,相似的多边形是两种不同的方式(向右或向左移动)

OMBB示例

要将角度值恢复为原始图层,可以使用空间位置连接操作。


非常感谢!我已将您的详细答复全神贯注于红色!但是问题似乎更加复杂。我在每张地图的属性表中都有一个包含所有地图及其投影的图层。在WGS84中具有地图集的初始层,但是在准备地图时,我在地图画布中设置了从属性表获取的投影(每个地图都不同),并且我需要在THIS PROJECTION中设置地图旋转值。因此,我必须将每个地图重新保存在自己的投影中,然后对多边形运行OMBB。我测试了一些地图,但旋转角度值不成功,与通过OMBB计算得出的值不同
Jane

根据属性表中的投影公式,在地图编辑器中计算旋转角度值将非常
Jane

不容易 !我看不到如何以简单的方式做到这一点,尤其是对于旋转角度。有一种方法可以使用“转换”功能来投影数据,但是我怀疑它是否可以用于其他任何协调的工作。(将从源CRS转换为目标CRS的几何返回。语法:transform(geom,source_auth_id,dest_auth_id)-示例:geom_to_wkt(transform($ geometry,'EPSG:2154','EPSG:4326'))
gisnside
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.