Страница 6 из 10

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

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

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

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

Добавлено: 29 июл 2011, 21:41
xen87
Здравствуйте, скачал набор данных, указанных в статье, изменил пути глобальных переменных, запустил из командной строки run.bat - заработало, но не все, не работал инструмент "полный охват". На следующий день, запустил run.bat - заработало, но не все, перестал работать инст. "добавление темы" и по прежнему не работал "полный охват". Уважаемые, подскажите пожалуйста, что может быть не так, выкладываю скрины ошибок:

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

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

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

self.canvas.zoomFullExtent()
на

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

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

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

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

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

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

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

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

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

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

  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

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

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

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

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

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

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

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

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

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

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

Добавлено: 10 апр 2012, 15:15
Voltron
Можно. Правда, какой смысл? В OSGeo4W тоже «просто Python»

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

Добавлено: 10 май 2012, 07:00
maestro90
Народ подскажите в чем проблема сделал все как сказано, установил нужные либы. Но не моя компиляция не уже готовая не работает. При запуске 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: Не найден указанный модуль.

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

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

Добавлено: 10 май 2012, 10:29
Voltron
А QGIS у вас установлен? А какой и по какому пути? Случаем не держите на машине несколько копий Python?

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

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

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

Ну и на будущее (особенно пункты 2.7, 2.8 и 2.14)
Спасибо за ссылки. Было установлено несколько питонов но с месяц назад лишние удалил и остался только 1. Подобную проблему видел на форуме уже раньше.
1. Запускаю бат у меня вылазит 2 мегающих окна и оба сразу закрываются.
2. Когда открываю через командную строку вбивая все что находит в бате. то получаю такое сообщение.
Питон.jpg
Питон.jpg (58.06 КБ) 12347 просмотров
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

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

Добавлено: 10 май 2012, 11:07
Voltron
Корень проблемы в этом
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