Отображение карты из PostGis

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
anton21
Новоприбывший
Сообщения: 11
Зарегистрирован: 25 янв 2012, 14:39
Репутация: 0

Отображение карты из PostGis

Сообщение anton21 »

Хочу использовать QGis для отображения карты из PostGIS.

В качестве теста скачал http://gis-lab.info/data/vmap0/eur-sql.7z и залил файл trans_road_l.sql в Postgress/PostGis -данные о дорогах в Европе.После чего запускаю QGis и настраиваю его на PostGis - дороги нарисовались.

Вопрос: Почему отрисовка происходит очень медленно - при каждом скроле или передвижении карты программа начинает долго думать?Посмотрел в БД там всего 160000 записей, непонятно если она при таких обьемах тормозит, то возможно ли таким образом загрузить карту России и нормально работать? Может мне нужно как то создать индексы для БД ? Да и почему при масштабировании карты отрисовываются все данные, даже те которых при таком масштабе не должно быть видно - может это как то настраивается?
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Отображение карты из PostGis

Сообщение Voltron »

Используемая ОС и версия QGIS? Индексы в базе построены?

Включите кеш ренедера в настройках QGIS («Settings-Options-Rendering-Use render caching...»)
anton21
Новоприбывший
Сообщения: 11
Зарегистрирован: 25 янв 2012, 14:39
Репутация: 0

Re: Отображение карты из PostGis

Сообщение anton21 »

Windows7. Насчет индексов не знаю - я просто выполнил sql скрипт trans_road_l.sql из http://gis-lab.info/data/vmap0/eur-sql.7z и все - как их строить? Так же пробовал подключиться к
Сервер: gis-lab.info
База: osm
Порт: 5432
Имя/пароль: guest/guest
так же при работе с любым слоем тормозит.
Геометрический объект, в котором много точек, но его нужно показать на картинке 100*100 - Почему QGis не выбрасывает точки (которые не сильно изменится геометрия).
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Отображение карты из PostGis

Сообщение Voltron »

Про индексы написано здесь.
anton21 писал(а):Геометрический объект, в котором много точек, но его нужно показать на картинке 100*100 - Почему QGis не выбрасывает точки (которые не сильно изменится геометрия).
Если правильно понял, то речь идет о генерализации полигонов/линий. Насколько знаю, «на лету» это и в другом ПО не делается.

P.S.: версию QGIS вы так и не озвучили
anton21
Новоприбывший
Сообщения: 11
Зарегистрирован: 25 янв 2012, 14:39
Репутация: 0

Re: Отображение карты из PostGis

Сообщение anton21 »

Тогда как мне в QGis отобразить карту России из Postgres/PostGis, при этом я бы мог производить манипуляции с картой(перемещение , скролл) например как в Google , а не ждать перерисовки карты при каждом действии- это возможно?

А если я буду использовать QGis в своей программе как карту - смогу ли я нормаль грузить карту из Postgress/Postgis(то есть будет ли достаточно быстро происходить растеризация вектора)?

В том же Open Street Map используется Mapnik - при растеризации вектора в масштабе мира он же не рисует(откидывает) поселки.
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Отображение карты из PostGis

Сообщение Voltron »

anton21 писал(а):В том же Open Street Map используется Mapnik - при растеризации вектора в масштабе мира он же не рисует(откидывает) поселки.
Настройте отрисовку в зависимости от масштаба
anton21
Новоприбывший
Сообщения: 11
Зарегистрирован: 25 янв 2012, 14:39
Репутация: 0

Re: Отображение карты из PostGis

Сообщение anton21 »

Не совсем понял поясните пожалуйста.
А как в QGis настроить отрисовку в зависимости от масштаба - и может это зависеть от проекции?
Хотелось бы понять как в том же Mapnik задается при каком масштабе что отбрасывать?
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Отображение карты из PostGis

Сообщение Максим Дубинин »

PostGIS тут непричем.

Вы пытаетесь загрузить в программу большой объем данных, миллионы узлов, разумеется она тормозит (при том, что QGIS и сам по себе не быстр).

OSM быстро показывает данные потому что это растр, а не вектор, если вы попробуете сконвертировать shape в osm.xml и загрузить в редактор - тормозить будет не меньше, а может больше. Конечно OSM и любой другой веб-сервис карт выкидывает часть данных при показе всего мира, это суть генерализации - упрощения данных.

И напоследок построение индекса (свойства слоя)
Изображение
пристегивайтесь, турбулентность прямо по курсу
anton21
Новоприбывший
Сообщения: 11
Зарегистрирован: 25 янв 2012, 14:39
Репутация: 0

Re: Отображение карты из PostGis

Сообщение anton21 »

То есть получается в QGis нельзя работать с картой России(OSM) которая на лету рендериться из вектора?
Может можно как то включить отрисовку в зависимости от масштаба(т.е чтобы обращала на zoom level), ведб тот же Mapnik рендерит как то с учетом zoom level?
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Отображение карты из PostGis

Сообщение Дмитрий Барышников »

У вас все перепуталось.
Mapnik и иже с ним это WMS сервисы которые растр выдают с нужным zoom level, а PostGIS - это база пространственных данных, что-то круче шейпа или таба. Т.е. PostGIS это источник данных и для QGIS и для WMS серверов.
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Отображение карты из PostGis

Сообщение Voltron »

anton21 писал(а):Может можно как то включить отрисовку в зависимости от масштаба(т.е чтобы обращала на zoom level)
Да, можно. Каждый слой может отображаться в своем диапазоне масштабов. Например, если у вас отображается все Россия, то отрисовывать здания нет смысла.
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Отображение карты из PostGis

Сообщение Максим Дубинин »

anton21, и разберитесь окончательно с разницей между понятиями растр и вектор
пристегивайтесь, турбулентность прямо по курсу
anton21
Новоприбывший
Сообщения: 11
Зарегистрирован: 25 янв 2012, 14:39
Репутация: 0

Re: Отображение карты из PostGis

Сообщение anton21 »

Упрощаю вопрос: Как пользоваться картой России(OSM) в QGis, если она храниться в Postgres/PostGis словно работаешь с картой на openstreetmap.ru(если у вас отображается все Россия, то отрисовывать здания нет смысла)?

Ситуация следующая - я заливаю Россия.osm в Postgres/PostGis, после этого я хочу с помощью api QGIS(qgis_core.dll qgis_gui.dll и т.п) получить картинку из PostGis(т.е QGis возьмет вектор и отрендерит его).Так вот мне не понятно как она поймет(может это как то задается?) что при масштабе страны не нужно отрисовывать здания?Может быть в Postgres/Postgis данные залитые из Россия.osm храняться ввиде слоев для определенного zoom level и в определенные момент нужно отрисовывать слой для текущего zoomlevel?
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Отображение карты из PostGis

Сообщение Voltron »

anton21 писал(а):Упрощаю вопрос: Как пользоваться картой России(OSM) в QGis, если она храниться в Postgres/PostGis словно работаешь с картой на openstreetmap.ru(если у вас отображается все Россия, то отрисовывать здания нет смысла)?
Провторяю ответ :-). Настроить отображение слоёв в зависимости от масштаба. Еще можно выполнить генерализацию некоторых слоев и на определенных масштабах использовать не полный, а генерализированный слой.
anton21 писал(а):Ситуация следующая - я заливаю Россия.osm в Postgres/PostGis, после этого я хочу с помощью api QGIS(qgis_core.dll qgis_gui.dll и т.п) получить картинку из PostGis(т.е QGis возьмет вектор и отрендерит его).Так вот мне не понятно как она поймет(может это как то задается?) что при масштабе страны не нужно отрисовывать здания?
Совершенно верно, «это как то задается». Через все то же «api QGIS(qgis_core.dll qgis_gui.dll и т.п)».
anton21 писал(а):Может быть в Postgres/Postgis данные залитые из Россия.osm храняться ввиде слоев для определенного zoom level и в определенные момент нужно отрисовывать слой для текущего zoomlevel?
Вы опять путаетесь. PostgreSQL/PostGIS это хранилище данных и больше ничего. Его задача — отдать данные по запросу в ваше приложение. А что приложение будет с ними делать, и как отображать ­— это уже не забота PostGIS.
anton21
Новоприбывший
Сообщения: 11
Зарегистрирован: 25 янв 2012, 14:39
Репутация: 0

Re: Отображение карты из PostGis

Сообщение anton21 »

Как сказать QGis что при таком масштабе отображай такой то слой , а при другом нет?
Ответить

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

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

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