Конвертация Mapnik XML в SLD с использованием mapnik2geotools
Рассмотрен процесс конвертирования файлов описания стилей из формата 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!
Стоит отметить, что на выходе получаем такое количество SLD-файлов, сколько раз секция <Style> встречается в файле Mapnik XML.