Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Импорт IDF

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы пользователей
Предыдущая тема :: Следующая тема  
Автор Сообщение
ciandr



Зарегистрирован: 30.07.2014
Сообщения: 6

СообщениеДобавлено: Ср 30 Июл 2014 17:42    Заголовок сообщения: Импорт IDF Ответить с цитатой

На основе одного и того же шаблона были созданы 2 БД.
Структура у них получилась одинаковая, а графические объекты разные.
Нужно через IDF импортнуть эти проекты в 3-ю БД, но так чтобы одинаковые слои не слились. Как это сделать?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Чт 31 Июл 2014 09:21    Заголовок сообщения: Re: Импорт IDF Ответить с цитатой

Предлагаю такое решение:
1. В одной из первоначальных баз сделать полный дубликат карты.
Для этого:
1.1 в проводнике базы данных выбрать карту и в контекстном меню выбрать пункт "Копировать с вложенными объектами". Результат пока в буфере обмена.
1.2 в проводнике БД, в контекстном меню выбрать пункт "вставить". Создана пустая карта (без объектов), но полной структурой: слои, стили, методы, таблицы.
1.3 в проводнике БД переименовать новую карту, чтобы не путаться. Включить карту в текущий проект.
1.4 уже не в проводнике БД массовыми операциями (F9) скопировать все объекты по выбранному слою в соответствующий слой вновь созданной карты. Повторить для всех слоёв карты.
2. Сформировать обменный файл новой карты.
3. Закачать обменный файл в третью базу.
Это гарантированный способ.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ciandr



Зарегистрирован: 30.07.2014
Сообщения: 6

СообщениеДобавлено: Чт 31 Июл 2014 15:55    Заголовок сообщения: Ответить с цитатой

Сергей, спасибо за ответ.
На самом деле у меня таких БД должно быть не 2, а около 20 штук.
Получается, что оптимальней будет:
создать БД с "пустыми" слоями, в которой каждый слой будет продублирован 20 раз,
затем сделать 20 раз экспорт в IDF, выбирая каждый раз один из комплектов слоев.
Или оставить одну большую БД, а комплекты слоев раскидать по 20-ти проектам.
Заморочно, но сделать можно.

Правильно ли я понял, что в ИНГЕО вообще нельзя через IDF "перекинуть" слои из одной БД в другую не пустую БД, т.к. нет гарантии, что id добавляемых слоев не совпадут с id уже имеющихся слоев?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Чт 31 Июл 2014 16:38    Заголовок сообщения: Ответить с цитатой

ciandr писал(а):
Правильно ли я понял, что в ИНГЕО вообще нельзя через IDF "перекинуть" слои из одной БД в другую не пустую БД, т.к. нет гарантии, что id добавляемых слоев не совпадут с id уже имеющихся слоев?
Это предположение неверное.
Всё зависит от того как Вы дублируете базы.
Вариант первый: Вы в каждом месте заводите базы с нуля, наполняете информацией из idf-файлов. Создаёте объекты в базах, записываете в idf-файлы, закачиваете их в других базах (т.е. не в тех, в которых они были созданы) и всё работает великолепно. Правда обновления лягут в уже имеющиеся карты/слои с возможным замещением той информации которая там была не только первоначально закачена, но уже и исправлена/дополнена/удалена.
Короче, редактировать объекты одного слоя в разных базах чревато, может быть лучше наладить удалённый доступ всех в одну базу?
Вариант второй: Вы сделали дамп базы, перенесли его на другие сервера, но не сделали "сменить генератор". В этом случае будут проблемы. В двух базах пользователи будут создавать новые объекты, у которых будут одинаковые идентификаторы и локальные и ГЛОБАЛЬНЫЕ. Очень важно сразу менять генератор, до того начнут создавать объекты (карты, слои, стили, таблицы тоже можно считать объектами, им ИнГЕО тоже присваивает идентификаторы).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Чт 31 Июл 2014 17:00    Заголовок сообщения: Ответить с цитатой

ciandr писал(а):
На самом деле у меня таких БД должно быть не 2, а около 20 штук.
Получается, что оптимальней будет:
создать БД с "пустыми" слоями, в которой каждый слой будет продублирован 20 раз,
затем сделать 20 раз экспорт в IDF, выбирая каждый раз один из комплектов слоев.
Или оставить одну большую БД, а комплекты слоев раскидать по 20-ти проектам.
Заморочно, но сделать можно.
Я пока не понял чем обусловлено деление на 20 однотипных структур данных. Если можно, в общих чертах опишите архитектуру отношений с пользователями и каких ситуаций Вы пытаетесь избежать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ciandr



Зарегистрирован: 30.07.2014
Сообщения: 6

СообщениеДобавлено: Чт 31 Июл 2014 17:52    Заголовок сообщения: Ответить с цитатой

Это карты районов области.
Создаются на основе импорта из MIF.
Изначально предполагалось создать для каждого района отдельную БД и в обменном формате передать Заказчику. Но Заказчик хочет влить все IDF в одну БД.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Пн 04 Авг 2014 09:03    Заголовок сообщения: Ответить с цитатой

ciandr писал(а):
Изначально предполагалось создать для каждого района отдельную БД и в обменном формате передать Заказчику. Но Заказчик хочет влить все IDF в одну БД.
Продолжаем разговор.
Жаль что после пояснений, вопросов становится всё больше. Буду додумывать, рассуждать в слух.
И так, предположу следующее:
1. Есть некая территория, разделённая некоторыми границами на 20 зон (районов). Система координат общая, единая. С этой точки зрения, нет препятствий разместить всё в одной базе.
2. Есть единое руководство и 20 подразделений удалённых, которые должны работать со своей территорией (смотреть, редактировать, удалять, но без права изменять структуру данных). По некоторому протоколу, с определённой периодичностью необходимо из подразделений информацию передавать в головной офис. Работа с одной базой вероятно затруднена и в настоящий момент невозможна.
3. В головном офисе полученную информацию от подразделений не редактируют, только смотрят и делают обобщающий анализ. Возможно существование информации общей для всех подразделений (границы, топография, и .т.д.) Ответственность за такую информацию необходимо возложить на головной офис (первоначальная закачка, тиражирование по подразделениям, редактирование).
4. Удобство и надёжность заставляют разделять информацию из подразделений по разным картам (20 комплектов карт с идентичной внутренней структурой). Если в головном офисе с такой информацией работать не удобно, тогда можно после каждого обновления от подразделений, обновлять (с полным предварительным удалением) карту, специально созданную для сливания вместе информации из подразделений. Т.е. это будет 21-я карта.
------
Специально хочу обратить внимание на следующее:
1. Редактировать объекты (и семантику объектов) в конкретной карте должны в одном месте - либо в головном офисе, либо в конкретном подразделении. Я для себя делаю карту ответственности - это таблица, в которой для каждой карты указано кто имеет возможность изменять её объекты.
2. Изменять структуру слоя (таблицы, стили, методы) необходимо разрешить одному человеку. Остальные могут только направлять ему заявки на внесение определённых изменений в структуру. Сложности будут при тиражировании изменений в 20 базах подразделений.
---------
Возможно я заблуждаюсь, относительно рассматриваемой ситуации, тогда прошу уточнить ситуацию.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ciandr



Зарегистрирован: 30.07.2014
Сообщения: 6

СообщениеДобавлено: Пн 04 Авг 2014 11:49    Заголовок сообщения: Ответить с цитатой

Сергей, всё намного проще. Есть задача перевести имеющиеся данные в формат Ингео. Дальнейшие манипуляции с данными меня не интересуют.
Но Заказчик попросил подготовить данные так, чтобы при вливании в одну БД одинаковые слои районов не слились. Зачем нужна одна БД, я не знаю. Мне надо понять, какие варианты решения есть, насколько они усложнят мне подготовку данных.
Если я правильно понимаю, то для решения задачи, надо передать Заказчику БД районов в обменном формате так, чтобы у каждого района ID были уникальны.
Самое простое решение, это создать 20 пустых БД (с картами и слоями но без пространственных объектов), а потом их заполнять. Как это сделать мне понятно. Но такое решение меня не устраивает.
Проблема в том, что процесс конвертации данных в БД предполагается провести с помощью EasyTrace. Идея автоматизации в том, что настроив данные одного района для конвертации, затем по этим же настройкам конвертнуть остальные районы. Но это можно сделать только если ID соответствующих стилей в БД всех районов будут одинаковы.
Т.е. мне надо как-то поменять ID в уже заполненных БД перед конвертацией их в обменный формат.
Быть может, как вариант, Заказчик перед "вливанием" данных в единую БД должен проделать какие-то дополнительные действия?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
APopov



Зарегистрирован: 19.06.2006
Сообщения: 347
Откуда: Самара

СообщениеДобавлено: Пн 04 Авг 2014 13:42    Заголовок сообщения: Ответить с цитатой

Есть утилита DBChangeIDs.exe которая меняет глобальные ИД в базе.
Есть также утилита InGeoCopyDb.exe, которая копирует базу в другую базу и, если мне не изменяет память, при копировании позволяет сменить ИД объектов базы.

DBChangeIDs.exe - должна быть на диске поставки ингео. InGeoCopyDb.exe - ставится основным инсталлером ингео при включённой галочке "сервер"

_________________
ОАО "Самара-Информспутник",
инженер-программист Попов Артем
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Пн 04 Авг 2014 17:18    Заголовок сообщения: Ответить с цитатой

ciandr писал(а):
Заказчик попросил подготовить данные так, чтобы при вливании в одну БД одинаковые слои районов не слились
Воистину, замыслы заказчиков неисповедимы.
И так, результат Вашей работы проще всего формировать в одной карте (т.е. без деления на районы).
После этого делаем 20 дубликатов этой карты, в названии каждой из них указываем к какому районы она относится. В каждую карту копируем объекты только определённого района. Для этого можно использовать "Пространственный запрос" из меню "Анализ".
Все 21 карту помещаем в разные idf-файлы: 20 районных и 1 общий - полный файл.
Торжественная передача заказчику результатов работы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы пользователей Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB