Создание слоя с БД SQL Server в MapGuide

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
and
Новоприбывший
Сообщения: 7
Зарегистрирован: 11 янв 2010, 16:07
Репутация: 0

Создание слоя с БД SQL Server в MapGuide

Сообщение and » 11 янв 2010, 16:19

Как правильно создать слой в MapGuide?

Есть БД SQL Server, в которой хранятся данные о геометрии объектов (Координата Х и Y).

Необходимо создать слой и отобразить на нем точки с координатами Х , Y из БД.

Через ODBC получилось связатся но работает очень медленно. Через Autodesk FDO Provider SQL Server связатся не получается, так как не заполняется выпадающий список Geometry.

Аватара пользователя
JEY
Активный участник
Сообщения: 228
Зарегистрирован: 17 июл 2008, 13:42
Репутация: 1

Re: Создание слоя с БД SQL Server в MapGuide

Сообщение JEY » 12 янв 2010, 08:08

Привет!

С ходу вопрос: При помощи какого программного продукта создавалась база данных SQL Server? Возможно, что FDO не может найти схему базы данных, которая имеет основу из нескольких таблиц, которые FDO сам же и создает.

Это объясняет тот факт, что список полей для доступа к геометрическим данным пуст.

Совет: Если геометрические данные определяются в виде полей X и Y, то рекомендую сначала экспортировать базу данных в формат Microsoft Access. Затем при помощи ODBC соединения создать слой и добавить его на карту.

Скорость обработки файлов Microsoft Access или Microsoft Excel посредством ODBC соединения намного выше, чем у провайдера данных ODBC для Microsoft SQL Server.

P.S. Конвертация аналогичной базы в Microsoft Access лично мне помогла и повысила производительность при обработке данных геолокаторов в одном из моих проектов...

and
Новоприбывший
Сообщения: 7
Зарегистрирован: 11 янв 2010, 16:07
Репутация: 0

Re: Создание слоя с БД SQL Server в MapGuide

Сообщение and » 12 янв 2010, 10:42

Спасибо за ответ!

База данных создавалась вручную, схему не создавал.

Вариант с Microsoft Access не получится реализовать, так как в БД Microsoft SQL Server регулярно добавляются и редактируются данные.

Скорость работы напрямую с Microsoft SQL Server, по идее, должна быть намного выше чем даже работа с Microsoft Access или Microsoft Excel посредством ODBC соединения.

Как правильно создать схему данных в БД? Можете подсказать пример такой схемы?

Заранее признателен за ответ.

Аватара пользователя
arzobispo
Активный участник
Сообщения: 230
Зарегистрирован: 10 сен 2008, 10:28
Репутация: 3
Контактная информация:

Re: Создание слоя с БД SQL Server в MapGuide

Сообщение arzobispo » 12 янв 2010, 10:53

А что подразумевается под БД? Токо одна таблица с координатами или с ней еще связаны другие таблицы?
Почему так уверенно думаете, что нельзя к MS Access сделать сетевой доступ, чтобы много пользователей могли работать одновременно? Это как раз можно сделать, просто у всех юзеров будут клиентские-мордочки, через которые они загружают данные в БД.
С Уважением, Антон

and
Новоприбывший
Сообщения: 7
Зарегистрирован: 11 янв 2010, 16:07
Репутация: 0

Re: Создание слоя с БД SQL Server в MapGuide

Сообщение and » 12 янв 2010, 11:38

Дело в том что есть база данных с несколько сотнями связанных между собой таблиц ( до 500). Несколько десятков таблиц содержат геометрические данные (Координаты х и y). Пользователи работают с программой (Вносят новые данные, редактируют данные). Работа происходит через тонкий клиент (интернет).


Стоит задача актуального отображения информации с БД на карте. Конвертация с Microsoft SQL Server данных в Microsoft Access и с последующим отображением в MapGuide принципе возможна.

Попробую этот вариант... Потом напишу о результатах)

Загвоздка в том что конвертацию придется делать после каждого изменения данных в БД Microsoft SQL Server.

Аватара пользователя
JEY
Активный участник
Сообщения: 228
Зарегистрирован: 17 июл 2008, 13:42
Репутация: 1

Re: Создание слоя с БД SQL Server в MapGuide

Сообщение JEY » 18 янв 2010, 09:14

Схема базы данных, в Вашем случае, создается исключительно средствами FDO, поскольку конкретных стандартов по описанию схемы базы геопространственных данных нет, поэтому каждый программный продукт использует свою схему базы данных, развитую в меру фантазии разработчиков.

Собственно совет: Попробуйте внимательней посмотреть на свойства Load Procedure в проводнике MapGuide Studio. Я думаю там может быть решение Вашей проблемы. Наименования полей таблицы, откуда считываются геометрические данные, указываются именно там, если я не ошибаюсь.

and
Новоприбывший
Сообщения: 7
Зарегистрирован: 11 янв 2010, 16:07
Репутация: 0

Re: Создание слоя с БД SQL Server в MapGuide

Сообщение and » 18 янв 2010, 13:09

Спасибо за ответы.

Проблему решили следующим образом: В Microsoft SQL Server 2008 есть поля типа geometry.
Создается таблица с этим типом и заполняется данными ( пример заполнения поля geometry - LINESTRING( 10 20, 20 30, 40 20))
Создается связь в Map Guide с использованием Data Connection, выбирается провайдер OSGeo FDO provider for SQL Server Spetial и указываются настройки для связи с нужной таблицей.

И на основании созданного Data Connection создается слой.

Изменения в БД теперь будут отображаться на карте)

Ответить

Вернуться в «Общий - ПО»

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

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