我希望在QGIS(世界国家图形文件)中显示一张地图,该地图显示所有国家,但以太平洋地区为中心。

我不熟悉Proj4,所以QGIS有什么办法可以做到?

评论

经过许多麻烦之后,我发现最好使用Nr; WKT 1; POLYGON(((30.01 90,29.99 90,29.99 -90,30.01 -90,30.01 90))Diederik

#1 楼

嗯,这并不容易,因为QGIS没有预定义的Robinson或Miller投影。 />

对于西边150°的中央子午线,有必要在东边30°分割世界边界shapefile(确切地说,在29.9和30.1处以避免交集)

因此,这些步骤如下:


下载自然地球世界边界shapefile并将其加载到QGIS中

Save As ...到WGS84中,并将其添加到canvas
从步骤1删除图层
禁用On-the-fly-projection

创建以下文本文件:

Nr;WKT
1;POLYGON((30.1 89, 29.9 89, 29.9 -89, 30.1 -89, 30.1 89))



将该文件添加为Text delimited layer,使用分号作为分隔符,使用WGS84作为CRS(您将在30°E附近得到一个非常薄的多边形)
将图层另存为shapefile,将其添加到画布中并从步骤中删除该图层6
Vector -> Geoprocessing -> Difference与两个多边形层一起使用
使用以下命令创建名为Robinson的自定义CRS s项目字符串:

+proj=robin +lon_0=-150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs


启用On-the-fly projection并选择Robinson作为项目CRS


对于Miller投影,您可以使用相同的预切割shapefile。在Proj中,米勒的椭球体存在一些问题,因此我们改用球体(您不会看到任何区别):

+proj=mill +lon_0=-150 +lat_0=0 +R=6371000 +units=m +no_defs


即时激活,它看起来也不尽如人意,但新西兰完全缺失了,但是在放大时会返回。因此,我们需要在miller投影中对shapefile进行Save As ...,仅显示该文件,而无需即时重新投影:



评论


这是QGIS应该处理的吗?我的意思是,这并不意味着第180个子午线是物理的……是否有错误/功能要求?

–naught101
2015年1月6日在6:44

由于花了我很长时间才能找到它,因此可以在“设置”>“自定义CRS”下添加自定义CRS ...

– alphabetasoup
2015年12月9日,0:14

#2 楼

QGIS随时随地提供您所需的一切(即,它可以在幕后为您处理Proj4)。如果您的数据已经在所需的投影中,请右键单击图层,然后选择“从图层设置项目CRS”。这样会将数据视图置于与数据相同的投影中。您可能还必须右键单击您的图层,然后选择“缩放到图层范围”。

如果数据在其他投影中,则可以动态地重新投影(在项目属性中),也可以通过右键单击图层并选择“另存为”来重新投影数据本身。保存对话框打开时,为输出数据集选择CRS,然后使用新的重新投影的数据集。