Как использовать карту проекции веб-меркатора для SCNMaterial в геометрии SCNShere?

У меня есть простой вид земного шара в моем приложении. Раньше мы использовали WhirlyGlobe, но вместо этого решили использовать SceneKit. Все работает отлично, и мы довольны этим, ЗА ИСКЛЮЧЕНИЕМ того, что мы использовали фрагменты карты в Whirly Globe, и они не работают (насколько я могу судить) в SceneKit. Мы хотим использовать эту карту (мозаичную, разделенную или как один файл) в геометрии SCNSphere.

Я скопировал спутниковую карту, которую Apple использует в своей документации, и она выглядит правильно, но это не та карта, которая нам нужна. Наша карта находится в веб/сферической проекции Меркатора, и она выглядит плохо в SceneKit на моей сфере.

Я не* знаю, как называется проекция 2x1, которую использует Apple, поэтому ТОЛЬКО этой информации может быть достаточно, чтобы найти решение.

  • I do now:
    • Equirectangular - RIGHT after I posted of course.
    • Также известен как Platte Carre (согласно комментарию Хэла Мюллера).

Экспорт нашей карты в проекцию web mercator 1x1. Просто сжать его по вертикальной оси не получится (SceneKit все равно делает это автоматически).

Я могу преобразовать файл программно, используя инструмент или какой-либо гибрид, если это необходимо.

Если нужно, могу предоставить превью скинов карты.


person Fred Priese    schedule 31.12.2016    source источник
comment
Разместите скриншоты версий WhirlyGlobe и SceneKit, а также код для MCVE (stackoverflow.com/help/mcve). Где создаются фрагменты вашей карты? Можете ли вы настроить этот сервер для возврата плиток Platte Caree? Сферическая растровая карта Меркатора потребует повторного проецирования для наложения на сферу и в любом случае не будет распространяться на полюса.   -  person Hal Mueller    schedule 01.01.2017
comment
Мы используем TileMill для создания плиток, и он может экспортировать проекцию SM, но не проекцию Platte Caree/Equirectangular. Плитки встроены, поэтому нет сервера. Что касается полюсов, да, я видел это после того, как опубликовал это, чтобы узнать больше о прогнозах SM и ПК. Я не вижу смысла в публикации MCVE. У меня есть сцена со сферой с SCNMaterial. То, что я делаю, работает отлично. (ну... в любом случае, о чем я спрашиваю.) :-) Я думаю, что это должно быть в другой категории SE. Спасибо!   -  person Fred Priese    schedule 03.01.2017
comment
MapServer может отображать изображения ПК, если необходимо, мозаично. Но это большое изменение рабочего процесса по сравнению с Tilemill. Рассмотрите возможность использования GDAL/OGR, если у вас уже есть изображения и вам просто нужно их перепроецировать.   -  person Hal Mueller    schedule 03.01.2017
comment
Вот оно. Пожалуйста, сделайте GDAL ответом. Я использовал это (и некоторые другие вещи, которые я изложу в комментарии к вашему ответу). Я пытался заставить Блендер работать, но это было жестоко. Подобрался близко (думаю во всяком случае.) Супер большое спасибо!   -  person Fred Priese    schedule 04.01.2017


Ответы (1)


Если у вас уже есть изображения и вам нужно их перепроецировать (скажем, из Меркатора в Plate Carree/Equirectangular), взгляните на GDAL (http://www.gdal.org). В дополнение к преобразованиям форматов он содержит библиотеку перепроецирования. GDAL работает в большинстве систем и может использоваться из командной строки или в составе других программ.

person Hal Mueller    schedule 04.01.2017
comment
Решение состояло в том, чтобы сделать сверхбольшой (6400x~6400) экспорт сферической проекции Меркатора для использования в воспроизведении и редактировании. Согласно комментарию/ответу Хэла Мюллера, я скачал версию GDAL для macOS и использовал этот GIS.StackExchange отправить для перепроецирования в Equirectangular... .(продолжение) - person Fred Priese; 04.01.2017
comment
Но этого было недостаточно. У вывода есть пара проблем. Во-первых, я думаю, что PNG не является стандартным. Я открыл в Acorn и прямо реэкспортировал в PNG, чтобы очистить это. Во-вторых, отсутствуют последние ~5 градусов северной и южной широты на полюсах. Затем я открыл очищенный PNG в G.Projector со смещением на север 85,011 и южное смещение -85,011. Карта идеально совмещена с оверлеями. Но был пробел наверху....(продолжение) - person Fred Priese; 04.01.2017
comment
Затем я скрыл наложения и сохранил карту в равнопромежуточной проекции с черным фоном (это граница). Я установил размеры 6400x3200, чтобы сохранить как можно большую точность. Затем я открыл файл в Acorn. Я растянул изображение по горизонтали, чтобы закрыть боковые поля, и заполнил верхнее/нижнее поля цветами из последней строки пикселей. Затем я сохранил и сделал «веб-экспорт» PNG 1600x800 для свойства диффузного.contents SCNSphere SCNMaterial. - person Fred Priese; 04.01.2017