SQLite и Spatialite в QGIS
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
SQLite и Spatialite в QGIS
Решил попробовать заюзать сабж в QGIS. Чем Spatialite отличается от SQLite вроде понятно - Spatialite - это как я понял такой же набор пространственных функций для SQLite, как PostGIS для PostgreSQL, но есть 2 вопроса:
1. При открытии слоя SQLite и Spatialite постоянно выскакивает окно, в котором необходимо вручную указать проекцию слоя, это нормально или как-то можно сохранить информацию о проекции в самом файле?
2. Что такое по сути файл *.sqlite - это такой формат хранения базы данных? тогда непонятно вот что: когда я выполняю в QGIS в менеджере БД какой-то SQL запрос к этой файловой БД, то кто именно осуществляет этот запрос. Как бы есть запрос и есть файл, но непонятно как устроен механизм применения запроса к файлу? В случае, например, с PostgreSQL понятно - есть СУБД, она принимает запрос и возвращает ответ, а тут как?
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
1. Сохранить проект QGIS, использовать его для следующего открытия слоёв.
2. Через вызов функций ... /QGIS/bin/sqlite3.dll ... spatialite.dll
2. Через вызов функций ... /QGIS/bin/sqlite3.dll ... spatialite.dll
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: SQLite и Spatialite в QGIS
Ответа на первый вопрос не знаю, отвечу на второй.
Тут возникает путаница с терминологией. Во первых, *sqlite -- просто файл определенного формата (как, например, dbf -- тоже формат). В действительности даже не важно, как он будет называться, часто файлы вообще не имеют расширения. Для работы с файлами такого формата должны использоваться специальные библиотеки, которые понимают, что это за формат.
Во-вторых, SQLite -- это набор библиотек, которые могут работать с этим файлом и которые можно скачать на официальном сайте http://www.sqlite.org. Эти библиотеки предоставляют определенный API, который могут использовать другие программы, например, различные обертки для других языков программирования.
Тут возникает путаница с терминологией. Во первых, *sqlite -- просто файл определенного формата (как, например, dbf -- тоже формат). В действительности даже не важно, как он будет называться, часто файлы вообще не имеют расширения. Для работы с файлами такого формата должны использоваться специальные библиотеки, которые понимают, что это за формат.
Во-вторых, SQLite -- это набор библиотек, которые могут работать с этим файлом и которые можно скачать на официальном сайте http://www.sqlite.org. Эти библиотеки предоставляют определенный API, который могут использовать другие программы, например, различные обертки для других языков программирования.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: SQLite и Spatialite в QGIS
Со вторым более-менее понятно. То есть получается, что для выполнения произвольных запросов к файлу *.sqlite используется некий встроенный в QGIS Spatialite-клиент. А при простом открытии (не через Менеджер БД) - используются функции OGR-а? он ведь тоже поддерживает этот формат. Или в QGIS самописный провайдер для *.sqlite и он используется в обоих случаях? Если не ошибаюсь, то слои PostGIS QGIS открывает, используя собственный код, а не OGR.dab писал(а):1. Сохранить проект QGIS, использовать его для следующего открытия слоёв.
2. Через вызов функций ... /QGIS/bin/sqlite3.dll ... spatialite.dll
По первому вопросу не понял - зачем проект? Есть у меня *.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
Я так понимаю, что нет возможности сохранить информацию о проекции слоя в *.sqlite файле.Denis Rykov писал(а):По первому вопросу не понял - зачем проект? Есть у меня *.sqlite файл - я могу как-то в нем сохранить информацию о проекции, как это, например, сделано в PostGIS, там не надо при открытии слоя вручную выбирать СК, информация о ней есть в самой БД.
Проект для того, что-бы при повторном открытии слоя не выбирать СК. Чисто из практических соображений.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: SQLite и Spatialite в QGIS
Разобрался с СК - при выборе "Сохранить как" нажимаем кнопку "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
Не совсем так: Spatialite во многом уступает PostGISDenis Rykov писал(а):Spatialite - это как я понял такой же набор пространственных функций для SQLite, как PostGIS для PostgreSQL
https://docs.djangoproject.com/en/dev/r ... ity-tables
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 22 гостя