<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>ШТОСМ: заметки с тегом qgis</title>
<link>https://shtosm.ru/tags/qgis/</link>
<description>ШТОСМ</description>
<author>Илья Зверев</author>
<language>ru</language>
<generator>E2 (v3576; Aegea)</generator>

<itunes:owner>
<itunes:name>Илья Зверев</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>ШТОСМ</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Пяти знаков после запятой хватит всем</title>
<guid isPermaLink="false">1543</guid>
<link>https://shtosm.ru/all/ataka-na-4326/</link>
<pubDate>Sun, 01 Aug 2021 14:54:33 +0400</pubDate>
<author>Илья Зверев</author>
<comments>https://shtosm.ru/all/ataka-na-4326/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://shtosm.ru/pictures/australia-moving-nq8.png" width="1400" height="700" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;В начале мая Ньёлл Доусон &lt;a href="https://twitter.com/nyalldawson/status/1390118738251317254"&gt;показал&lt;/a&gt;, что свежий QGIS при выборе системы координат EPSG:4326 (или любой другой, основанной на датуме WGS-84, включая 3857) предупреждает: эта СК опасна для точности ваших данных.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;*я иногда путаю датум (параметры эллипсоида, как WGS-84), системы координат (как на этот эллипсоид натянуты широта и долгота, как 4326) и проекции (отображение эллипсоида на плоскость, как 3857).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Неужели всё настолько плохо, что WGS-84 нужно отменить? Напомню, эта система координат используется почти везде: в GeoJSON, в приёмниках GPS, в данных OpenStreetMap. Мы рисуем в этой системе поребрики и балконы на домах, пользуясь пучками GPS-треков и RTK для достижения сантиметровой точности.&lt;/p&gt;
&lt;p&gt;Проблема в том, как позже &lt;a href="https://twitter.com/nyalldawson/status/1393050234041757698"&gt;разъяснил Ньёлл&lt;/a&gt; и ранее — &lt;a href="https://docs.google.com/document/d/15uBX2qICODRkiHXeksT0zEy6TuysanIxuc4anV0o5F0/edit#"&gt;этот отчёт 2019 года&lt;/a&gt;, что местные (статические) СК привязаны к земле, а глобальные (динамические) — к общим параметрам земного шара. Австралия, например, медленно плывёт: с 1994 года она сместилась на 1,8 метра на северо-восток. Динамичность WGS-84 означает, что то, что единожны нарисовано в СК на её основе, каждый год нужно сдвигать.&lt;/p&gt;
&lt;p&gt;В качестве местных в Австралии используются «слепки» WGS-84: система координат GDA94 была определена в 94 году как «эквивалентная WGS-84». А GDA2020 в прошлом году определили точно так же. &lt;a href="https://lists.osgeo.org/pipermail/proj/2019-June/008647.html"&gt;Получается&lt;/a&gt;, можно преобразовать координаты без пересчитывания GDA94 → WGS-84 → GDA2020 и получить ответ, отличный от преобразования GDA94 → GDA2020.&lt;/p&gt;
&lt;p&gt;Земная кора двигается и под остальными континентами, пусть и с меньшей скоростью. WGS-84 — динамическая СК: чтобы точно отражать физические координаты, к широте и долготе в ней нужно добавлять время наблюдений. Иначе, как пишет ИКАО в разделе 3.3.1 &lt;a href="http://gis.icao.int/eganp/webpdf/REF08-Doc9674.pdf"&gt;инструкции по WGS-84&lt;/a&gt;, даже учитывая теоретическую сантиметровую точность GPS-приёмников, точность данных в этой СК не превышает одного метра по горизонтали. То есть, пять знаков после запятой — предел точности для широты и долготы в WGS-84.&lt;/p&gt;
&lt;p&gt;Чтобы увеличить точность хранения координат, рядом с ними нужно хранить «эпоху» — то есть, год наблюдений. Проблема в том, что ни один популярный формат хранения геоданных не поддерживает поле метки времени, особенно чтобы учитывать его в преобразованиях координат. После твита Ньёлла это начало меняться: с июня поле &lt;i&gt;epoch&lt;/i&gt; &lt;a href="https://github.com/opengeospatial/geopackage/pull/600"&gt;добавили в GeoPackage&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;GeoJSON и KML неисправимы, шейпфайлы и PostGIS тоже, &lt;a href="http://docs.opengeospatial.org/is/18-010r7/18-010r7.html#128"&gt;соответствующее поле&lt;/a&gt; WKT CRS не поддерживает даже Proj 8. А вот в OpenStreetMap... формально, все объекты имеют дату создания, которую с натяжкой можно считать нужной меткой времени. Но кто в здравом уме использует OSM как формат для обмена геоданными? А при конвертации информация о времени теряется.&lt;/p&gt;
&lt;p&gt;Обойти эту проблему легко: используйте местные, или хотя бы статические, системы координат. GDA2020 (EPSG:7844) для Австралии, ETRS89 (EPSG:4258) для Европы, &lt;a href="https://gis-lab.info/forum/viewtopic.php?t=26879"&gt;ГСК-2011&lt;/a&gt; (EPSG:7683) для России. Но скорее всего (ролик с ржущим фермером) у вас нет таких вариантов, и остаётся ждать, когда боги геоджейсона придумают решение. Глобальных СК лучше 4236 нет, &lt;a href="https://twitter.com/OFehrMedia/status/1390522283320565760"&gt;поэтому&lt;/a&gt; последний QGIS 3.10 по умолчанию всё ещё предлагает эту систему для новых проектов.&lt;/p&gt;
</description>
</item>

<item>
<title>Обходные листы в QGIS</title>
<guid isPermaLink="true">https://shtosm.ru/all/obhodnye-listy-v-qgis/</guid>
<link>https://shtosm.ru/all/obhodnye-listy-v-qgis/</link>
<pubDate>Wed, 05 Jul 2017 11:44:18 +0400</pubDate>
<author>Илья Зверев</author>
<comments>https://shtosm.ru/all/obhodnye-listy-v-qgis/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://shtosm.ru/pictures/tula-pies.jpg" width="1205" height="561" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Шесть лет назад я написал &lt;a href="https://wiki.openstreetmap.org/wiki/User:Zverik/%D0%9E%D0%B1%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D0%B5_%D0%BB%D0%B8%D1%81%D1%82%D1%8B_%D1%81_Maperitive"&gt;инструкцию&lt;/a&gt;, как печатать обходные листы с использованием современного (на тот год) открытого софта и активно разрабатываемого (на тот год) рендерера Maperitive. Вечером перед тульской картовстречей я посмотрел на каталог этого рендерера и понял, что хватит это терпеть. Но что открыть взамен? В mapnik непросто повернуть карту (а это критично), с эзотерическими рендерерами, типа alaCarte и smrender, долго разбираться. Я уже много лет советую всем QGIS для печати карт — так возьму его сам.&lt;/p&gt;
&lt;p&gt;Это одновременно статья про то, как непросто и одновременно несложно было разобраться в инструментах и получить файл pdf с обходными листами, и инструкция. Печатайте больше обходных листов и выводите картографов на улицы. Вам не обязательно загружать собранные объекты именно в OpenStreetMap, но мы были бы рады. А вот данные для печати, кроме как из OSM, взять неоткуда. Начнём с их подготовки.&lt;/p&gt;
&lt;p&gt;(Если вы делаете обходные листы, не дочитав заметку до конца, советую заглянуть в главу «волшебство»).&lt;/p&gt;
&lt;h2&gt;Подготовка данных&lt;/h2&gt;
&lt;p&gt;Прежде всего, вам понадобятся QGIS версии не ниже 2.14, GDAL не ниже 2.0 и JOSM.&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Откройте JOSM, включите «режим эксперта», если ещё не.&lt;/li&gt;
&lt;li&gt;В меню «Файл» выберите «Загрузить с Overpass API» и введите туда запрос: &lt;tt&gt;(node({{bbox}});&lt;;&gt;);out meta;&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Выберите район картовстречи и качайте. А затем сохраните в файл .osm и закрывайте редактор.&lt;/li&gt;
&lt;li&gt;Теперь нужен GDAL, чтобы сделать файл для QGIS. Для сохранения тегов типа addr:housenumber нужно настроить ogr2ogr. Если коротко, берите &lt;a href="http://textual.ru/osmconf.ini"&gt;этот osmconf.ini&lt;/a&gt; и положите к данным. Возможно, вы захотите добавить тегов в поля &lt;i&gt;attributes&lt;/i&gt; разделов &lt;i&gt;[lines]&lt;/i&gt; и &lt;i&gt;[multipolygons]&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Выполните из командной строки:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;ogr2ogr --config OSM_CONFIG_FILE osmconf.ini -t_srs EPSG:3857 -f GPKG party.gpkg party.osm&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Здесь мы используем все достижения последних трёх лет: простое скачивание данных из Overpass API, хорошую поддержку формата OSM библиотекой GDAL и формат GeoPackage. Последний опубликован только три года назад и удобен для хранения данных из OSM: в отличие от шейпов, файл получается всего один и при этом непустой.&lt;/p&gt;
&lt;p&gt;Файл osmconf.ini в комплекте GDAL разочаровывает на каждом шагу: очень мало тегов, даже адресов нет. И нет полигональных водоёмов. То ли дело файл style, приложенный к osm2pgsql. Воспользовался бы последним, но тогда цепочка получилась бы слишком сложной: osm → osm2pgsql → postgresql → ogr2ogr → gpkg. Два шага в этой цепочке выглядят лишними.&lt;/p&gt;
&lt;h2&gt;Оформление карты в QGIS&lt;/h2&gt;
&lt;p&gt;Было бы здорово сказать: «просто используйте этот стиль на ваш файл», как обычно с мапником или маперитивом, но в мире высоких ГИС не всё так просто. Нужно открывать свойства каждого слоя, кликать на цвета, делать дубликаты, фильтровать. Любое ваше действие QGIS запишет в файл проекта, поэтому я не дам свой: кто знает, какую порнографию вы откопаете в &lt;i&gt;tula.qgs&lt;/i&gt;. Так что — пошаговая инструкция.&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Откройте в QGIS файл GeoPackage и добавьте слои &lt;i&gt;lines&lt;/i&gt; и &lt;i&gt;multipolygons&lt;/i&gt;. В первом лежат дороги, ручьи и заборы, во втором — здания, парки и водоёмы.&lt;/li&gt;
&lt;li&gt;Справа внизу кликните на «EPSG:4326», включите перепроецирование на лету и выберите проекцию EPSG:3857, привычную по растровым картам.&lt;/li&gt;
&lt;li&gt;Отфильтруем дороги. Кликните правой кнопкой на слое линий, там — «Фильтр». Выделим улицы: &lt;tt&gt;highway in (’trunk’, ’primary’, ’secondary’, ’tertiary’, ’residential’, ’unclassified’, ’pedestrian’)&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Теперь оформим: двойной клик на слое, во вкладке стиля цвет #777777 и толщину 0,3 мм.&lt;/li&gt;
&lt;li&gt;Во вкладке «Подписи» окна свойств сверху выберите «показывать подписи» и ниже поле «name». Цвет #666666 и размер шрифта 10.&lt;/li&gt;
&lt;li&gt;А что с пешеходными дорожками? Правую кнопку на слое, «Дублировать». Правите теги в фильтре на &lt;tt&gt;(’footway’, ’path’)&lt;/tt&gt; и в свойствах: «простая линия», стиль линии ставите в «штриховая».&lt;/li&gt;
&lt;li&gt;Аналогично для всех остальных слоёв: линии &lt;i&gt;highway=service&lt;/i&gt;, &lt;i&gt;railway=rail&lt;/i&gt;, &lt;i&gt;waterway NOT NULL&lt;/i&gt; и полигоны воды, парков и зданий &lt;i&gt;building NOT NULL&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Для зданий нужно указать подписи не только с номером дома, но и с этажностью. Справа от выбора поля подписи жмите на кнопку «ε» и введите формулу: &lt;tt&gt;addr_housenumber || ’/’ || building_levels&lt;/tt&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://shtosm.ru/pictures/building-layer-labels.png" width="968" height="440" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;На этапе фильтрации данных в слое я понял, что импорт файлов OSM напрямую — это шляпа: на любой чих QGIS мне мерзко отвечал: «какая-то проблема в вашем SQL». Поэтому нужен GeoPackage. Можно справиться и с более старым Spatialite, но зачем.&lt;/p&gt;
&lt;p&gt;После танцев с бубном в Maperitive (да, я помню их спустя шесть лет!) оформление карты в QGIS — праздник предсказуемости и удовольствие конфигурируемости. Не программирование, а интерактивный выбор из списков. Никаких подписей поверх линий, работает их вытеснение, а линии не меняют толщину и цвет в непонятной зависимости от масштаба. Да и вообще не нужно думать о масштабе. Первые десять минут не верил, что всё так просто, но да: быстро переписал все размеры и цвета из &lt;a href="http://textual.ru/walking.txt"&gt;стиля для Maperitive&lt;/a&gt; и увидел красивую карту.&lt;/p&gt;
&lt;h2&gt;Пирог&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Добавьте новый векторный слой типа Polygon. В нём нужны поля &lt;i&gt;name&lt;/i&gt; (строка) и &lt;i&gt;rotation&lt;/i&gt; (целое число).&lt;/li&gt;
&lt;li&gt;В его свойствах отключите заливку, добавьте жирный контур и подпись из &lt;i&gt;name&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Включите редактирование и обводите листы для печати, один за другим. Левый клик — добавить точку, правый — завершить. Рисовать лучше прямо по улицам. Поле fid, если есть, заполнять не нужно. Называйте полигоны в формате «14-запад»: номер куска в пироге и указание на его часть.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Опять же, видя прямоугольники листов на карте, ощутил наступление будущего: не нужно терпеть ме-е-едленный поворот всей карты в Inkscape, элементарно переставить или подвинуть куски. Единственное, чего не хватает, — автоматического вычисления поворота, чтобы каждый кусок печатать в максимально возможном масштабе. Поле &lt;i&gt;rotation&lt;/i&gt; придётся заполнять самостоятельно.&lt;/p&gt;
&lt;h2&gt;Печать атласа&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;«Проекты» → «Создать макет», там во вкладке «Атлас» включите его, выберите слой, скройте его и щёлкните на «создать многостраничный документ».&lt;/li&gt;
&lt;li&gt;Добавьте карту и во вкладке «Свойства элемента» отрегулируйте положение и размер. Включите «используется для атласа» с полем 0%, выше свяжите вращение карты с полем &lt;i&gt;rotation&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Добавьте в угол текстовую метку с содержимым &lt;tt&gt;[% «name» %]&lt;/tt&gt; и настройте её вид.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Это всё — если не нужно поворачивать карту на отдельных листах. Но, конечно, поворачивать надо. Поэтому:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Включите предпросмотр атласа.&lt;/li&gt;
&lt;li&gt;В окне QGIS откройте таблицу атрибутов слоя пирога и включите редактирование.&lt;/li&gt;
&lt;li&gt;Для каждого листа оцените поворот в градусах (положительные значения — по часовой стрелке) и впишите в нужную строку. После этого в окне макета нажмите «Обновить» и проверьте угол. Поправьте, если не попали.&lt;/li&gt;
&lt;li&gt;«Следующий объект» — и так далее до последней страницы. Муторно, но всё проще и быстрее, чем в Inkscape.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Теперь точно всё. Из меню «Атлас» сразу печатайте или сохраните в PDF. Если нужно проверить оформление, напечатайте одну страничку из меню «Макет».&lt;/p&gt;
&lt;h2&gt;Нет, не всё&lt;/h2&gt;
&lt;p&gt;Боже, двадцать два шага. Пирог «наполеон» готовить проще, чем пирог к очередной картовстрече. Даже с учётом современных технологий получилось длинно и сложно. Клики правой кнопкой мыши, клики левой. Нам нужно проще. Поэтому я начал смотреть, как оптимизировать отдельные этапы. Главное — подбор углов поворота. Глазами получается неточно, а в модуле processing есть интересная функция «oriented minimum bounding box», которая делает ровно то, что нужно: находит повёрнутый прямоугольник минимальной площади, в который вписывается каждый объект слоя.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://shtosm.ru/pictures/rotated-buildings-nq8.png" width="700" height="300" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Открыл питонскую консоль, набросал короткий скрипт — и действительно, поверх слоя домиков в своём районе увидел россыпь повёрнутых прямоугольников вокруг них. А в атрибутах — размеры и углы. Сохранил скрипт, довольный. Через пару минут дошло: плагины же тоже на питоне пишутся. Если делать не только для себя — нужен плагин. А если делать плагин, то нужно идти до конца, чтобы получилось...&lt;/p&gt;
&lt;h2&gt;Волшебство&lt;/h2&gt;
&lt;p&gt;Именно по этой причине эта заметка задержалась на три недели. Забудьте все шаги выше. Забудьте Overpass, забудьте ogr2ogr, забудьте свойства слоёв и составление атласов. Теперь подготовка пирога так же проста, как его обход:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Установите модуль «Walking Papers».&lt;/li&gt;
&lt;li&gt;Найдите кнопку с синими прямоугольничками и после нажатия выберите «Скачать данные OSM».&lt;/li&gt;
&lt;li&gt;На новом слое нарисуйте (слева вверху карандашик и какая-то область) полигон вокруг области картовстречи. Затем снова жмите «Скачать».&lt;/li&gt;
&lt;li&gt;Ура, есть карта! В слое «Pie Overview» наметьте широкими линиями границы кусков пирога.&lt;/li&gt;
&lt;li&gt;В слое «Pie Sheets» обведите кварталы, которые войдут на каждый лист. Обычно это два-три листа на кусок пирога. Давайте им названия в виде «4-запад», с номером куска и ориентиром внутри него.&lt;/li&gt;
&lt;li&gt;Снова под той же синей кнопкой «Подготовить к печати». Всё, просмотрите листы и экспортируйте в PDF.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://shtosm.ru/pictures/qgis_wp_menu-nq8.png" width="700" height="320" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Картинка со старой версией модуля, где был лишний шаг&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Невероятно! Шесть шагов, из которых только два требуют осмысленной работы, чесания головы, пристального взгляда на спутниковые снимки, ворошения прошлых пирогов, захлопывания крышки ноутбука с возгласом «да ну его, завтра нарисую!» Печать &lt;i&gt;качественных&lt;/i&gt; обходных листов больше не удел гиков, которые «на ты» с таким осмерским софтом, который вы бы не захотели встретить в тёмной подворотне. Жду не дождусь августа, чтобы воспользоваться модулем по назначению.&lt;/p&gt;
&lt;h2&gt;Внутри QGIS&lt;/h2&gt;
&lt;p&gt;Осталась одна ма-аленькая проблемка. Если повернуть страницу атласа, то её масштаб станет мельче, чтобы вместить все данные с неповёрнутой страницы. А если карта управляется объектами с отдельного слоя, то на вычисление масштаба размеры этих объектов не влияют (посмотрите на отступ до дороги сверху на правом листе на фотографии в начале статьи). Вот незадача: хотели повернуть кварталы вдоль листа, чтобы приблизить их до упора и не мельчить при обходе, а получилось наоборот. Из-за этого поворот карты становится бесполезным. Что же делать?&lt;/p&gt;
&lt;p&gt;Как известно, открытый софт развивается через боль. Если вас что-то не устраивает в QGIS, вы либо идёте жаловаться в телеграм, либо оплачиваете разработку в NextGIS, либо делаете &lt;i&gt;git clone&lt;/i&gt; и открываете Qt Designer сами. Будучи ленивым, я пропустил первые два шага, нашёл в исходниках вычисление размеров объекта и всунул в нужное место &lt;i&gt;geometry.rotate()&lt;/i&gt;. &lt;a href="https://github.com/qgis/QGIS/pull/4730"&gt;Пул-реквест&lt;/a&gt; отправился в ветку будущего релиза QGIS 3.0.&lt;/p&gt;
&lt;p&gt;А дальше я начал узнавать, чем гостеприимный опенсорс отличается от пассивно-агрессивного, как принято в OSM. «Офигенное решение проблемы, спасибо!» — поприветствовал меня один из разработчиков QGIS. И сразу такое тёплое чувство внутри: меня ждали, мне рады, я не зря изучал исходники. «Только допиши тест на питоне, пожалуйста» — и окрылённый, я пошёл изучать систему тестирования QGIS и писать нужную функцию.&lt;/p&gt;
&lt;p&gt;В процессе наткнулся на неудобство API прямоугольников и дописал функции их сдвига. Так я узнал про SIP bindings и зачем нужен скрипт &lt;i&gt;prepare_commit.sh&lt;/i&gt;, который нужно запускать до &lt;i&gt;git commit&lt;/i&gt;. На каждом этапе я мог кинуть клавиатуру в окно от очередного «сделай ещё тут кое-что», но благодаря вежливости и доброжелательности участников проекта я был рад делать ещё и ещё. Только метафорической линейкой по пальцам удержало меня от новых правок и улучшений в коде QGIS. Зачем оставаться в OSM и всё это терпеть, когда там так приятно и легко, и говорят спасибо после мёржа?&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://shtosm.ru/pictures/qgis-essen-meeting.jpg" width="1200" height="516" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Встреча приятных людей в Эссене, фотография Аниты Грейзер&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Но проблема осталась&lt;/h2&gt;
&lt;p&gt;Версия QGIS 2.18 останется в большинстве репозиториев до сентября 2018 года: моя правка в неё не попадёт. Пользоваться модулем хочется прямо сейчас, не дожидаясь новых версий QGIS. Поэтому нужно как-то обойти ошибку. С пул-реквестом за плечами решение оказалось несложным: модуль делает копию слоя пирога с модифицированной геометрией и новыми атрибутами. Новый слой невидимо управляет параметрами карты, чтобы у вас были идеальные обходные листы.&lt;/p&gt;
&lt;p&gt;Как ещё можно улучшить? Ну, например, сделать рисование листов пирога сразу прямоугольниками пропорций листа А4. Тогда этап вычисления углов поворота станет ненужным. Слой тайлов OpenStreetMap пока приходится подключать вручную через &lt;a href="http://nextgis.ru/blog/quickmapservices/"&gt;QuickMapServices&lt;/a&gt;: возможно, лишние клики стоит оптимизировать, общаясь с этим модулем напрямую. Это поможет и для подготовки обзорных страниц в атлас. Наконец, оформление обходных листов зашито в модуль: чтобы его поменять, нужно править файл внутри каталога, но после обновления модуля правки потеряются.&lt;/p&gt;
&lt;p&gt;Буду ли я улучшать модуль? Нет, он достаточно хорош и мне лень.&lt;/p&gt;
&lt;p&gt;Писать модули прикольно. Что для JOSM, что для QGIS. По окончании радует ощущение, что операции, которые требовали времени и внимательности, переложены на машину и делаются одной кнопкой. Оформление модуля трудоёмко: нужно копаться в API, разбираться с репозиторием, рисовать значки и не забыть про переводы. Альтернатива — короткие куски кода для консоли python или плагина &lt;a href="http://shtosm.ru/all/bez-komand/"&gt;JOSM Scripting&lt;/a&gt;. Писать их не проще, а найти потом, когда через год-другой возникнет похожая задача, — почти невозможно. Так что лучше неделю потерять, но потом несколько часов сэкономить.&lt;/p&gt;
</description>
</item>


</channel>
</rss>