Создание приложения на базе набора библиотек QGIS на Python

Обсуждение материалов сайта: вопросы, замечания, предложения
Ответить
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение Voltron » 27 июл 2011, 15:47

Marina TS писал(а):Только мой файл состоит из множества полигонов, которые относятся к разным классам, соответственно, у каждого класса свой гридкод и цвет, при загрузке в этом приложение, файл получается как один одноцветный полигон. Возможно ли это исправить?или нужно что-то еще дополнительно прописывать?
Пример в статье носит ознакомительный характер, там сознательно не рассматривались многие аспекты.
Слой отображается одним цветов из-за того, что по умолчанию используется стиль отрисовки «Обычный знак». Чтобы добиться нужного вам результата нужно использовать стиль «Уникальные значения» или «Градуированный знак».

Для изменения способа отрисовки вам надо будет доработать пример. Начальные сведения можно получить из PyQGIS Cookbook (на сайте есть перевод). Подробное описание классов ищите в документации по QGIS API. Если будут вопросы — милости просим в соответствующий раздел форума и в IRC

xen87
Активный участник
Сообщения: 168
Зарегистрирован: 08 апр 2009, 14:44
Репутация: 18
Откуда: Кострома

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение xen87 » 29 июл 2011, 21:41

Здравствуйте, скачал набор данных, указанных в статье, изменил пути глобальных переменных, запустил из командной строки run.bat - заработало, но не все, не работал инструмент "полный охват". На следующий день, запустил run.bat - заработало, но не все, перестал работать инст. "добавление темы" и по прежнему не работал "полный охват". Уважаемые, подскажите пожалуйста, что может быть не так, выкладываю скрины ошибок:
Вложения
1.jpg
1.jpg (187.87 КБ) 11400 просмотров

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение Voltron » 29 июл 2011, 22:05

xen87 писал(а):Здравствуйте, скачал набор данных, указанных в статье, изменил пути глобальных переменных, запустил из командной строки run.bat - заработало, но не все, не работал инструмент "полный охват".
API изменилось. Найдите в коде функцию увеличения до полного охвата и замените

Код: Выделить всё

self.canvas.zoomFullExtent()
на

Код: Выделить всё

self.canvas.zoomToFullExtent()
xen87 писал(а):На следующий день, запустил run.bat - заработало, но не все, перестал работать инст. "добавление темы"
Вот так взял и перестал работать: никаких сообщений об ошибках и shape-файл лежит по тому же пути, который указан в коде?

P.S. Освойте копирование текста из командной строки, вам же проще будет. Да и людям удобнее.

xen87
Активный участник
Сообщения: 168
Зарегистрирован: 08 апр 2009, 14:44
Репутация: 18
Откуда: Кострома

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение xen87 » 29 июл 2011, 22:36

1. Название функции в коде нашел и заменил, теперь ошибка не выскакивает.
2. ни каких сообщений об ошибках не выскакивало, местоположение шейпа не менялось (лежит в одной директории с файлами кода).
3. копирование текста из командной строки - освоил, проверил, действительно, так проще ...

Marina TS
Участник
Сообщения: 57
Зарегистрирован: 21 фев 2007, 16:02
Репутация: 0

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение Marina TS » 31 июл 2011, 07:45

Voltron писал(а):
Marina TS писал(а): Пример в статье носит ознакомительный характер, там сознательно не рассматривались многие аспекты.
Слой отображается одним цветов из-за того, что по умолчанию используется стиль отрисовки «Обычный знак». Чтобы добиться нужного вам результата нужно использовать стиль «Уникальные значения» или «Градуированный знак».
Для изменения способа отрисовки вам надо будет доработать пример. Начальные сведения можно получить из PyQGIS Cookbook (на сайте есть перевод). Подробное описание классов ищите в документации по QGIS API. Если будут вопросы — милости просим в соответствующий раздел форума и в IRC
Спасибо большое!!!буду разбираться!

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение KolesovDmitry » 08 мар 2012, 10:42

Приложенный к статье архив с программой перестал работать... Конкретно, не срабатывает загрузка слоя:

Код: Выделить всё

  def addLayer( self ):
    """add a (hardcoded) layer and zoom to its extent"""

    # Слой должен быть в той же папке, что и файл приложения
    # Имя слоя задано в коде
    layerPath = "test.shp"
    layerName = "test"
    layerProvider = "ogr"

    # Создать слой
    layer = QgsVectorLayer( layerPath, layerName, layerProvider )
...
Т.е. сама программа запускается, появляется окно и панель инструментов, но кгода дело доходит до выполнения строки

Код: Выделить всё

layer = QgsVectorLayer( layerPath, layerName, layerProvider )
слой не добавляется, в консоль пишет "Failed to load"

PS версия: 1.7.4-Wroclaw

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение Voltron » 08 мар 2012, 14:51

Не воспроизводится, все работает и загружается.
Пути к каталогам QGIS в батнике правильные? Слой test.shp присутствует в каталоге приложения? Еще одно дикое предположение, возможно установлено несколько версий QGIS, часть путей указывает на одну версию, часть — на другую. В результате получаем конфликт и часть библиотек (например, провайдер OGR) не грузится.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение KolesovDmitry » 08 мар 2012, 17:04

Voltron писал(а):Не воспроизводится, все работает и загружается.
Пути к каталогам QGIS в батнике правильные?
Действительно, проблема была в путях: я указал полный путь к qgis (/usr/lib/qgis/), и это не работало. После того, как я изменил путь на /usr ошибка пропала.

(Не могу понять, почему нужно именно /usr, а не /usr/lib/qgis/ ...)

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение Voltron » 08 мар 2012, 17:53

KolesovDmitry писал(а):(Не могу понять, почему нужно именно /usr, а не /usr/lib/qgis/ ...)
Потому что часть библиотек (например, libqgiscore, libqgisgui и некоторые другие) устанавливаются в /usr, а часть (расширения ядра и провайдеры) — в /usr/lib/qgis. Т.е. в QGISHOME указывается именно каталог, в который установлена QGIS (/usr или /usr/local для Linux, %OSGEOROOT%\apps\qgis-dev для Windows).

panzerwurfmine
Новоприбывший
Сообщения: 1
Зарегистрирован: 09 апр 2012, 21:29
Репутация: 0

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение panzerwurfmine » 09 апр 2012, 21:35

Скажите, пожалуйста, а можно это прикрутить не к Osgeo, а просто к Python. Просто писать код, и контролировать ошибки лучше в Python Gui.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение Voltron » 10 апр 2012, 15:15

Можно. Правда, какой смысл? В OSGeo4W тоже «просто Python»

maestro90
Новоприбывший
Сообщения: 9
Зарегистрирован: 10 май 2012, 06:35
Репутация: 0

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение maestro90 » 10 май 2012, 07:00

Народ подскажите в чем проблема сделал все как сказано, установил нужные либы. Но не моя компиляция не уже готовая не работает. При запуске mainwindow в питоне вылазит ошибка.

Traceback (most recent call last):
File "C:\OSGeo4W\qgis\mainwindow.py", line 3, in <module>
from pyqt4 import QtCore, QtGui
ImportError: No module named pyqt4

на from PyQt4 import QtCore

Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
from PyQt4 import QtCore
ImportError: DLL load failed: Не найден указанный модуль.

Питон начинают изучать недавно, просьба сильно не кретиковать.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение Voltron » 10 май 2012, 10:29

А QGIS у вас установлен? А какой и по какому пути? Случаем не держите на машине несколько копий Python?

Ну и на будущее (особенно пункты 2.7, 2.8 и 2.14)

maestro90
Новоприбывший
Сообщения: 9
Зарегистрирован: 10 май 2012, 06:35
Репутация: 0

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение maestro90 » 10 май 2012, 10:49

Voltron писал(а):А QGIS у вас установлен? А какой и по какому пути? Случаем не держите на машине несколько копий Python?

Ну и на будущее (особенно пункты 2.7, 2.8 и 2.14)
Спасибо за ссылки. Было установлено несколько питонов но с месяц назад лишние удалил и остался только 1. Подобную проблему видел на форуме уже раньше.
1. Запускаю бат у меня вылазит 2 мегающих окна и оба сразу закрываются.
2. Когда открываю через командную строку вбивая все что находит в бате. то получаю такое сообщение.
Питон.jpg
Питон.jpg (58.06 КБ) 10680 просмотров
3. Разницы нету с питонхоум или без него.
Пути в бате менял.
Путь к питону C:\Python27
установлено 2 QGIS
1.7.4 C:\Program Files\Quantum GIS Wroclaw\bin\nircmd.exe" exec hide "C:\Program Files\Quantum GIS Wroclaw\bin\qgis.bat
1.8.0 D:\OSgeo4W\bin\qgis-dev.bat

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Создание приложения на базе набора библиотек QGIS на Pyt

Сообщение Voltron » 10 май 2012, 11:07

Корень проблемы в этом
maestro90 писал(а):Пути в бате менял.
Путь к питону C:\Python27
установлено 2 QGIS
1.7.4 C:\Program Files\Quantum GIS Wroclaw\bin\nircmd.exe" exec hide "C:\Program Files\Quantum GIS Wroclaw\bin\qgis.bat
1.8.0 D:\OSgeo4W\bin\qgis-dev.bat
Т.е. у вас в системе три копии Python: общесистемный (C:\Python27) и по экземпляру с каждой версией QGIS. При запуске командного файла или из командной строки управление передается общесистемному Python, который о QGIS и её обвязке ни сном, ни духом.

Попробуйте убрать из PATH все упоминания об общесистемном Python или прописать полный путь к python.exe из поставки нужной версии QGIS

Ответить

Вернуться в «Материалы сайта»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 16 гостей