Отображение шейп-файлов стран мира с центром в Тихом океане с использованием цилиндрической проекции Робинсона или Миллера в QGIS?

20

Я хочу отобразить карту в QGIS (шейп-файлы стран мира), показывающую все страны, но с центром в Тихоокеанском регионе.

Я не знаком с Proj4, так есть ли способ сделать это в QGIS?

user21658
источник
После многих неприятностей я обнаружил, что лучше использовать Nr; WKT 1; POLYGON ((30.01 90, 29.99 90, 29.99 -90, 30.01 -90, 30.01 90)) Diederik

Ответы:

26

Ну, это не так просто, поскольку QGIS не поставляется с заранее определенными проекциями Робинсона или Миллера.

Поэтому я попробовал Custom CRS и получил эту картинку (не при первом запуске!):

введите описание изображения здесь

Для центрального меридиана в 150 ° к западу необходимо разбить шейп-файл мировых границ на 30 ° к востоку (точнее, на 29,9 и 30,1, чтобы избежать пересечений)

Итак, это шаги:

  1. Загрузите шейп-файл границ мира Земли и загрузите его в QGIS
  2. Save As ... в WGS84, и добавить это на холст
  3. Удалить слой из шага 1
  4. Отключить On-the-fly-projection
  5. Создайте следующий текстовый файл:

Nr; WKT

1; ПОЛИГОН ((30,1 89, 29,9 89, 29,9 -89, 30,1 -89, 30,1 89))

  1. Добавьте этот файл как Text delimited layer, используя точку с запятой в качестве разделителя и WGS84 в качестве CRS (вы получите очень тонкий многоугольник около 30 ° E)
  2. Сохраните слой как шейп-файл, добавьте его на холст и удалите слой из шага 6
  3. Используйте Vector -> Geoprocessing -> Differenceс двумя слоями полигонов
  4. Создайте пользовательский CRS с именем Robinson с помощью следующей строки proj:

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

  1. Включите On-the-fly projectionи выберите Robinson в качестве проекта CRS

Для проекции Миллера вы можете использовать тот же предварительно вырезанный шейп-файл. В Proj у Миллера есть некоторые проблемы с эллипсоидом, поэтому вместо этого мы берем сферу (вы не увидите разницы):

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

С активированной на лету она выглядит не так хорошо, Новая Зеландия отсутствует в полной мере, но возвращается при увеличении. Таким образом, нам нужен Save As ...шейп-файл в более милой проекции, и показать только это, без перепроецирования на лету :

введите описание изображения здесь

Andrej
источник
3
Это то, что QGIS должен обрабатывать? Я имею в виду, что 180-й меридиан не является чем-то физическим ... Есть ли запрос об ошибке / функции для него?
naught101
2
Потому что это взяло меня ошеломляюще много времени , чтобы найти его, можно добавить пользовательские CRS подSettings > Custom CRS...
alphabetasoup
3

QGIS поставляется в комплекте со всем необходимым (т. Е. Он поддерживает Proj4 для вас под капотом). Если ваши данные уже находятся в нужной вам проекции, щелкните правой кнопкой мыши слой и выберите «Установить Project CRS из слоя». Это поместит представление данных в ту же проекцию, что и ваши данные. Вам, вероятно, придется также щелкнуть правой кнопкой мыши по своему слою и выбрать «Масштаб по слою».

Если ваши данные находятся в какой-то другой проекции, вы можете либо перепроектировать на лету (в свойствах проекта), либо перепроектировать сами данные, щелкнув правой кнопкой мыши по слою и выбрав «Сохранить как». Когда откроется диалоговое окно сохранения, выберите CRS для выходного набора данных и затем используйте новый повторно спроектированный набор данных.

MappaGnosis
источник