Конвертация Mapnik XML в SLD с использованием mapnik2geotools

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница является черновиком статьи.


Рассмотрен процесс конвертирования файлов описания стилей из формата Mapnik XML в формат SLD в операционной системе Debian.

mapnik2geotools - это небольшой проект, написанный на Scala, для конвертации файлов описания стилей в формате Mapnik XML в формат SLD.

Данный проект распространяется в виде исходных кодов и требует предварительной компиляции. Для этого в системе должен быть установлен инструмент для генерации и сборки Scala проектов SBT.

Установка SBT

Установка SBT с помощью различных систем управления пакетами описана в документации. Рассмотрим это процеесс на примере системы Apt, используемой в Debian:

cd ~
mkdir sbt
cd sbt
wget http://apt.typesafe.com/repo-deb-build-0002.deb
sudo dpkg -i repo-deb-build-0002.deb
sudo apt-get update
sudo apt-get install sbt
rm -r ~/sbt

Установка mapnik2geotools

cd ~
git clone git://github.com/dwins/mapnik2geotools.git
cd ~/mapnik2geotools
sbt update

После запуска последней команды может появиться следующее сообщение, свидетельствующее о том, что не найден launcher версии 0.11.2, поскольку в Debian по умолчанию устанавливается версия 0.11.3:

$ sbt update
Detected sbt version 0.11.2
Cannot find sbt launcher 0.11.2
Please download:
  From  http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.11.2/sbt-launch.jar
    To  /home/rykovd/.sbt/.lib/0.11.2/sbt-launch.jar

Создадим указанный каталог и поместим в него нужный файл:

mkdir -p ~/.sbt/.lib/0.11.2
cd ~/.sbt/.lib/0.11.2
wget http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.11.2/sbt-launch.jar

Выполняем компиляцию:

cd ~/mapnik2geotools
sbt update
sbt compile

Конвертирование

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

sbt "run my_mapnik_file.xml"

но при таком способе у автора статьи он постоянно вываливался с ошибкой, оповещающей о том, что не найден X-сервер. Небольшое уточнение: подключение производилось из Windows к машине с установленным Debian с помощью Putty. Проблему удалось обойти путём установки X-сервера Xming (настройка связки Putty+Xming описана здесь).

Для запуска конвертора переходим в каталог mapnik2geotools и запускаем его:

cd ~/mapnik2geotools
sbt
run

В разделе Input выбираем Mapnik XML-файл с описанием стиля, в разделе Operation отмечаем Just save SLD files to local disk и, наконец, в разделе Local Output выбираем директорию в которую будет сохранён результат. Попутно для себя замечаем, что mapnik2geotools может автоматически копировать сконвертированные стили на GeoServer. Нажимаем кнопку Convert!

Окно настроек mapnik2geotools

Стоит отметить, что на выходе получаем такое количество SLD-файлов, сколько раз секция <Style> встречается в файле Mapnik XML.