SQLite и Spatialite в QGIS

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

SQLite и Spatialite в QGIS

Сообщение Denis Rykov » 19 дек 2013, 11:50

Решил попробовать заюзать сабж в QGIS. Чем Spatialite отличается от SQLite вроде понятно - Spatialite - это как я понял такой же набор пространственных функций для SQLite, как PostGIS для PostgreSQL, но есть 2 вопроса:

1. При открытии слоя SQLite и Spatialite постоянно выскакивает окно, в котором необходимо вручную указать проекцию слоя, это нормально или как-то можно сохранить информацию о проекции в самом файле?
2. Что такое по сути файл *.sqlite - это такой формат хранения базы данных? тогда непонятно вот что: когда я выполняю в QGIS в менеджере БД какой-то SQL запрос к этой файловой БД, то кто именно осуществляет этот запрос. Как бы есть запрос и есть файл, но непонятно как устроен механизм применения запроса к файлу? В случае, например, с PostgreSQL понятно - есть СУБД, она принимает запрос и возвращает ответ, а тут как?
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: SQLite и Spatialite в QGIS

Сообщение dab » 19 дек 2013, 11:57

1. Сохранить проект QGIS, использовать его для следующего открытия слоёв.
2. Через вызов функций ... /QGIS/bin/sqlite3.dll ... spatialite.dll

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: SQLite и Spatialite в QGIS

Сообщение KolesovDmitry » 19 дек 2013, 12:09

Ответа на первый вопрос не знаю, отвечу на второй.

Тут возникает путаница с терминологией. Во первых, *sqlite -- просто файл определенного формата (как, например, dbf -- тоже формат). В действительности даже не важно, как он будет называться, часто файлы вообще не имеют расширения. Для работы с файлами такого формата должны использоваться специальные библиотеки, которые понимают, что это за формат.

Во-вторых, SQLite -- это набор библиотек, которые могут работать с этим файлом и которые можно скачать на официальном сайте http://www.sqlite.org. Эти библиотеки предоставляют определенный API, который могут использовать другие программы, например, различные обертки для других языков программирования.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: SQLite и Spatialite в QGIS

Сообщение Denis Rykov » 19 дек 2013, 12:09

dab писал(а):1. Сохранить проект QGIS, использовать его для следующего открытия слоёв.
2. Через вызов функций ... /QGIS/bin/sqlite3.dll ... spatialite.dll
Со вторым более-менее понятно. То есть получается, что для выполнения произвольных запросов к файлу *.sqlite используется некий встроенный в QGIS Spatialite-клиент. А при простом открытии (не через Менеджер БД) - используются функции OGR-а? он ведь тоже поддерживает этот формат. Или в QGIS самописный провайдер для *.sqlite и он используется в обоих случаях? Если не ошибаюсь, то слои PostGIS QGIS открывает, используя собственный код, а не OGR.

По первому вопросу не понял - зачем проект? Есть у меня *.sqlite файл - я могу как-то в нем сохранить информацию о проекции, как это, например, сделано в PostGIS, там не надо при открытии слоя вручную выбирать СК, информация о ней есть в самой БД.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: SQLite и Spatialite в QGIS

Сообщение dab » 19 дек 2013, 12:20

Denis Rykov писал(а):По первому вопросу не понял - зачем проект? Есть у меня *.sqlite файл - я могу как-то в нем сохранить информацию о проекции, как это, например, сделано в PostGIS, там не надо при открытии слоя вручную выбирать СК, информация о ней есть в самой БД.
Я так понимаю, что нет возможности сохранить информацию о проекции слоя в *.sqlite файле.
Проект для того, что-бы при повторном открытии слоя не выбирать СК. Чисто из практических соображений.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: SQLite и Spatialite в QGIS

Сообщение Denis Rykov » 19 дек 2013, 12:38

Разобрался с СК - при выборе "Сохранить как" нажимаем кнопку "More options" и вручную указываем SRID (для Spatialite, для SQLite нет такой возможности), но для чего тогда поле "Система координат" - не понятно, то есть понятно - если указать СК, отличную от СК слоя, то QGIS его перепроецирует при сохранении, но SRID заполнять все-равно вручную.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: SQLite и Spatialite в QGIS

Сообщение rhot » 19 дек 2013, 14:59

Denis Rykov писал(а):Spatialite - это как я понял такой же набор пространственных функций для SQLite, как PostGIS для PostgreSQL
Не совсем так: Spatialite во многом уступает PostGIS
https://docs.djangoproject.com/en/dev/r ... ity-tables
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Ответить

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

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

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