Изменение пути к источнику базы геоданных Oracle в ArcMap 10.3 Desktop

0 голосов
спросил 29 Окт, 16 от yaras_phoenix (460 баллов) в категории Программные продукты Esri
Неуверен в корректности заголовка, прошу сильно не пинать.
Работаю в ArcMap 10.3.1 Desktop.
Имеется база данных Оракл с большим количеством схем (пользователей) с одинаковым набором классов объектов.
К примеру:
есть схема SCOTT_1, в нем классы TIGER; WOLF; ...; BEAR.
есть схема SCOTT_2, в нем классы TIGER; WOLF; ...; BEAR.
...
есть схема SCOTT_999, в нем классы TIGER; WOLF; ...; BEAR.
В легенде проекта в ArcMap находятся все классы из схемы SCOTT_1, каждому дан свой стиль.
Суть проблемы:
Количество схем очень велико и будет увеличиваться. Количество классов в каждой схеме также достаточно большое. Стили у одноименных классов в разных схемах идентичны. Но постоянно добавлять в легенду и стилизовать классы каждой схемы - не вариант. Поэтому вопрос такой: можно ли каким-то образом подменять имя схемы-источника, чтобы уже добавленные классы с готовыми стилями "подцепляли" его и отображали объекты из новой схемы?

9 Ответы

0 голосов
ответил 31 Окт, 16 от yaras_phoenix (460 баллов)
, дело в том, что Set Data Source позволяет поменять базу данных, но не позволяет поменять схему внутри одной базы данных.
0 голосов
ответил 02 Ноя, 16 от Grigoriy (127,020 баллов)
Вот позволю себе не согласится с данным утверждением.
Самый простой способ проверить:


создаете подключение от имени владельца одной схемы.
с этим подключением готовите проект в аркмап.
создаете подключение от имени владельца второй схемы.
щёлкаете в ArcCatalog правой кнопкой мыши нафайле mxd и выбираете "Установить источник данных"
.
Если имена классов совпадают, то всё прекрасно заменяется.
После этого, таким же способомможете уже изменить имя-пароль пользователя, от имени которого нужно выполнять mxd.
Программно - скриптом на питоне или другим средством разработчика можете изменить вообще всё сразу.
0 голосов
ответил 03 Ноя, 16 от yaras_phoenix (460 баллов)
, "Если имена классов совпадают, то всё прекрасно заменяется."
Вот тут и возникает проблема. Дело в том, что при добавлении класса из схемы1, он в Аркмапе именуется полным именем, т.е. "схема1.класс1", а когда я подменяю источник на схему2, при открытии MXD-файла, класс не отображается и починить это дело можно, только вручную указав конкретный класс конкретной схемой (ПКМ на слой - Data - REpair Data Source...).
То есть, имена классов не могут совпадать, так как схема-источник составляет часть имени. На этом я и застрял.
0 голосов
ответил 03 Ноя, 16 от yaras_phoenix (460 баллов)
, я частично решил проблему:
После регистрации класса объектов я могу поменять не ИМЯ класса, а его АЛИАС, и при выводе на карту я получу именно алиас в легенде.
После выхода из сохраненного проекта я могу поменять источник на схему с таким же алиасом, и класс при открытии проекта с уже измененным источником будет выведен на карту.
Первый шаг к автоматизации сделан, теперь вопрос, каким образом автоматизировать процесс, чтобы каким-то скриптом класс и регистрировался в базе SDE, и сменял себе алиас, убирая мешающее имя схемы, чтобы этого не надо было каждый раз делать ручками. Тут уже я не по адресу, наверно?
0 голосов
ответил 07 Ноя, 16 от Grigoriy (127,020 баллов)
Как-то у Вас всё запущено :)
Сначала создаются классы объектов, регистрируются в базе геоданных, загружаются данные, строятся индексы.
И это автоматизируется одними инструментами.
автоматизировать можно средствами СУБД (создание табличных пространств, схем, паролей и пр.) + средствами ArcGIS (экспорт-импорт схемы в xml и пр.)
Кстати, я бы задумался при создании 999 одинаковых схем в одной СУБД - насколько это нужно или нельзя ли сделать попроще :)
А потомсоздаются проекты и в них настраиваются источники данных.
И для этого используются другие инструменты.
Тот же питон - см выше.
0 голосов
ответил 07 Ноя, 16 от yaras_phoenix (460 баллов)
, просто раньше Арком не особо пользовались, а теперь появилась потребность в редактировании данных Оракл именно из него.
Так как раньше я не работал с SDE, я не понимаю, каким именно образом происходит:
а) регистрация класса в базе геоданных, с точки зрения СУБД
б) "пакетное" изменение алиасов для дальнейшего создания "клонов"проектов.
В идеале - решить все проблемы исключительно в рамках Oracle SQL, не прибегая к питонам и иже с ними.
P.S. Сейчас это все уже не представляется таким сложным, как до Ваших ответов.
0 голосов
ответил 08 Ноя, 16 от Grigoriy (127,020 баллов)
Если только Oracle SQL, то нужны хорошие знанияOracle Spatial.
Плюс придется учитывать ограничения ArcGIS на работу "со сторонними" источниками данных.
http://desktop.arcgis.com/ru/arcmap/latest/manage-data/databases/databases-and-arcgis.htm
И всё равнодля автоматизации создания "проектов" придется использовать или питон, или другое средство программирования.
Если же используется "база геоданных ArcGIS", то как я уже говорил - для создания пользователя и пр. лучше использовать SQL.
http://desktop.arcgis.com/ru/arcmap/latest/manage-data/gdbs-in-oracle/overview-manage-access.htm
А для управления таблицами (классами) и данными в них использовать инструменты или скрипты самого ArcGIS.
0 голосов
ответил 08 Ноя, 16 от yaras_phoenix (460 баллов)
,буду действовать исходя из этого. Спасибо!
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...