Понимание свойств создания Map Tile


10

Я пытаюсь создать карту основы плитки. У меня есть изображение, из которого я хочу создать плитку, и я использую GDAL.

Мне удалось создать плитки, но когда я вижу результат, кажется, что мозаичная карта:

  1. Это перевернуто
  2. Пропорции не верны

Это изображение наложения карты: изображение карты

Это результат тайлинга:

результат плитки

Я много раз проверял, что координаты хороши, сравнивая углы изображения на ортофото.

Другое дело, что в Google Earth с такими же координатами изображение карты точно соответствует карте Google.

Google Earth Overlay

отредактированный

gdalinfo map_overlay.png

с этим выводом:

Драйвер: PNG / Portable Network Graphics Файлы: map_overlay.png Размер 3527, 2494 Система координат is '' Структура изображения Метаданные:
INTERLEAVE = PIXEL Угловые координаты: Верхний левый (0.0, 0.0) Нижний левый (0.0, 2494.0) Верхний правый (3527.0 , 0,0) Нижний правый (3527,0, 2494,0) Центр (1763,5, 1247,0) Блок 1 диапазона = 3527x1 Тип = байт, ColorInterp = Красные флаги маски: PER_DATASET ALPHA Блок 2 блока = 3527x1 Тип = байт, ColorInterp = Зеленые флаги маски: PER_DATASET ALPHA Блок 3 блока = 3527x1 тип = байт, ColorInterp =
флаги с синей маской: PER_DATASET ALPHA Блок 4 блока = 3527x1 тип = байт, ColorInterp = альфа

Затем переведите:

gdal_translate -of VRT -a_srs EPSG: 4326 -gcp 0 0 31.7431761644 35.1680410195 -gcp 3527 0 31.7493769674 35.1784535489 -gcp 3527 2492 31.7431011291 35.1784951643 -ggp 0 2494 31.780804.

с этим выводом:

Размер входного файла 3527, 2494

И наконец:

gdal2tiles.py -z 14-21 map_overlay.vrt

Наложение - это простое изображение .png без каких-либо специальных данных.

Я буду признателен за любую помощь.

Шани


2
Кажется, есть несоответствие в gdal_translateпараметрах, которые вы разместили здесь: вы связываете (широта, долгота) = (31.7431761644, 35.1680410195) с двумя различными точками в (0,0) и (0,2494). Это действительно команда, которую вы дали, или это ошибка копирования и вставки?
whuber

Ответы:


5

Попробуйте использовать метрическую скоординированную картинку, прежде чем использовать ее как:

   gdalwarp -of GTiff -t_srs EPSG:3857 input.tif output.tif 

ОБНОВИТЬ

Примечание: даже если мы укажем gcp, gdal_translateне будет указывать угловые координаты tiff.

Кроме того, вам не нужно создавать виртуальный набор данных (.vrt) из-за наличия только одного файла ...

используйте следующий код:

  gdal_translate -of  GTiff  -gcp 0 0 31.7431761644 35.1680410195 -gcp 3527 0 
       31.7493769674 35.1784535489 -gcp 3527 2492 31.7431011291 35.1784951643
      -gcp 0 2494 31.7431761644 35.1680410195 map_overlay.png map_overlay.tif

тогда

  gdalwarp -s_srs epsg:4326 -t_srs epsg:4326  map_overlay.tif warped_map_overlay.tif

и теперь попробуйте использовать gdalinfo ... если вы не видите никаких проблем, выполните эту команду:

  gdal2tiles.py -z 14-21 warped_map_overlay.tif

если ваши плитки не подходят, запустите код выше перед обновлением, я дал.

Вы можете получить больше информации здесь

я надеюсь, что это поможет вам ....


Спасибо. Когда я должен это сделать? на данный момент я делаю 1.gdalinfo map.png 2.gdal_translate -of VRT -a_srs EPSG: 4326 -gcp .... 3. gdal2tiles.py -z 10-16 map.vrt. Нужно ли делать это после перевода? я должен изменить EPSG в методе перевода?
Шаннога

если ваша карта не скоординирована, попытка получить информацию с помощью gdalinfo тщетна.
Арагон

Так что мне нужно вместо этого использовать gdalwarp?
Шаннога

Ваша карта согласована с какой-либо проекцией или нет? если да, попробуйте использовать gdalwarp, чтобы перепроектировать его, в противном случае сделайте его скоординированным с gdal_transform ...
Aragon

Эй, спасибо за твоего пациента. Если вы правильно поняли, это не так. это простое квадратное изображение, нарисованное на основе карты без специальных данных. Я обновил вопрос своими используемыми командами. Еще раз спасибо за ваши попытки помочь.
Шаннога
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.