MAPINFO + MS SQL + и QGIS

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
yazhko
Новоприбывший
Сообщения: 4
Зарегистрирован: 04 окт 2012, 12:07
Репутация: 0

MAPINFO + MS SQL + и QGIS

Сообщение yazhko » 04 окт 2012, 13:07

Здравствуйте!

К сожалению не являюсь специалистом ни в области ИТ, ни ГИС, но дело полезное сделать хочу.
QGIS 1.7.4
Mapinfo 11.0.3
MS SQL Express 2005

Пытаюсь собрать следующую схему:
1 Создать базу данных на MS SQL. Именно MS SQL потому, что имеются в штате разработчики, которые смогут в случае необходимости дописать пользовательское ПО. В базе планирую хранить как картографические данные, так и различные другие.
2 Часть пользователей требует для работы Mapinfo, поэтому планирую, что эти пользователи будут подключаться к базе с помощью Mapinfo, а все остальные - QGIS.
3 Есть определенный набор картографии в виде файлов в уже работающем QGIS - его необходимо передать в MS SQL.

Ситуация следующая. Часть имеющейся картографии я уже передал в MS SQL через Mapinfo. База MS SQL успешно подключается в Mapinfo и отображается. Пытаюсь подключить базу к QGIS - подключение происходит, соответствующую таблицу базы выбираю, но на карте она никак не отображается. Если открыть таблицу атрибутов, то видно, что в определенных полях записаны географические координаты - то есть в QGIS они попали. Подозреваю, что нужно QGIS как-то объяснить, что в данных столбцах таблицы записаны координаты, но никак не могу понять как это делается. После чтения инструкции появилось подозрение, что должна быть колонка "geometry_columns" с описанием координат объектов, но у меня этой колонки нет и заводить ее смысла не вижу, так как координаты уже есть в других колонках.

В итоге не могу решить уже не первый день вопрос - как QGIS заставить использовать в качестве координат объектов имеющиеся в таблице колонки? Или может имеются более правильные и простые схемы организации совместной работы в базе данных?

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

Re: MAPINFO + MS SQL + и QGIS

Сообщение Voltron » 04 окт 2012, 13:12

Выбросьте версию 1.7.4, установите 1.8.0, а ещё лучше ночную сборку 1.9.0

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

Re: MAPINFO + MS SQL + и QGIS

Сообщение rhot » 04 окт 2012, 13:33

После чтения инструкции появилось подозрение, что должна быть колонка "geometry_columns"
Таблица, а не колонка.
как QGIS заставить использовать в качестве координат объектов имеющиеся в таблице колонки?
Таблица geometry_columns быть должна в любом случае. Делайте импорт через ogr2ogr.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: MAPINFO + MS SQL + и QGIS

Сообщение yellow-sky » 04 окт 2012, 14:30

yazhko писал(а):Или может имеются более правильные и простые схемы организации совместной работы в базе данных?
Хотя вы и не описали, как вы конвертировали данные в таблицы MS SQL, но попробую предположить, что вы создали таблицы с двумя полями - XY, либо с одним полем, в котором записан WKT или WKB. Это конечно работоспособный вариант, но не оптимальный.
Если вы работаете с MS SQL 2008, то лучше использовать его родные типы - geometry/geography. Насколько я знаю, Mapinfo поддерживает эти типу начиная с версии 10. QGIS так же поддерживает этот формат, начиная с версии 1.8 (хотя разрабатываемая версия поддерживает конечно намного лучше).
Для конвертирования данных в родной тип MSSQL из Mapinfo можно воспользоваться EasyLoader.
rhot писал(а):Таблица geometry_columns быть должна в любом случае. Делайте импорт через ogr2ogr.
Вот зачем писать то, о чем ни разу не знаешь? MSSQL провайдер в QGIS не требует этой таблицы! У него есть свое детектирование таблиц с географическими полями.

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

Re: MAPINFO + MS SQL + и QGIS

Сообщение rhot » 04 окт 2012, 14:46

Вот здесь зачем, объясните мне, возврат SRID происходит через geometry_columns?
/************************************************************************/
/* FetchSRSId() */
/************************************************************************/

int OGRMSSQLSpatialTableLayer::FetchSRSId()
{
CPLODBCStatement oStatement = CPLODBCStatement( poDS->GetSession() );
oStatement.Appendf( "select srid from geometry_columns "
"where f_table_schema = '%s' and f_table_name = '%s'",
pszSchemaName, pszTableName );

if( oStatement.ExecuteSQL() && oStatement.Fetch() )
{
if ( oStatement.GetColData( 0 ) )
nSRSId = atoi( oStatement.GetColData( 0 ) );
}

return nSRSId;
}
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

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

Re: MAPINFO + MS SQL + и QGIS

Сообщение Voltron » 04 окт 2012, 14:50

Мсье не видит разницы между QGIS и GDAL?

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

Re: MAPINFO + MS SQL + и QGIS

Сообщение rhot » 04 окт 2012, 14:57

ээ, моя вина, говорим о разном: я думал, qgis всё ещё gdal использует для mssql
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

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

Re: MAPINFO + MS SQL + и QGIS

Сообщение Voltron » 04 окт 2012, 15:01

Всё ещё? Внезапно, провайдер НИКОГДА не использовал GDAL

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

Re: MAPINFO + MS SQL + и QGIS

Сообщение rhot » 04 окт 2012, 15:06

А как же тогда подключался QGIS?!
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

yazhko
Новоприбывший
Сообщения: 4
Зарегистрирован: 04 окт 2012, 12:07
Репутация: 0

Re: MAPINFO + MS SQL + и QGIS

Сообщение yazhko » 08 окт 2012, 10:38

Спасибо огромное за ответы! Данные действительно перекидывал в базу через Mapinfo с помощью EasyLoader. Версию QGIS 1.9 не нашел, поэтому скачал и установил 1.8. QGIS перестала цепляться к базе - разбираюсь в причинах.

yazhko
Новоприбывший
Сообщения: 4
Зарегистрирован: 04 окт 2012, 12:07
Репутация: 0

Re: MAPINFO + MS SQL + и QGIS

Сообщение yazhko » 09 окт 2012, 09:59

Подключился к базе. Проблема осталась. Есть база, в которой имеется совокупность объектов. В таблице базы описываются объекты - имя, тип, символ и т.д. В таблице есть кроме всего прочего 3 колонки - MI_SQL_X, MI_SQL_Y, и MI_SQL_MICODE. В колонках MI_SQL_X и MI_SQL_Y записаны географические координаты объектов. При перекидывании данных в базу руководствовался инструкцией:
http://npk-kaluga.ru/Util_EasyLoader.htm
В QGIS база открывается, в таблице атрибутов видны все данные, но при этом на карте ничего не отображается. Подскажите пожалуйста, куда копать дальше? Что еще можно "покрутить", проверить? Или, быть может, порекомендуете литературу для устранения пробелов в знаниях?

yazhko
Новоприбывший
Сообщения: 4
Зарегистрирован: 04 окт 2012, 12:07
Репутация: 0

Re: MAPINFO + MS SQL + и QGIS

Сообщение yazhko » 15 окт 2012, 01:11

Всем большое спасибо за ответы - вовремя навели на правильный путь.
Проблему для себя решил так:
если установить SQL Server 2008 (версии выше не проверял), то при перекидывании данных из Mapinfo в базу в EasyLoader появляется возможность сохранять географические данные в "SQL server spatial". Перекинутые данные великолепно подхватываются в QGIS через "Слой"-"Добавить слой MSSQL Spatial".

Ответить

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

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

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