ОКРЕСТНОСТИ ПЕТЕРБУРГАПутеводители Карты Краеведение Военная история Фотогалерея    Старый сайт
Начало » ГЛАВНЫЙ » Картография. Навигация. » разрезка на тайлы
разрезка на тайлы [сообщение #100133] чт, 01 июля 2010 09:43 Переход к следующему сообщения
alexsvar
Chartpilot писал(а) ср, 05 мая 2010 23:06


Пакет ImageMagick — это вообще чудо пакетной обработки.
Пакет типа portable, кроссплатформенный, устанавливать не надо.
Ну о-очень большая матчасть: http://www.imagemagick.org/www/perl-magick.html

d:\Utils\ImageMagick6\montage.exe d:\data\*.jpg -mode Concatenate -tile x%1 d:\data\itog.jpg
d:\data\*.jpg — путь к исходным файлам
-mode Concatenate -tile — опции утилиты
x%1 — количество строк (число вместо %1)
d:\data\itog.jpg — путь с итоговым файлом.


А существует ли аналог для разрезки на тайлы?
С заданием маски тайлов и уровня компрессии?

У Я-карт есть, но там не отрегулировать компрессию


 
Re: разрезка на тайлы [сообщение #100146 является ответом на сообщение #100133] чт, 01 июля 2010 14:41 Переход к предыдущему сообщенияПереход к следующему сообщения
Chartpilot
ImageMagick и режет тоже.
Просто этим не занимался, надо где-то в help'е пошукать.
Re: разрезка на тайлы [сообщение #100149 является ответом на сообщение #100146] чт, 01 июля 2010 15:47 Переход к предыдущему сообщенияПереход к следующему сообщения
alexsvar
Кстати да. У меня IM почему-то ассоциировался только с Юниксом, т.к. пользую его аналог на сайте.

Сейчас, благодаря EgorL, ulet и неизвестному хакеру практически закончил разбирательство с Яндекс-картами. Для автоматизации написал программку по подготовке данных для резки тайлов и записи в БД. Работу с сервером скопипастил с "вредоносной" программы, которую обнаружил на сайте, алгоритм Я-тайлов разобрал и дописал интерфейс.



Можно было конечно прикрутить к ней нарезку тайлов на сервере в GD (аналог IM), но не думаю, что правильно нагружать сервер.

Теперь немного подумаю по рекомендациям А.И.Резникова в области каталогизации карт и начну заливать обновленную коллекцию.
  • Вложение: uu.jpg
    (Размер: 75.60KB, Загружено 1216 раз)


 
Re: разрезка на тайлы [сообщение #100177 является ответом на сообщение #100149] чт, 01 июля 2010 23:47 Переход к предыдущему сообщенияПереход к следующему сообщения
Chartpilot
Режется так:
Возьмём тот же uu.jpg (484х382 px)
convert uu.jpg -crop 200x100 unew_%d.jpg

В результате в текущем каталоге
unew_d-0.jpg (200x100)
unew_d-1.jpg (200x100)
unew_d-2.jpg (84x100)
unew_d-3.jpg (200x100)
unew_d-4.jpg (200x100)
unew_d-5.jpg (84x100)
unew_d-6.jpg (200x100)
unew_d-7.jpg (200x100)
unew_d-8.jpg (84x100)
unew_d-9.jpg (200x82)
unew_d-10.jpg (200x82)
unew_d-11.jpg (84x82)

Причём не надо чтобы было кратно — крайние просто будут урезаны.
Re: разрезка на тайлы [сообщение #100189 является ответом на сообщение #100177] пт, 02 июля 2010 10:42 Переход к предыдущему сообщения
alexsvar
Chartpilot писал(а) чт, 01 июля 2010 23:47

Режется так:
Возьмём тот же uu.jpg (484х382 px)
convert uu.jpg -crop 200x100 unew_%d.jpg

В результате в текущем каталоге
unew_d-0.jpg (200x100)
unew_d-1.jpg (200x100)
unew_d-2.jpg (84x100)
Причём не надо чтобы было кратно — крайние просто будут урезаны.


А режет он горизонтальными проходами или вертикальными?
Для Я-карт надо вертикальными (хотя обычно встречал горизонтальные) и я не уверен, что правильно последнюю урезать. Надо попробовать....
...

Блин, не все так просто! Надо же создавать несколько слоев тайлов. Т.е. каждый раз картину сжимать вдвое и делать новый слой.

Алгоритм для непривязанных карт там такой: кол-во пикселов по длиной стороне делим на 256 и получаем кол-во тайлов по длиной стороне. Далее находим логарифм этого числа по основанию 2. Округляем к бОльшему целому значению. Полученное число будет номером слоя (верхний = 0). Для плавного зума надо сделать почти все промежуточные слои от 0 до нужного. Но 0, 1 и возможно второй делать не надо, в зависимости от размеров окна. Т.е. имеет смысл выбрать слой когда карта занимает его почти целиком, а не находится в виде точки в уголке.

В Я-картах:
О уровень - 1 тайл (виртуальное разрешение таково, что на 256 пикселей должно помешать 40000000 метров, т.е. весь земной шар в развертке)
1 уровень - 2 тайла
2 - 4
3 - 16
и т.д.


 

[Обновления: пт, 02 июля 2010 10:49]

Известить модератора

Предыдущая тема: Где берут карты
Следующая тема: Обновление яндекс карт
Переход к форуму:
  


Текущее время: чт апр #d 17:30:47 MSK 2024