Подключение к объектам БД информации из Интернета
-
- Активный участник
- Сообщения: 182
- Зарегистрирован: 14 дек 2008, 16:09
- Репутация: 24
- Откуда: Москва
Подключение к объектам БД информации из Интернета
Здравствуйте, коллеги
Подскажите, пожалуйста, существует ли возможность подключить к объектам базы данных (географической/объектно-реляционной, конечно) текстовую (атрибутивную) информацию, выкладываемую и периодически обновляемую в Интернете. Т.е. хочется получить такой динамический слой объектов, у которых при подключении к сети Интернет будут в режиме реального времени меняться атрибуты.
Это лишь часть от основного проекта, который предполагается собирать в QGIS. Подскажите, пожалуйста, в каком направлении стоит двигаться для решения моего вопроса? Возможно, тут нужен PostGIS, а QGIS самостоятельно с этим не "справится"? И вообще, возможно ли это?..
Подскажите, пожалуйста, существует ли возможность подключить к объектам базы данных (географической/объектно-реляционной, конечно) текстовую (атрибутивную) информацию, выкладываемую и периодически обновляемую в Интернете. Т.е. хочется получить такой динамический слой объектов, у которых при подключении к сети Интернет будут в режиме реального времени меняться атрибуты.
Это лишь часть от основного проекта, который предполагается собирать в QGIS. Подскажите, пожалуйста, в каком направлении стоит двигаться для решения моего вопроса? Возможно, тут нужен PostGIS, а QGIS самостоятельно с этим не "справится"? И вообще, возможно ли это?..
-
- Гуру
- Сообщения: 4069
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1064
- Ваше звание: программист
- Откуда: Казань
Re: Подключение к объектам БД информации из Интернета
информацию об изменении Вы можете получить только опросив соотвествующий сайт. Тогда придется написать "демона", который 1 раз в минуту (или раз в час, или при старте QGIS) будет опрашивать сайт, и считывать информацию в локальную базу, а потом давать команду на перерисовку.Evgenia писал(а):Здравствуйте, коллеги
Подскажите, пожалуйста, существует ли возможность подключить к объектам базы данных (географической/объектно-реляционной, конечно) текстовую (атрибутивную) информацию, выкладываемую и периодически обновляемую в Интернете. Т.е. хочется получить такой динамический слой объектов, у которых при подключении к сети Интернет будут в режиме реального времени меняться атрибуты.
Это лишь часть от основного проекта, который предполагается собирать в QGIS. Подскажите, пожалуйста, в каком направлении стоит двигаться для решения моего вопроса? Возможно, тут нужен PostGIS, а QGIS самостоятельно с этим не "справится"? И вообще, возможно ли это?..
Сделать это можно, но скорее всего придется встраивать "демона" (или обработчик его сигналов) в код QGIS - я не знаю, есть ли в нем обработка внешних сигналов или запуск по таймеру (что-то типа "тикеров", под Уиндовс скорее всего нет, под UNIX это сделать проще). Если "тикер" есть , то просто сажаете на него код на питоне, который опрашивает сайт и перерисовывает.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Подключение к объектам БД информации из Интернета
Как вариант - мини-сервер WFS.
Последний раз редактировалось Mavka 27 окт 2010, 14:49, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном
-
- Активный участник
- Сообщения: 182
- Зарегистрирован: 14 дек 2008, 16:09
- Репутация: 24
- Откуда: Москва
Re: Подключение к объектам БД информации из Интернета
Инфо представлена в .csv формате. Представляет из себя числа, которые являются атрибутами объектов.Mavka писал(а):Прямо любую информацию?
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Подключение к объектам БД информации из Интернета
А вот такое некоторые ГИСы умеют делать сами (про qgis не знаю).
Выглядит так:
1. Загружается слой с объектами (в нем есть геометрия)
2. Загружается слой с данными (он не имеет преставления на карте)
3. Делается запрос на объединение двух массивов данных по общему ключу (одинаковые номера и т.п.)
4. Результат выводится на карту.
Стоит подождать, может и подскажут в какой свободной ГИС такое есть в наличии.
Выглядит так:
1. Загружается слой с объектами (в нем есть геометрия)
2. Загружается слой с данными (он не имеет преставления на карте)
3. Делается запрос на объединение двух массивов данных по общему ключу (одинаковые номера и т.п.)
4. Результат выводится на карту.
Стоит подождать, может и подскажут в какой свободной ГИС такое есть в наличии.
лангольеры под окном жрали время ом-ном-ном
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Подключение к объектам БД информации из Интернета
Можно создать расширение, которое с определенным интервалом будет загружать данные с сайта и либо обновлять существующую таблицу атрибутов, либо создавать шейп и добавлять его на карту вместо существующего.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Подключение к объектам БД информации из Интернета
А как вам такой вариант.
Ваши данные лежат в PostGIS (таблица #1).
Из интернета регулярно скрипт загружает CSV и импортирует его в PostGIS (таблица #2).
Делаем вид (view), в котором объединяем две таблицы.
Из qgis смотрим на этот вид.
Просто, надежно и достаточно оперативно.
Ваши данные лежат в PostGIS (таблица #1).
Из интернета регулярно скрипт загружает CSV и импортирует его в PostGIS (таблица #2).
Делаем вид (view), в котором объединяем две таблицы.
Из qgis смотрим на этот вид.
Просто, надежно и достаточно оперативно.
лангольеры под окном жрали время ом-ном-ном
-
- Активный участник
- Сообщения: 182
- Зарегистрирован: 14 дек 2008, 16:09
- Репутация: 24
- Откуда: Москва
Re: Подключение к объектам БД информации из Интернета
Про такой вариант я тоже думала, когда писала про PostGIS. Моя сложность в том, что я с PostGIS еще не работала, только читала кое-что и пока плохо представляю, как соорудить такое:Mavka писал(а):А как вам такой вариант.
Mavka писал(а):интернета регулярно скрипт
Если это действительно самый простой, надежный и при том оперативный способ, то, очевидно, следует заняться его изучением =)) Но вдруг, все-таки существует другая хорошая альтернатива?..
Можно поподробнее про это расширение, пожалуйста? В какой БД/СУБД при этом должны храниться данные? Да, данные - точечные. Я как-то не конкретизировала это раньше. Но, теоретически, это не должно быть важно.Voltron писал(а):Можно создать расширение
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Подключение к объектам БД информации из Интернета
Последний раз редактировалось Mavka 27 окт 2010, 16:08, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Подключение к объектам БД информации из Интернета
Данные можно хранить в SpatiaLite/PostGIS. Фактически это будет то же самое, что предлагает Mavka, только в виде расширения QGIS
-
- Активный участник
- Сообщения: 182
- Зарегистрирован: 14 дек 2008, 16:09
- Репутация: 24
- Откуда: Москва
Re: Подключение к объектам БД информации из Интернета
toVoltron: Поясните, пожалуйста, что значит расширение QGIS?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Подключение к объектам БД информации из Интернета
Я думаю, Voltron имел в виду модули QGIS, они же расширения или дополнения. В данном случае, это PostGIS или SpatiaLite.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Подключение к объектам БД информации из Интернета
Расширение (модуль, плагин, дополнение) - небольшая программа на Python или С++, которая добавляет функционал в QGIS. Например, fTools (инструменты из меню Вектор), GdalTools (инструменты из меню Раст) это расширения. Statist, RasterCalc, Qgis2Google, georeferencer - тоже расширения.
PostGIS или SpatiaLite - тоже расширения, но у них другая специализация - поддержка определенных форматов данных. Такие расширения обычно называются провайдерами или поставщиками данных.
В контексте этой темы я под расширением подразумевал именно программу, которая будет с некоторым интервалом загружать данные и обновлять таблицу.
PostGIS или SpatiaLite - тоже расширения, но у них другая специализация - поддержка определенных форматов данных. Такие расширения обычно называются провайдерами или поставщиками данных.
В контексте этой темы я под расширением подразумевал именно программу, которая будет с некоторым интервалом загружать данные и обновлять таблицу.
-
- Активный участник
- Сообщения: 182
- Зарегистрирован: 14 дек 2008, 16:09
- Репутация: 24
- Откуда: Москва
Re: Подключение к объектам БД информации из Интернета
Спасибо за ответы =).
Т.е. правильно ли я поняла предлагаемую схему: данные хранятся в PostGIS (или SpatialLite(?)) и существует программа (надо написать на Python или С++), которая загружает и изменяет в PostGIS /SpatialLite данные из сети через определенные промежутки времени. А со стороны пользователя это выглядит так, что он просто подгружает слой PostGIS и радуется регулярно обновляемым данным (т.е. сам при этом больше ничего не делает). И сразу вопрос, а нельзя ли запросами из PostGIS, например, реализовать то же, минуя Python и C++?
Т.е. правильно ли я поняла предлагаемую схему: данные хранятся в PostGIS (или SpatialLite(?)) и существует программа (надо написать на Python или С++), которая загружает и изменяет в PostGIS /SpatialLite данные из сети через определенные промежутки времени. А со стороны пользователя это выглядит так, что он просто подгружает слой PostGIS и радуется регулярно обновляемым данным (т.е. сам при этом больше ничего не делает). И сразу вопрос, а нельзя ли запросами из PostGIS, например, реализовать то же, минуя Python и C++?
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Подключение к объектам БД информации из Интернета
Генеральная задумка именно такая. Но, насколько плавным и быстрым будет процесс загрузки и обновления зависит от нескольких факторов: объема данных, скорости соединения... Так что, пользователю, возможно, придется не только радоваться, но и беситься из-за фризов.Evgenia писал(а):Т.е. правильно ли я поняла предлагаемую схему: данные хранятся в PostGIS (или SpatialLite(?)) и существует программа (надо написать на Python или С++), которая загружает и изменяет в PostGIS /SpatialLite данные из сети через определенные промежутки времени. А со стороны пользователя это выглядит так, что он просто подгружает слой PostGIS и радуется регулярно обновляемым данным (т.е. сам при этом больше ничего не делает).
Можно. Выше Mavka как раз предлагал такой вариант. Там не используется Python/C++, но нужен командный файл, который будет выполнять скачивание ваших данных на локальную машину и последующую их загрузку в базу PostGISEvgenia писал(а):И сразу вопрос, а нельзя ли запросами из PostGIS, например, реализовать то же, минуя Python и C++?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей