[GIS] Displaying world country shapefiles centered on Pacific Ocean using Robinson or Miller Cylindrical projection in QGIS

coordinate systemqgis

I wish to display a map in QGIS (world country shapefiles) showing all countries but centered on the Pacific area.

I am not familiar with Proj4, so is there any way this can be done in QGIS?

Best Answer

Well, not that easy, as QGIS does not come with predefined Robinson or Miller projections.

So I tried a Custom CRS and got this picture (not in first run!):

enter image description here

For a central meridian at 150° West, it is necessary to split the world boundaries shapefile at 30° East (to be precise, at 29.9 and 30.1 to avoid intersections)

So these are the steps:

  1. Download Natural Earth world boundaries shapefile and load it into QGIS
  2. Save As ... into WGS84, and add that to the canvas
  3. Delete the layer from step 1
  4. Disable On-the-fly-projection
  5. Create the following text file:
Nr;WKT
1;POLYGON((30.1 89, 29.9 89, 29.9 -89, 30.1 -89, 30.1 89))
  1. Add that file as Text delimited layer, using semicolon as separator and WGS84 as CRS (you will get a very thin polygon around 30°E)
  2. Save the layer as shapefile, add it to the canvas and delete the layer from step 6
  3. Use Vector -> Geoprocessing -> Difference with the two polygon layers
  4. Create a Custom CRS named Robinson with this proj string:

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

  1. Enable On-the-fly projection and choose Robinson as project CRS

For the Miller projection, you can use the same pre-cut shapefile. In Proj, Miller has some problems with the ellipsoid, so we take a sphere instead (you won't see a difference):

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

With on-the fly activated, it does not look as well, New Zealand is missing at full extent, but returns when zooming in. So we need to Save As ... the shapefile in miller projection, and show only that, without on-the-fly reprojection:

enter image description here

Related Question