pycnik простой Переводчик с Python кода (с конвенциями, кодирующих) для Mapnik XML стилей.
Установить Pycnik
& NBSP; мерзавец клон https://github.com/ldgeo/pycnik
& NBSP; кд pycnik
& NBSP; питон setup.py установить
Тестирование
Чтобы запустить тесты:
& NBSP; питон -m UnitTest открыть -ная тест /
Начало
Pycnik использовать динамическую переменную декларацию, так что вы должны использовать те же ключевые слова, как синтаксис XML декларации.
example.py:
от pycnik.model импорта *
Background_color = 'RGB (255255220) "
NATURAL_RASTER = {
& NBSP; "тип": "GDAL",
& NBSP; "файл": "natural_earth.tif"
}
DATABASE_PARAM = {
& NBSP; "имя_бд": "база данных",
& NBSP; "estimate_extent": "правда",
& NBSP; "хозяин": "0.0.0.0",
& NBSP; "пароль": "******",
& NBSP; "Порт": "5432",
& NBSP; "тип": "PostGIS",
& NBSP; "пользователь": "mapuser",
& NBSP; "SRID": "4326",
}
################
# КАРТА Определение
################
Map.background_color = background_color
Map.srs = "+ инициализации = EPSG: 4326"
Map.minimum_version = "2.0"
Map.font_directory = "Шрифты"
Map.buffer_size = 128
########
# СЛОИ
########
natural_earth = Слой ("natural_earth")
natural_earth.datasource = NATURAL_RASTER
BND = Layer («Границы страны")
bnd.datasource = DATABASE_PARAM
bnd.table = "schema.boundaries"
########
# СТИЛИ
########
natural_earth.style () [: 3] = {
& NBSP; РАСТР: {
& NBSP; 'масштабирование': 'билинейной'
& NBSP;}
}
bnd.style ("синий") [0:19] = {
& NBSP; ЛИНИЯ: {
& NBSP; 'заполнить': 'RGB (255,0,0) ",
& NBSP; 'штрих-ширина': '4'
& NBSP;},
& NBSP; 'фильтр': "[код страны] = 'ЭЦН"
}
bnd.style ("синий") [10:15] = {
& NBSP; ЛИНИЯ: {
& NBSP; 'штрих-ширина': '12'
& NBSP;}
& NBSP; # наследство, фильтр сохраняется
}
Создание XML-Mapnik
& NBSP; pycnik example.py -o example.xml
Особенности
- позволяет использовать экзотические количество уровней масштабирования и размеров плитки (вычисляет весы знаменатели)
- предоставляет механизм для наследования
- автоматическое атрибут кэш-функция надстройки при использовании более 2 стили
Требования
- Python
- mapnik2
- LXML
Ограничения
- нет возможности использовать несколько подобных symbolizers в то же правилу
Комментарии не найдены