www.flightgear.ru
http://flightgear.ru/forum/

Автоматический конвертер OSM в сценарий для FlightGear
http://flightgear.ru/forum/viewtopic.php?f=6&t=633
Страница 2 из 2

Автор:  soitanen.michael [ 14 фев 2013, 17:04 ]
Заголовок сообщения:  Re: Автоматический конвертер OSM в сценарий для FlightGear

Вопрос к знатокам ГИС систем.
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, но он у меня не стоит и не предлагает установиться. Учитывая, что скрипт у меня рассчитан на работу не только на моем компьютере, хотелось бы сделать все через те версии, что доступны в базовых репозиториях Убунту.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/