Создание приложения на основе QGIS

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
shu.ru88
Новоприбывший
Сообщения: 2
Зарегистрирован: 16 июл 2010, 13:33
Репутация: 0

Создание приложения на основе QGIS

Сообщение shu.ru88 » 16 июл 2010, 13:42

Добрый день. Замечательный сайт!
Прочитал несколько статей сайта:
1. Открытые настольные ГИС: обзор текущей ситуации
2. Установка QGIS/GRASS с помощью OSGeo4W
3. Данные OpenStreetMap по регионам РФ в форматах shape и OSM XML
Установил QGIS 1.5 с помощью OSGeo4W (не без проблем) и загрузил OSM. Красота.

Следующая задача - создание приложение в Microsoft Visual Foxpro на основе QGIS.
Прочитал это:
4. Создание приложения на базе набора библиотек QGIS на Python
5. Tutorial 1: Write a simple mapping application using the new QGIS Canvas API
6. QgsApplication Class
7. Installation Guide

Не получается загрузить QGIS из VFP. Не понятно как к QGIS обращаться извне.
Поиск в Google на тему
createobject QApplication
createobject QgsApplication
createobject QtGui.QApplication
createobject qgis
Qgis COM Object
qgis ActiveX Control

пока не дал результата.

Как это делать для других ГИС нашел, например:
esri
Пример разработки приложения использующего Arcgis Server на vb.net

MapInfo

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

Public poMI As Object
  m.poMI=CreateObject([MapInfo.Application])
Mapwindow
MapWinGIS ActivX Control

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

LOCAL sf As MapWinGIS.Shapefile
sf= CreateObjectEx("MapWinGIS.Shapefile","","")
sf.Open("c:\sanglicity.shp")
this.Map1.AddLayer(sf, .T.)
Попытаюсь сформулировать вопрос:
Перечисленные ГИС (Arcgis, Mapinfo, MapWindows) предоставляют разработчику COM интерфейс.
Хотелось бы асинхронно запускать функции dll QGIS из фокса, с обменом параметров естественно.
Возможное решение - написать COM или ActiveX и ловить его события.
Варианты по инструментам создания ActiveX:
Building ActiveX servers and controls with Qt
ActiveQt

Создание ActiveX с использованием .Net Framework
Создание элементов управления ActiveX с помощью C++ Builder

Какие могут быть варианты решения? Может можно обойтись без ActiveX? Как?
Как называется основной объект запуска? . QgsApplication? В API не найду примеров с параметрами запуска.
Уважаемые! Помогите студенту стартовать в QGIS.

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

Re: Создание приложения на основе QGIS

Сообщение Voltron » 16 июл 2010, 20:17

shu.ru88 писал(а):Перечисленные ГИС (Arcgis, Mapinfo, MapWindows) предоставляют разработчику COM интерфейс.
Хотелось бы асинхронно запускать функции dll QGIS из фокса, с обменом параметров естественно.
Возможное решение - написать COM или ActiveX и ловить его события.
COM и ActiveX это чисто виндовые примочки, QGIS же кроссплатформенное приложение. Соответственно, все эти вещи там отсутствуют как класс.
shu.ru88 писал(а):Какие могут быть варианты решения? Может можно обойтись без ActiveX? Как?
Вам обязательно на FoxPro надо или что-то другое подойдет?

shu.ru88
Новоприбывший
Сообщения: 2
Зарегистрирован: 16 июл 2010, 13:33
Репутация: 0

Re: Создание приложения на основе QGIS

Сообщение shu.ru88 » 16 июл 2010, 21:17

Спасибо что откликнулись!
COM и ActiveX это чисто виндовые примочки, QGIS же кроссплатформенное приложение. Соответственно, все эти вещи там отсутствуют как класс.
Да, я это уже понял.
Вам обязательно на FoxPro надо или что-то другое подойдет?
Для меня однозначно необходимо решение под Windows.
Кроме FoxPro еще варианты Delphi, VB.
Если бы можно было запустить QGIS из Delphi или VB я бы смог подобное сделать из FoxPro.

Поиск по qgiswiki ActiveX нет

Вопрос Félix Manuel Córdoba еще в 2006
QGis embedded in Other Qt Application???
how i can embedd the qgis functionality in a qt application, like to a ActiveX??
Вопрос на французском в апреле 2010
Bonjour,
Afin de choisir le bon SIG pour un projet, je souhaiterais savoir si il y a bien un gestionnaire ODBC dans QGIS?
On s'éloigne un peu trop de la carto pour moi mais j'aurais besoin de savoir si QGIS est équipé de :
-routine de liaison avec access (.ocx ou active x)
-connexion externe
-liaison objet / passerelle microsoft
Ils veulent sûrement dire la même chose mais si ces mots vous parlent (ce qui n'est pas mon cas pour l'instant ) est-ce qu'ils sont présent dans QGIS?
Merci!
Я понимаю что QGIS пока не работает как ActiveX. Возможно ли это реализовать?
В статье
Сборка QGIS используя Visual C++ Express Edition 2008 и компоненты OSGeo4W
смогли же собрать QGIS под visual studio, не совсем понятно только зачем этот вариант, когда есть инсталляция OSGeo4W?
А вот сделать еще один шаг в Microsoft VS – создать OcX? Возможно ли?
Почему foxpro? Самые популярные GIS Arcgis (shp) и Mapinfo хранят атрибутивную в DBF формате. Foxpro в этом плане имеет высокие показатели по скорости работы с dbf. Кроме того он много дешевле Microsoft VS или Delphi. Foxpro runtime вообще можно скачать бесплатно с офф. сайта Microsoft. Затраты на лицензию только для разработчика.
Создание ActiveX QGIS позволило бы подключать те форматы и представления, которые не реализованы на сегодня в QGIS и GDAL/OGR.
Создание ActiveX QGIS позволило бы выполнить более легкий переход тем разработчикам которые уже имеют наработки под vfp, Delphi, MVS. Еще можно было бы вспомнить про целую армию 1С-программистов.
Одно дело разобраться с API QGIS, другое это освоение QT и Python.
И последний довод - OLE Application имеют все "взрослые" ГИС.

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

Re: Создание приложения на основе QGIS

Сообщение Voltron » 17 июл 2010, 19:57

shu.ru88 писал(а):Для меня однозначно необходимо решение под Windows.
Кроме FoxPro еще варианты Delphi, VB.
Если бы можно было запустить QGIS из Delphi или VB я бы смог подобное сделать из FoxPro.
Возможно использование Python, C++. Под Windows в том числе
shu.ru88 писал(а):Я понимаю что QGIS пока не работает как ActiveX. Возможно ли это реализовать?
Теоретически возможно, но, скорее всего, нужно будет сильно перерабатывать код. Кроме того, вносить масштабные изменения, ради поддержки одной платформы разработчики не будут.
shu.ru88 писал(а):В статье
Сборка QGIS используя Visual C++ Express Edition 2008 и компоненты OSGeo4W смогли же собрать QGIS под visual studio, не совсем понятно только зачем этот вариант, когда есть инсталляция OSGeo4W?
Внезапно, QGIS из состава OSGeo4W собран в VisualStudio. Standalone вариант, насколько я знаю, тоже собирается студией.
Возможность сборки разными компиляторами никак не связана с поддержкой COM/ActiveX, это результат использования кроссплатформенных технологий. Сборка в MSVS проще, чем в среде MinGW (точнее требуется меньше подготовительных действий).
shu.ru88 писал(а):Почему foxpro? Самые популярные GIS Arcgis (shp) и Mapinfo хранят атрибутивную в DBF формате. Foxpro в этом плане имеет высокие показатели по скорости работы с dbf. Кроме того он много дешевле Microsoft VS или Delphi. Foxpro runtime вообще можно скачать бесплатно с офф. сайта Microsoft. Затраты на лицензию только для разработчика.
С dbf умеют работать практически все языки программирования, имхо, это не повод ориентироваться на FoxPro. Сама работа с dbf в ГИС занимает не так уж и много времени.
Express версия студии тоже бесплатна, и Turbo Delphi Explorer бесплатен, хоть и не поддерживается.
Рекомендую все же подумать над возможностью использовать С++ или Python, ждать поддержки COM/ActiveX не стоит. Равно как и появления биндингов к другим языкам.
shu.ru88 писал(а):Создание ActiveX QGIS позволило бы подключать те форматы и представления, которые не реализованы на сегодня в QGIS и GDAL/OGR.
Создание ActiveX QGIS позволило бы выполнить более легкий переход тем разработчикам которые уже имеют наработки под vfp, Delphi, MVS. Еще можно было бы вспомнить про целую армию 1С-программистов.
Одно дело разобраться с API QGIS, другое это освоение QT и Python.
И последний довод - OLE Application имеют все "взрослые" ГИС.
Освоить Python не так уж и сложно. К тому же есть возможность писать на С++ (и наработки, созданные в MSVS не пропадут :-) ).
Последний довод какой-то не серьезный :-). Что такое "взрослые" ГИС? Многие из них доступны для Win/Mac/Lin и потенциально - для мобильных платформ?

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: Создание приложения на основе QGIS

Сообщение SS_Rebelious » 17 июл 2010, 22:39

Voltron писал(а):Что такое "взрослые" ГИС?
Почему бы не называть их взролыми в самом деле? Ведь на их фоне QGIS "юн и прекрасен", и что немалважно - свободен ;-)
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

Ответить

Вернуться в «QGIS»

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

Сейчас этот форум просматривают: gisstart и 13 гостей