Подключение к объектам БД информации из Интернета

Кроме QGIS
Ответить
Evgenia
Активный участник
Сообщения: 182
Зарегистрирован: 14 дек 2008, 16:09
Репутация: 24
Откуда: Москва

Подключение к объектам БД информации из Интернета

Сообщение Evgenia » 27 окт 2010, 13:13

Здравствуйте, коллеги
Подскажите, пожалуйста, существует ли возможность подключить к объектам базы данных (географической/объектно-реляционной, конечно) текстовую (атрибутивную) информацию, выкладываемую и периодически обновляемую в Интернете. Т.е. хочется получить такой динамический слой объектов, у которых при подключении к сети Интернет будут в режиме реального времени меняться атрибуты.
Это лишь часть от основного проекта, который предполагается собирать в QGIS. Подскажите, пожалуйста, в каком направлении стоит двигаться для решения моего вопроса? Возможно, тут нужен PostGIS, а QGIS самостоятельно с этим не "справится"? И вообще, возможно ли это?.. :wink:

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Подключение к объектам БД информации из Интернета

Сообщение gamm » 27 окт 2010, 13:59

Evgenia писал(а):Здравствуйте, коллеги
Подскажите, пожалуйста, существует ли возможность подключить к объектам базы данных (географической/объектно-реляционной, конечно) текстовую (атрибутивную) информацию, выкладываемую и периодически обновляемую в Интернете. Т.е. хочется получить такой динамический слой объектов, у которых при подключении к сети Интернет будут в режиме реального времени меняться атрибуты.
Это лишь часть от основного проекта, который предполагается собирать в QGIS. Подскажите, пожалуйста, в каком направлении стоит двигаться для решения моего вопроса? Возможно, тут нужен PostGIS, а QGIS самостоятельно с этим не "справится"? И вообще, возможно ли это?.. :wink:
информацию об изменении Вы можете получить только опросив соотвествующий сайт. Тогда придется написать "демона", который 1 раз в минуту (или раз в час, или при старте QGIS) будет опрашивать сайт, и считывать информацию в локальную базу, а потом давать команду на перерисовку.

Сделать это можно, но скорее всего придется встраивать "демона" (или обработчик его сигналов) в код QGIS - я не знаю, есть ли в нем обработка внешних сигналов или запуск по таймеру (что-то типа "тикеров", под Уиндовс скорее всего нет, под UNIX это сделать проще). Если "тикер" есть , то просто сажаете на него код на питоне, который опрашивает сайт и перерисовывает.

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Подключение к объектам БД информации из Интернета

Сообщение Mavka » 27 окт 2010, 14:40

Как вариант - мини-сервер WFS.
Последний раз редактировалось Mavka 27 окт 2010, 14:49, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном

Evgenia
Активный участник
Сообщения: 182
Зарегистрирован: 14 дек 2008, 16:09
Репутация: 24
Откуда: Москва

Re: Подключение к объектам БД информации из Интернета

Сообщение Evgenia » 27 окт 2010, 14:49

Mavka писал(а):Прямо любую информацию?
Инфо представлена в .csv формате. Представляет из себя числа, которые являются атрибутами объектов.

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Подключение к объектам БД информации из Интернета

Сообщение Mavka » 27 окт 2010, 15:14

А вот такое некоторые ГИСы умеют делать сами (про qgis не знаю).
Выглядит так:
1. Загружается слой с объектами (в нем есть геометрия)
2. Загружается слой с данными (он не имеет преставления на карте)
3. Делается запрос на объединение двух массивов данных по общему ключу (одинаковые номера и т.п.)
4. Результат выводится на карту.

Стоит подождать, может и подскажут в какой свободной ГИС такое есть в наличии.
лангольеры под окном жрали время ом-ном-ном

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

Re: Подключение к объектам БД информации из Интернета

Сообщение Voltron » 27 окт 2010, 15:17

Можно создать расширение, которое с определенным интервалом будет загружать данные с сайта и либо обновлять существующую таблицу атрибутов, либо создавать шейп и добавлять его на карту вместо существующего.

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Подключение к объектам БД информации из Интернета

Сообщение Mavka » 27 окт 2010, 15:21

А как вам такой вариант.

Ваши данные лежат в PostGIS (таблица #1).
Из интернета регулярно скрипт загружает CSV и импортирует его в PostGIS (таблица #2).
Делаем вид (view), в котором объединяем две таблицы.
Из qgis смотрим на этот вид.

Просто, надежно и достаточно оперативно.
лангольеры под окном жрали время ом-ном-ном

Evgenia
Активный участник
Сообщения: 182
Зарегистрирован: 14 дек 2008, 16:09
Репутация: 24
Откуда: Москва

Re: Подключение к объектам БД информации из Интернета

Сообщение Evgenia » 27 окт 2010, 15:35

Mavka писал(а):А как вам такой вариант.
Про такой вариант я тоже думала, когда писала про PostGIS. Моя сложность в том, что я с PostGIS еще не работала, только читала кое-что и пока плохо представляю, как соорудить такое:
Mavka писал(а):интернета регулярно скрипт


Если это действительно самый простой, надежный и при том оперативный способ, то, очевидно, следует заняться его изучением =)) Но вдруг, все-таки существует другая хорошая альтернатива?..
Voltron писал(а):Можно создать расширение
Можно поподробнее про это расширение, пожалуйста? В какой БД/СУБД при этом должны храниться данные? Да, данные - точечные. Я как-то не конкретизировала это раньше. Но, теоретически, это не должно быть важно.

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Подключение к объектам БД информации из Интернета

Сообщение Mavka » 27 окт 2010, 15:59

  1. с помощью cURL скачиваем файл csv по интернет-ссылке
  2. sql-командой COPY из файла CSV загружаем в таблицу данные (предварительно ее создав/очистив?) [пример]
  3. пишем bat-файл, который сам выполняет эти два шага, и прописываем его в стандартный "планировщик задач windows"
Последний раз редактировалось Mavka 27 окт 2010, 16:08, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном

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

Re: Подключение к объектам БД информации из Интернета

Сообщение Voltron » 27 окт 2010, 16:04

Данные можно хранить в SpatiaLite/PostGIS. Фактически это будет то же самое, что предлагает Mavka, только в виде расширения QGIS

Evgenia
Активный участник
Сообщения: 182
Зарегистрирован: 14 дек 2008, 16:09
Репутация: 24
Откуда: Москва

Re: Подключение к объектам БД информации из Интернета

Сообщение Evgenia » 28 окт 2010, 18:56

toVoltron: Поясните, пожалуйста, что значит расширение QGIS?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Подключение к объектам БД информации из Интернета

Сообщение Александр Мурый » 28 окт 2010, 19:01

Я думаю, Voltron имел в виду модули QGIS, они же расширения или дополнения. В данном случае, это PostGIS или SpatiaLite.
Редактор материалов, модератор форума

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

Re: Подключение к объектам БД информации из Интернета

Сообщение Voltron » 29 окт 2010, 10:25

Расширение (модуль, плагин, дополнение) - небольшая программа на Python или С++, которая добавляет функционал в QGIS. Например, fTools (инструменты из меню Вектор), GdalTools (инструменты из меню Раст) это расширения. Statist, RasterCalc, Qgis2Google, georeferencer - тоже расширения.

PostGIS или SpatiaLite - тоже расширения, но у них другая специализация - поддержка определенных форматов данных. Такие расширения обычно называются провайдерами или поставщиками данных.

В контексте этой темы я под расширением подразумевал именно программу, которая будет с некоторым интервалом загружать данные и обновлять таблицу.

Evgenia
Активный участник
Сообщения: 182
Зарегистрирован: 14 дек 2008, 16:09
Репутация: 24
Откуда: Москва

Re: Подключение к объектам БД информации из Интернета

Сообщение Evgenia » 29 окт 2010, 10:37

Спасибо за ответы =).
Т.е. правильно ли я поняла предлагаемую схему: данные хранятся в PostGIS (или SpatialLite(?)) и существует программа (надо написать на Python или С++), которая загружает и изменяет в PostGIS /SpatialLite данные из сети через определенные промежутки времени. А со стороны пользователя это выглядит так, что он просто подгружает слой PostGIS и радуется регулярно обновляемым данным (т.е. сам при этом больше ничего не делает). И сразу вопрос, а нельзя ли запросами из PostGIS, например, реализовать то же, минуя Python и C++?

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

Re: Подключение к объектам БД информации из Интернета

Сообщение Voltron » 29 окт 2010, 12:28

Evgenia писал(а):Т.е. правильно ли я поняла предлагаемую схему: данные хранятся в PostGIS (или SpatialLite(?)) и существует программа (надо написать на Python или С++), которая загружает и изменяет в PostGIS /SpatialLite данные из сети через определенные промежутки времени. А со стороны пользователя это выглядит так, что он просто подгружает слой PostGIS и радуется регулярно обновляемым данным (т.е. сам при этом больше ничего не делает).
Генеральная задумка именно такая. Но, насколько плавным и быстрым будет процесс загрузки и обновления зависит от нескольких факторов: объема данных, скорости соединения... Так что, пользователю, возможно, придется не только радоваться, но и беситься из-за фризов.
Evgenia писал(а):И сразу вопрос, а нельзя ли запросами из PostGIS, например, реализовать то же, минуя Python и C++?
Можно. Выше Mavka как раз предлагал такой вариант. Там не используется Python/C++, но нужен командный файл, который будет выполнять скачивание ваших данных на локальную машину и последующую их загрузку в базу PostGIS

Ответить

Вернуться в «Свободные, бесплатные, открытые ГИС»

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

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