Вопрос к знатокам ГИС систем.
ogr-decode, которsq обрабатывает shp файлы, очень плохо переваривает геометрию типа MULTILINESTRING (так мне объяснили сами ее создатели). И действительно, он часто вылетает с моими исходными данными.
Я пробовал ставить в вызов ogr2ogr -nlt LINESTRING, но это не помогло. Для чистоты эксперимента переделал MULTILINESTRING в LINESTRING вручную в QGIS (Vector->Geometry tools->Multipart to single parts) и все заработало.
Внимание, вопрос!
Я нашел, что для автомтатизации процесса можно использовать QGIS API без запуска самого QGIS, написав скрипт на Питоне.
Начало у меня такое:
Код:
from qgis.core import *
QgsApplication.setPrefixPath("/usr", True)
QgsApplication.initQgis()
vlayer = QgsVectorLayer("m.shp", "motorway", "ogr")
if not vlayer.isValid():
print "Layer failed to load!"
QgsApplication.exitQgis()
А вот что делать дальше - никак не пойму. Пытаюсь врубиться в
http://qgis.org/api/classQgsGeometry.html, но тоже ничего в голову не лезет.
Подобный вопрос я задавал на форуме ГИС-Лаб, там давали пару консольных скриптов по переделке multi into single, но это не помогало. ПОчему-то только QGIS делает то, что надо. В итоге был совет сделать все через плагин SEXTANTE к QGIS, но он у меня не стоит и не предлагает установиться. Учитывая, что скрипт у меня рассчитан на работу не только на моем компьютере, хотелось бы сделать все через те версии, что доступны в базовых репозиториях Убунту.
_________________
osm2fg - скрипт автоматической генерации сценария для FlightGear из данных OSM
Проект Россия - сборник сценариев России и СНГ в одном месте
Boeing 737-300 - реалистичный автопилот, потихоньку делаю всё остальное
Ан-24Б - в разработке