NextGIS Mobile

Чем плох NextGIS Mobile

Ребята из компании НекстГИС решили устроить 26 сентября большую презентацию, посвященную своим продуктам. Как только мне пришло письмо об этом, сразу понял — пора написать пару строк про их программу для сбора полевых данных NextGIS Mobile. Год назад я впервые установил ее и с тех пор она прошла дендроинтвентаризацию парков Нижнего Новгорода, Чирскую географическую экспедицию, сплавы по рекам Сухой Донец, Ижора и Великанйоки, составление геологической карты южной и средней Карелии, многочисленные рыбалки и путешествия.

О всех ништяках и плюшках этой замечательной программы лучше всего расскажут сами авторы (жаль, я в это время буду измерять очередные деревья в Питере). Тем более, что они наверняка подготовили какое-то обновление. Я же займу привычное амплуа старого брюзги и поделюсь всем своим недовольством.

Список построен по степени убывания трешовости встреченных багов. Смартфон Lenovo A2010-a. Android 5.1

1. Со временем исчезают кешированные тайлы. Примерно через неделю после загрузки тайлов они начинают исчезать из кеша. Не все сразу, в разных зумах, но исчезают. Как будто у каждого тайла есть свой срок давности, после которого тайл перестает отображаться. Это самая лютая беда, поскольку невозможно загрузить один раз карту и надолго уйти в районы без интернета.

2. Не грузится тайл, соответствующий текущему местоположению. Прямо как специально: вся карта подгружается, а фрагмент, который необходим — нет.
NextGIS Mobile

3. При измерении расстояний все или часть подгруженных тайлов исчезает, экран становится черным. Остаются только вектора. После того, как нажимается галка («расстояние измерено»), все возвращается в норму. Но, блин, как мне расстояние на карте измерить, если карты нет?

6. После обновления в начале августа перестало работать измерение расстояний. Все излечилось установкой apk-файла с сайта nextgis.ru, но в начале сентября и по сей день линейка опять не работает.

5. Информационный указатель плохо работает на полигональном слое. Вместо выбранного полигона выделяется что угодно.
NextGIS Mobile

6. При длинных треках (несколько десятков километров и более) программа иногда перестает отображать трек, а пару раз даже прекращала запись трека.

7. Маркер текущего местоположения иногда закрывает карту, в результате приходится идти наугад и часто в неправильном направлении.

На этом список недовольства исчерпывается и начинается список пожеланий. Опять-таки в порядке убывания необходимости.

1. Чрезвычайно не хватает возможности подгрузки растров или mb-тайлов. Приходится переводить все в вектор, а это долго, дорого и не всегда возможно.

2. Часто требуется закешировать карту вдоль маршрута движения или какого-нибудь протяженного объекта. Сейчас приходится загружать огромную лишнюю область, что при медленном интернете создает массу проблем.

3. Очень бы пригодилась фильтрация ошибочных точек трека. При высокой частоте измерений местоположения трек иногда отбрасывает на огромные расстояния ошибочным измерением. В дальнейшем это затрудняет работу с треком, даже просто в OSM такие данные лучше не загружать. Было бы очень замечательно, если бы не фиксировались измерения, значения которых превышают три стандартных отклонения от предшествующих измерений.
NextGIS Mobile

4. Проверка целостности загрузки тайлов. Иногда, даже на только что загруженном слое отсутствуют тайлы (может из-за проблем с сетью во время загрузки или особенностей сервера). Повторная загрузка обычно решает эту проблему, но было бы лучше, если бы не требовалось заново подгружать не все данные, а только те, которых нет в кеше.

5. При кешировании необходимо указать номера загружаемых зумов, но делать это приходится скорее интуитивно, поскольку при просмотре карты номера зумов не отображаются. Было-бы отлично видеть где-нибудь в уголке номер зума, который тебе интересен.

6. Очень сложно выставить информационный указатель точно, особенно в дождь, когда экран мокрый или при движении. Очень нехватает более тонкого инструмента для перемещения курсора, чем просто толстым пальцем в экран ткнуть.

7. В продолжении шестого пункта. По той-же причине, измерить расстояние можно либо только грубо, либо зумируя, но это не всегда удобно, поскольку часто необходимо видеть перед собой картинку целиком. Да и само зумирование сопряжено с описанными выше трудностями.

8. Сейчас при измерении расстояний, необходимо выставлять две точки. Но чаще всего расстояния измеряются от текущего местоположения, до какого-либо объекта. Было бы удобнее, если бы первая точка выставлялась автоматически в текущем местоположении, а поставить нужно было-бы только вторую. Например, выбрал измерение расстояний, указал первую точку, далее если указать вторую — расстояние будет измеряться как сейчас, если нет — расстояние автоматически рассчитается между выбранной точкой и текущим местоположением.

9. Если выбрано расстояние между объектом на карте и текущим местоположением, это расстояние должно изменяться при движении, причем желательно указывать не только расстояние, но и азимут. Это особенно важно для случаев, когда азимуты необходимо фиксировать точно.

10. Сейчас треки нужно экспортировать отдельно, в результате чего они путаются и тратится лишнее время. Удобнее, когда трек после завершения записи автоматически сохраняется в выбранную директорию на устройстве.

11. Раскрасить полигональный слой сейчас можно только вручную, что неимоверно долго. Все стало бы гораздо проще, если-бы требовалось только указать поле классификации, а далее слой раскрашивался автоматически, пусть даже в разные цвета.

12. Вывести атрибутивные подписи на карту сейчас невозможно, хотя это очень облегчило бы многие задачи.

13. Для растров очень не хватает порой оверзума. Тем более, что номера зумов не высвечиваются и не всегда понятно, можно ли еще приблизить карту или сейчас перед тобой появится серый экран.

14. Смещение подложки. Оно необходимо даже не столько для OpenStreetMap, сколько для работы с данными, которые готовили криворукие инженеры. Из-за хронической проблемы СК42-WGS84 точки постоянно оказываются не на своем месте и расчет, скажем, расстояния между обнажением и мостом на карте превращается в пытку.

15. Не хватает возможности быстрой расстановки точек с фотографиями. При движении по дороге часто необходимо зафиксировать объект, что-бы позже к нему вернуться. Подписывать ее или пользоваться стандартным инструментом расстановки точек слишком долго, нужны всего две опции: просто поставить точку и поставить точку с фотопривязкой. Выбрал-сфотографировал-точка стоит на карте.

16. Иногда таблицу атрибутов требуется отсортировать. Сейчас это невозможно

17. Еще иногда в таблице атрибутов необходимо что-то найти контекстным поиском. Сейчас это то же неворзможно

18. Трек можно либо начать, либо приостановить. Поэтому в местах длительной остановки треки либо разрываются, либо образуют нагромождение хаотичных точек. Для этих целей очень поможет возможность поставить запись трека на паузу.

19. При точном определении местоположения ошибку измерений всегда приходиться устанавливать заново. Запомнить, что я всегда использую CE 98 программа пока не умеет.

20. На карте невозможно выставить красивый стандартный масштаб, скажем 1:100 000. Мне это не требуется, но коллеги сетовали, что без этого у них в жизни счастья нет.

21. Ну и самое последнее. Когда идешь по направлению к какой-то точке, то и дело приходится доставать навигатор и уточнять свое направление. Это очень-очень неудобно. Особенно среди комаров в дождь, по колено в грязи, среди густых ольхово-ивовых зарослей, с тяжелым рюкзаком за плечами. Я искренне мечтаю, что кто-нибудь осознает необходимость такой фичи, которая оценивает правильность твоего курса. И если ты отклоняешься от цели вправо больше чем на заданное число градусов, заставляет телефон пищать одним образом, а если влево, то другим. Тогда можно будет идти без постоянных остановок и уточнений местоположения.

И жить всем сразу станет намного легче.

консоль WMS-сервера

Установка и настройка OGCServer-master

В прошлый раз мы подняли свой TMS-сервер на базе mapnik. Самое время развернуть на той-же основе свой WMS. Для этого, мы используем библиотеку OGCServer-master написанную Жаном Франсуа Дойоном. Библиотека написана на питоне специально под мапник со следующими ТТХ:

— Поддерживает WMS 1.1.1 и 1.3.0
— CGI/FastCGI, WSGI, mod_python
— Поддерживает все 3 запроса: getcapabilities, getmap и getfeatureinfo
— Выходные файлы в формате JPEG и PNG (только PNG256)
— Обрабатывают ошибки XML/INIMAGE/BLANK
— Поддерживает несколько именованных картографических стилей
— Поддерживает перепроецирование
— Поддерживаются метаданные слоя: title, abstract
— Существует возможность запросить все слои с помощью LAYERS=__all__

При использовании библиотеки следует помнить, что Getfeatureinfo поддерживает только простой текст, не поддерживаются 8-битные растры png (только 256 цветов) и для CGI/FastCGI должна быть доступна запись tempfile.gettempdir() (обычно пишется в «/tmp»). Кроме того, OGCServer-master требует установленных питоновских зависимостей мапника, питоновскую библиотеку для визуализации PIL и модули jonpy.

Подробные инструкции по настройке библиотеки можно почерпнуть из аутентичной страницы гит-хаба. Сама установка элементарна, требуется лишь закачать библиотеку на сервер, после чего в корневой директории библиотеки (она содержит файл setup.py) выполнить команду:

sudo python setup.py install

У библиотеки OGCServer-master есть ряд подводных камней о которых желательно знать до установки. Во-первых, перед установкой рекомендуется исправить имена и заголовки WMS, поскольку их дефолтные значения содержат в себе пробелы. QGis такие записи воспринимает нормально, но у других программ (например, FME) по этой причине могут возникать проблемы с загрузкой WMS-слоев. Для исправления, следует внести правки в шесть файлов из директории ogcserver. Исправленные строки в файлах (прописано «newname») будут выглядеть так:

Файл OGCServer-master\ogcserver\default.conf (2 правки):
Строка 95: wms_name = newname
Строка 98: wms_abstract = newname
Файл OGCServer-master\ogcserver\wms111.py (2 правки):
Строка 147: rootlayertitle.text = 'newname'
Строка 154: rootlayerabstract.text = 'newname'
Файл OGCServer-master\ogcserver\wms130.py (2 правки):
Строка 154: rootlayertitle.text = 'newname'
Строка 161: rootlayerabstract.text = 'newname'

Во-вторых, OGCServer-master более чувствителен к xml-файлу стиля чем сам мапник. Это значит, что при наличии ошибок в файле стиля, которые при старте рендеринга TMS проигнорируются, например line-opacity, сервис WMS не запустится, а выдаст ошибку с указанием всех строк, подлежащих исправлению. С одной стороны, это требует более тщательной работы над стилем, с другой стороны, позволяет легко отловить ошибку. По этой причине, я использую OGCServer-master даже в тех случаях, когда требуется исключительно создание TMS.

После установки, запустить WMS можно с помощью команды

ogcserver путь_к_стилю.xml

Если вы работаете через ssh, можете прописать перед командой запуска «nohup» для того, что-бы после разъединения сервер продолжал работать. После этого можно запрашивать слои в браузере командой:

http://localhost:8000/?LAYERS=__all__&STYLES=&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A3857&BBOX=-20037508.34,-20037508.34,20037508.3384,20037508.3384&WIDTH=256&HEIGHT=256

Либо, через стандартный интерфейс QGis или любой другой программы.

Одним из самых больших недостатков библиотеки, является отсутствие кеша, что значительно замедляет работу. Впрочем, решение этой задачи стоит одним из первых в TODO-листе.

слиппимап

Установка тайлового сервера на Debian 8 Jessie

Введение

Данная статья представляет собой перевод руководства по установке TMS сервиса, дополненный моими личными замечаниями.

Если говорить грубо и утрированно, отличие TMS от WMS в том, что первый отдает тайлы каждого зума в виде однослойной плитки, а WMS отдает каждый тайл зума в виде набора прописанных в стиле слоев. Например, если ваши геоданные содержат только слой земли и слой дорог, TMS сделает из них одну картинку территории с дорогами. WMS отрендерит каждый слой отдельно, благодаря чему у вас будет отдельная картинка с землей, отдельная с дорогами.

Если вам требуется изменять наполнение карты путем включения/отключения какого-либо слоя, без WMS не обойтись. Но с другой стороны TMS проще, быстрее и в большинстве случаев предпочтительней, поэтому мы начнем именно с него.

Отдельно замечу: в тексте оригинальной статьи большое количество действий выполняется из под рута. Я не стал это исправлять, но призывая к внимательности и осторожности, снимаю тем самым с себя всякую ответственность за падение вашей операционной системы.

В тексте статьи большое количество команд, поэтому буду рад, если вы укажете на неточность или предложите более простые пути реализации поставленной задачи.

 

Инструменты

Операционной системой для этих опытов послужит Linux Debian 8 Jessie. TMS будем разворачивать на библиотеке mapnik. Облигантных инструментов для этой работы нет. Под виндой я обычно использую TotalCommander Grey Pack (спасибо за него диаволу на пятнашке) с плагином Secure FTP Connections и программу Putty. Под линуксом я юзаю тильду для ssh-соединения и любой вменяемый файловый менеджер с поддержкой сетевого соединения.

Итак, погнали. У нас в наличии ssh-доступ к серверу с девственно чистой Дебиан Джесси. Рекомендую сразу установить консольный редактор nano:

sudo apt-get install nano

и консольный файловый менеджер mc:

sudo add-apt-repository ppa:eugenesan/ppa
sudo apt-get update
sudo apt-get install mc

Это не обязательно, но поверьте, потом еще не раз пригодится.

 

Установка и создание базы данных

Начнем с установки пакетов postgresql-9.4-postgis-2.1 и postgresql-contrib-9.4

Входим под рутом и запускаем:

apt install postgresql-9.4-postgis-2.1 postgresql-contrib-9.4

Теперь создадим базу данных. Переключаемся в постгрес:

su postgres

и для избежания возможных проблем переходим к домашней директории:

cd ~

Создадим пользователя c именем «osm»:

createuser osm

и базу данных с названием «map»:

createdb -E UTF8 -O osm greatbritain
psql -c "CREATE EXTENSION hstore;" -d map # Should result in CREATE EXTENSION
psql -c "CREATE EXTENSION postgis;" -d map # Should result in CREATE EXTENSION

Если все прошло удачно, выходим из постгреса:

exit

 

Добавление пользователя

Для того, чтобы избежать работы под рутом, добавим в систему пользователя osm с помощью команды adduser:

adduser osm

Теперь добавим пользователя osm в группу sudo. Для этого воспользуемся редактором nano (вы же его установили, верно?)

su вводим пароль
nano /ets/sudoers
Находим строку
# User privilege specification

после

root ALL=(ALL:ALL) ALL

вставляем строку

osm ALL=(ALL:ALL) ALL

и сохраняем документ последовательностью хоткеев ctrl+o, Enter , ctrl+x

 

Импорт картографического стиля

Мы будем использовать стандартный стиль mapnik osm. В дальнейшем, при желании, вы всегда сможете его изменить на свой вкус. Перейдем в домашнюю директорию и скачаем стиль с гит-хаба:

su osm
cd ~
wget https://github.com/gravitystorm/openstreetmap-carto/archive/v2.29.1.tar.gz
tar -xzf v2.29.1.tar.gz

Теперь в домашней директории должна появиться папка с названием: Теперь вы должны иметь папку с названием «openstreetmap-carto-2.29.1». После этого можно переходить к импорту геоданных.

 

Импорт геоданных

Нам потребуется пакет osm2pgsql. Для этого переключимся на рута и выполним команду:

exit
apt install osm2pgsql

Теперь можно переходить непосредственно к импорту dbf-файла с данными. Самое простое решение — это импортировать всю планету OpenStreetMap целиком. Но у такого подхода есть очевидные недостатки: во-первых, объем диска у вас не безграничен, во-вторых, даже на простое скачивание планеты может уйти изрядное количество времени, а в третьих, информация о улицах какой-нибудь Зулусии вам может быть совершенно не нужна. Приходится вырезать нужный регион из дампа самому, либо использовать готовые данные. Сейчас их можно получить у  GeoFabrik, CloudMade или Гис-лаб (НексГИСа). В выгрузке геофабрики напрочь отсутствовали реки. В выгрузке НексГИСа отсутствовали части объектов, пересекаемые государственной границей, из-за чего некоторые пограничные озера при рендере пропадали, но острова на них закрашивались цветом воды. Выгрузки регулярно обновляются, так что это вполне могут быть временные случайные баги. С выгрузками CloudMade я активно не работал, поэтому комментарий дать не могу.

Скачаем архив на территорию России с сайта гис-лаб. Если вы все это проделываете в экспериментальных целях — рекомендую для начала скачать не Россию целиком, а только один из регионов — этим вы сэкономите себе уйму времени. Например, возьмем Ростовскую область.

su osm
cd ~
wget href="http://data.gis-lab.info/osm_dump/dump/latest/RU-ROS.osm.pbf"

Теперь импортируем скачанные данные в постгрес. Делается это так: запускаете команду:

osm2pgsql --slim -d map -C 1600 --hstore -S openstreetmap-carto-2.29.1/openstreetmap-carto.style RU-ROS.osm.pbf

и идете пить чай, играть в футбол и гонять балду. Процесс, особенно в некоторых случаях, например при импорте объемного файла, занимает ну очень много времени. Не забудьте, что все это вы делаете через ssh, а значит либо не выключайте компьютер и не отключайтесь от сети, либо используйте соответствующие команды.

Иногда на данном этапе возникают следующие проблемы:

Error: Connection to database failed: could not connect to server: No such file or directory

Тут, возможно, вам пригодиться фраза из оригинальной статьи: «Is the server running locally and accepting connections on Unix domain socket «/var/run/postgresql/.s.PGSQL.5432»?

Кроме того, если вы установили PostgreSQL 9.3 вместе с 9.1 на 9.3 может быть использован другой порт. Необходимо найти его и использовать флаг -p, при запуске osm2pgsql.

Поздравляю. Вы заполучили базу OpenStreetMap на выбранный регион. Проверить это можно командой:

psql -d map -c "select name from planet_osm_point where place='city';"

 

Создание тайлового сервиса

Установим пакет mod_tile. Пока он недоступен в репозитории Дебиан, поэтому нам потребуется предварительно скачать его с гит-хаба и распаковать в домашней директории:

wget https://github.com/openstreetmap/mod_tile/archive/6c2cb243e4c8b047950ab8062cd66245f20a5d2f.tar.gz -O mod_tile.tar.gz
tar -xzf mod_tile.tar.gz

Теперь установим пакеты autoconf, libtool, libmapnik-dev и apache2-dev:

su
apt install autoconf libtool libmapnik-dev apache2-dev
exit

Перейдем в каталог mod_tile и запустим:

cd mod_tile-6c2cb243e4c8b047950ab8062cd66245f20a5d2f/
./autogen.sh
./configure
make

Теперь запустим из под рута следующую команду:

su
make install
make install-mod_tile
exit
cd ..

 

Создание xml стиля Mapnik

Нам потребуются пакеты curl, unzip, gdal-bin, mapnik-utils и node-carto, для установки которых выполним под рутом:

su
apt install curl unzip gdal-bin mapnik-utils node-carto
exit

Вернемся в пользователя osm и загрузим необходимые шейп-файлы. Для справки: база osm не хранит в себе континенты и некоторые другие объекты, отображающиеся на низких зумах. Эти полигоны и линии подгружаются и прописываются в стиле с помощью команды:

cd ~/openstreetmap-carto-2.29.1/
./get-shapefiles.sh

Для смены имени базы данных можно выполнить команду:

sed -i 's/"dbname": "gis"/"dbname": "map"/' project.mml

Для того, что-бы сформировать xml-файл, непосредственно отвечающий за стиль, запустите:

carto project.mml > style.xml

 

Настройка рендера

Откройте в редакторе nano файл /usr/local/etc/renderd.conf (потребуется использовать sudo). Напротив XML пропишите путь к вашему xml-файлу картостиля. Напротив HOST пропишите localhost.

Либо, вы можете внести эти изменения автоматически, выполнив под рутом:

su
sed -i 's/XML=\/home\/jburgess\/osm\/svn\.openstreetmap\.org\/applications\/rendering\/mapnik\/osm\-local\.xml/XML=\/home\/osm\/openstreetmap-carto-2.29.1\/style.xml/' /usr/local/etc/renderd.conf
sed -i 's/HOST=tile\.openstreetmap\.org/HOST=localhost/' /usr/local/etc/renderd.conf

После этого, файл /usr/local/etc/renderd.conf  должен выглядеть так:

[default]
URI=/osm_tiles/
TILEDIR=/var/lib/mod_tile
XML=/home/osm/openstreetmap-carto-2.29.1/style.xml
HOST=localhost
TILESIZE=256
;HTCPHOST=proxy.openstreetmap.org
;** config options used by mod_tile, but not renderd **
;MINZOOM=0
MAXZOOM=19
;TYPE=png image/png
;DESCRIPTION=This is a description of the tile layer used in the tile json request
;ATTRIBUTION=&copy;<a href=\"http://www.openstreetmap.org/\">OpenStreetMap</a> and <a href=\"http://wiki.openstreetma$
;SERVER_ALIAS=http://localhost/
;CORS=http://www.openstreetmap.org
;ASPECTX=1
;ASPECTY=1

Теперь измените директорию плагинов (plugins_dir) и местоположение пакета (match debian package location) mapnik. Сделать это можно вручную, либо с помощью команд:

sed -i 's/plugins_dir=\/usr\/lib\/mapnik\/input/plugins_dir=\/usr\/lib\/mapnik\/2.2\/input\//' /usr/local/etc/renderd.conf
[mapnik]
plugins_dir=/usr/lib/mapnik/2.2/input/
font_dir=/usr/share/fonts/truetype
font_dir_recurse=1

Скопируйте скрипт renderd.init и установите право доступа к файлу renderd:

cd /home/osm
cp mod_tile-6c2cb243e4c8b047950ab8062cd66245f20a5d2f/debian/renderd.init /etc/init.d/renderd
chmod a+x /etc/init.d/renderd

Исправьте пути в скрипте init

sed -i 's/DAEMON=\/usr\/bin\/$NAME/DAEMON=\/usr\/local\/bin\/$NAME/' /etc/init.d/renderd
sed -i 's/DAEMON_ARGS=""/DAEMON_ARGS=" -c \/usr\/local\/etc\/renderd.conf"/' /etc/init.d/renderd
sed -i 's/RUNASUSER=www-data/RUNASUSER=osm/' /etc/init.d/renderd
mkdir -p /var/lib/mod_tile
chown osm:osm /var/lib/mod_tile

Теперь запустите rederd:

systemctl daemon-reload
service renderd start

 

Установка и настройка Apache и mod_tile

Установите апач с помощью команды:

apt install apache2

Конфигурация апача и загрузка mod_tiles выполняется командой:

echo "LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so" > /etc/apache2/mods-available/tile.load
ln -s /etc/apache2/mods-available/tile.load /etc/apache2/mods-enabled/

Добавьте следующий ниже текст с помощью редактора nano перед тегом <?/VirtualHost> в /etc/apache2/sites-enabled/000-default.conf 

LoadTileConfigFile /usr/local/etc/renderd.conf
ModTileRenderdSocketName /var/run/renderd/renderd.sock
# Timeout before giving up for a tile to be rendered
ModTileRequestTimeout 0
# Timeout before giving up for a tile to be rendered that is otherwise missing
ModTileMissingRequestTimeout 30

и перезапустите апач:

service apache2 restart

 

Проверка отдачи тайлов
Перейдите в браузере по адресу http://localhost/osm_tiles/0/0/0.png напрямую , либо с использованием порта 8080. Если все прошло успешно, вы увидете в браузере вот такую картинку:

Теперь можно приступать к редактированию картографического стиля. Для этого, прежде всего, запомните команды:

sudo service renderd stop
rm -r /var/lib/mod_tile/default
sudo service renderd start

На ближайшие месяцы это будут единственные команды, которые вам потребуются в консоли.

Тестируем ГИС «Аксиома». Попытка вторая

Холодец без водки — невыразимая гадость, а с водкой — ничего так, вполне нормальная закуска.
— Заебал своими холодцами! Ты что, опять про ГИС «Аксиому» будешь проповедовать?
Именно про нее, друзья мои. Мой прошлый тест-драйв оказался на редкость быстрым, поэтому, как и обещал, я нашел шестидесятичетырехбитную машину под виндой и запустил на ней эту хреновину.

Ниже вас ждет длинная простыня с картинками и минимумом текста. Не будем же терять время. Нарежьте себе бутербродов с толстыми кусками колбасы и добро пожаловать в новорожденный мир ГИС «Аксиома».

Устанавливаем и запускаем программу. Интерфейс простой, чуть сложнее Paint-а.
1

 

Замечательно, что разработчики побеспокоились об аналоге Open Layers в QGIS, проще говоря  о встраивании популярных WMS-слоев. Но грузятся тайлы значительно медленно, а в доступном перечне отсутствуют не только гугловские карты, но и стандартный OSM-Mapnik.

2

 

И еще вопрос: если уж работа ведется над новым продуктом, почему было бы не запилить смещение снимка и свой сервер смещений, как это сделано в JOSM? Теперь, после релиза «Аксиомы», на один продукт, в котором создаются хуй пойми к чему привязанные карты станет больше.

По умолчанию, нам предлагают открывать TAB-файлы. Изменить это невозможно, хоть конем ебись. Более того, что-бы переключить выбор на шейп, требуется раскрывать дополнительное меню.

3

 

Можно открыть не только DXF, но и DWG, что очень хорошо при работе с заказчиками, подсаженными на наркотическую иглу AutoDesk.

Растры и векторы открываются через единое меню. Мне кажется, это все-таки правильный путь, хоть реализовать его можно было и аккуратнее. Слои можно открывать в новом окне или добавлять в активное окно — тоже весьма приятная мапинфошная фича:

4

 

После открытия векторного слоя необходимо указать его кодировку. Первый раз это кажется логичным, но учитывая отсутствие кнопки «использовать кодировку для всех слоев», операция дико заебывает. Утф-8, утф-8, утф-8, утф-8, блядь, утф-8! И мне еще повезло, что кодировку моих слоев я знал до их открытия.

5

 

 

В рот мне компот, как же долго грузятся слои! Аксиома по скорости загрузки слоев рядом с QGIS и близко не лежит. Ощущение, что я свои слои напрямую в leaflet.js подгружаю.

6

 

После открытия слоев, они все отображаются черным цветом, в результате чего, хер поймешь, что именно перед тобой. Были бы слои разноцветны, было бы легче.

7

 

В «Аксиоме» деление векторных слоев по размерности геометрии отсутствует. Это обязательно понравится всем, кто работал прежде в Автокаде, Кореле или не работал вообще. Да и я, честно признаюсь, хоть и ворчу, когда не вижу такого деления, но считаю что так пожалуй лучше. Вся эта ебанина с точками, полигонами и линиями — явный пережиток прошлого. В качестве обоснования всегда привожу пример гидрографии в раздельной геометрии, которую приходится отображать двумя слоями (водоемы и водотоки), а под каждым озером течет река.

Плохо только то, что в «Аксиоме» я понятия не имею о типе загруженного в нее шейп-слоя. Когда слоев много, а названия их похожи («waterl» и «waterp»), приходится тратить лишнее время.

Настройка стиля очень простая — это несомненно плюс. Минус в ее примитивности. Тут не то, что псевдотрехмерку не отобразишь, но и просто сложный стиль не задашь.

8

 

Кстати, настройка стиля полигона не работает в верхнем меню.

9

 

Инструмент, позволяющий передвигать подпись слоя довольно грубый, но все-равно очень хорош. Блин, хочу такой-же в QGIS.

Самое нелепое, что есть в «Аксиоме» — это необходимость выбора инструмента для перемещения карты. Это просто какое-то недоразумение. Ни кнопки мыши, ни нажатое колесико — ничего не работает: будь добр, пиздуй в меню «Карта» и выбирай инструмент «перемещение». Заходишь такой, тык в иконку, а это не «перемещение», а «обратить выделение» и все ваши тысячи полигонов напрочь подвешивают программу. Случайно такую ошибку допустить конечно трудно, но все-равно, за вынос такой кнопки на фасад, дизайнерам надо устраивать анальную кару без мыла.

Так, а что у нас с проекциями? Давайте-ка установим нашу любимую EPSG 3857:

10

 

 

— Что? Нет дефолтной 3857? Как нет? Что за пиздец-то?

Не паникуйте. Есть она, но устанавливается она через жопу: «Проекции мира» — «Популярное отображение CRS». Бляха-муха, я все понимаю, но то что одну из самых востребованных проекций нельзя найти даже через поиск — это даже не баг, это хуйня какая-то.

 

В утешение надо заметить, что дефолтно в списке проекций особое внимание уделено территории СССР:

11

 

Редактировать данные в «Аксиоме» просто и понятно. Даже ребенок усвоит. Р-р-раз! И готовы полигоны:

12

 

Р-р-раз! и готова полилиния. Р-р-раз! и измерено расстояние.

13

 

Р-р-раз! И программа вылетает вместе с полигонами, полилинией и измеренным расстоянием:

14

 

Ну ничего. Запустим снова. Подождем, пока отрисуются слои. Потрахаемся с настройкой стилей для каждого слоя:

15

 

Полюбуемся великолепием технологии тайловой загрузки растров:

17

 

В итоге даже получим что-то вменяемое. Неплохо, господа. Весьма неплохо!

18

 

Кстати настрока WMS простая и гораздо лучше, чем в том же QGIS+OpenLayers (доступнее во всяком случае). Яркость на максимум, контраст на максимум — вот секрет отрисовки растительности в городе:

19

 

А вот и первые критичные баги. Окно с настроенным видом закрывается безо всякого предупреждения о том, что данные не сохранены. Но это мелочи. Новый слой прекрасно открывается в новом окне, но не добавляется в активное окно.

20

 

Надеюсь, эту беду исправят в ближайшее время. Да и как иначе-то? Работать же невозможно.

В «Аксиоме» есть свой функционал привязки растров с  бедным выбором алгоритмов трансформации и богатым выборов методов интерполяции. И как обычно, хер кто додумался сделать рекомендацию по выбору.

22

 

Дизайн модуля привязки честно спизжен из QGIS, в чем-то даже улучшен (можно сетку наносить при привязке), но до прообраза ему еще расти и расти. Это при том, что модуль в QGIS — та еще хренота.

Таблица данных примитивна и изобилует всякими ошибками.

28

 

Хотите кликнув по полю отсортировать строки в таблице? А вот хер вам. Но зато привычное окно схемы таблицы.

26

 

«Аксиома» — очередная геоинформационная система, в которой атрибутивная таблица слоя редактируется по мудоебски. Нажатие Enter не перемещает активную ячейку вниз как в Excel, а включает режим редактирования. Бля, я жду уже хуеву тучу лет, когда кто-нибудь додумается до такого простого решения.

В «Аксиоме» можно создавать тематический слой, причем по достаточно сложному запросу.

25

 

И вообще, довольно легко создавать простые карты. Даже дорогу с разделительной полосой можно показать, правда, для этого приходится дублировать слой дорог.

23

 

Можно совместить все это с космоснимком — получится даже годная подоснова. То что надо для большинства офисных работников.

32

 

Жаль вот только экспортировать результат можно только в мапинфошные файлы.

30

 

Вот собственно и все возможности. Конечно, ГИС «Аксиома» это не профессиональная геоинформационная система, а легкий вариант Mapinfo. Если вы работаете в ArcGIS, QGIS, GRASS или других аналогичных по уровню пакетах, то «Аксиома» для вас как дрова для атомной станции. Но для людей, которым очень срочно нужно изготовить хоть сколько-нибудь профессиональную карту, но они на хую вертели все ГИСы вместе с картографией вместе взятые, это прекрасный вариант.

Говоря проще: годнота. Одобрямс.

Тестируем ГИС «Аксиома»

Уже без двух минут пять утра, а у меня еще ни в одном глазу и полная тарелка холодца. Самое время потестить самую громкую новинку осени — Аксиому. Это новая «бесплатная геоинформационная система». Я ее уже скачал с официального сайта, но пока даже не распаковывал, так что итог этой статьи мне пока не ясен. Будете скачивать, обязательно прочтите лицензионное соглашение, благо оно короткое и никакого отношения к программе не имеет. В основном там сказано про то, что вас теперь будут заваливать спамом еще и сотрудники ООО «ЭСТИ».

Для справки: компьютер у меня слабенький- нетбук Asus X201E. Система — украденная седьмая винда.

Еще для справки: я искренне считаю, что распространяемое компанией «ЭСТИ» Mapinfo — это не просто недоразумение, а какое-то необыкновенно фееричное говно. Уж, если нет QGIS-a или ArcGIS-а, лучше я буду юзать старенький ArcView 3.2 или, на худой конец gvSIG, логика работы в которых проста как тропа в лесополосе. А если уж мне охота поебстись, то для этого есть бесплатный GRASS.

Ладно, за сорок секунд я причины написания статьи изложил, теперь надо все остальное за оставшиеся шесть с лишним минут успеть. А то, мне через пять часов женские вещи в электричке продавать, а у меня еще ни в одном глазу и початая тарелка холодца.

Распаковываем. Устанавливаем… А вот херас-два.

2

Система то у меня у меня, 32-битная, а установочный пакет только под 64-битную. Лезем в документацию:

«Программа занимает 112 МБ дискового пространства и работает в 64-битной версии Windows.«

Едрена вошь, ЭСТИ! Такие вещи надо сразу писать на главной странице! Или хотя-бы на странице загрузки. Что за мудачество — заставить меня читать вашу лицензию, подписаться на спам от вас, скачать архив, что-бы в итоге устроить мне распростертую сосамбу?

О возможных проблемах в совместимости надо всегда предупреждать заранее. Вот у меня, уже сложилось хуевое мнение об «Аксиоме». И у вас тоже. По крайней мере, до тех пор, пока я за 64-битную систему не сяду.

— Что-бы вы порекомендовали: использовать программу «Аксиома» от ООО «ЭСТИ» или жрать холодец?

— Я думаю, что выбор очевиден. Любой здравомыслящий человек непременно выберет холодец.

P.S. Я же говорил, что уложусь за 400 секунд, а вы не верили. Журналистское чутье не пропьешь.