Добавить данные в опубликованную службу. 1 этап

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Добавить данные в опубликованную службу. 1 этап

Сообщение novice » 01 авг 2013, 08:36

Собственно суть задачи: на какой-то машине установлен ArcGis 10.1 В нем можно как-угодно опубликовать сервис с какими угодно настройками.

Т.е. есть уже работающий сервис, данные он может использовать какие угодно.

Я написал ПО для конвертации всех пользовательских данных (формата adf - это тоже Raster Dataset) в один Raster Dataset. Т.е. результирующие данные у меня хранятся в одной файловой базе данных (gdb) в одном Raster Dataset.

Подскажите, пожалуйста, можно ли доопубликовать эти данные в эту службу?

Мое мнение: в произвольный сервис опубликовать данные нельзя, но, быть может, можно заранее зарегистрировать именно эту базу данных на сервере, опубликовать ее. А затем добавить в зарегистрированную базу данных новые таблицы, и они автоматически станут отображаться на сервисе?

Andrey Zhukov
Гуру
Сообщения: 838
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Добавить данные в опубликованную службу. 1 этап

Сообщение Andrey Zhukov » 01 авг 2013, 09:05

"Само" в сервисе ничего не появится. Варианты:
1. Если надо смотреть сервисы напрямую. Переопубликовывать сервисы при добавлении данных, можно все впихнуть в скрипт. ArcPy в помощь.
2. Если надо смотреть через приложение. Включить динамические слои. Web API в помощь.

novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Добавить данные в опубликованную службу. 1 этап

Сообщение novice » 01 авг 2013, 09:48

а как это можно объяснить начальству?

Andrey Zhukov
Гуру
Сообщения: 838
Зарегистрирован: 10 дек 2009, 23:24
Репутация: 169
Ваше звание: старик-гисовик
Откуда: Москва
Контактная информация:

Re: Добавить данные в опубликованную службу. 1 этап

Сообщение Andrey Zhukov » 01 авг 2013, 10:09

Для вашего начальства услуги консалтинга - платные :mrgreen:
А если серьезно - честно сказать, что просто так в сервисе ничего не появляется.

first_year
Новоприбывший
Сообщения: 5
Зарегистрирован: 05 авг 2013, 13:56
Репутация: 0

Re: Добавить данные в опубликованную службу. 1 этап

Сообщение first_year » 07 авг 2013, 11:19

Вот решение для подобной задачи, немного дикое, но удовлетворяющее поставленным требованиям:

1) В ArcMap: создаем пустой raster dataset в многопользовательской базе данных (с любой машины). Перерегистрируем данную базу данных на сервере (если база данных находится на одной машине, сервер на другой, то эту операцию надо проводить с серверной машины). Публикуем (с любой машины) сервис на сервере: просто перетягиваем пустой raster dataset в окно со слоями и публикуем.

2) Далее добавляем данные в этот пустой raster dataset. Можно быстренько написать десктопное приложение, которое будет в потоке выбранные пользователями файлы писать в raster dataset. Чтобы много не думать, интерфейс можно скопипастить из приложения ArcGis Viewer for Flex (просто и удобно).

Самая сложная задача здесь - это корректно скопировать данные в таблицу raster dataset, на это ушло дня три, если не больше, интерфейсы, потоки и все остальное займут у вас суммарно - максимум день.

first_year
Новоприбывший
Сообщения: 5
Зарегистрирован: 05 авг 2013, 13:56
Репутация: 0

Re: Добавить данные в опубликованную службу. 1 этап

Сообщение first_year » 07 авг 2013, 11:43

Для небольшого числа данных подойдет код:

Вызов

Код: Выделить всё

listDir.ForEach(str => LoadRastersToSDE(str));
Для конвертации:

Код: Выделить всё

        private void LoadRastersToSDE(string str)
        {
                Geoprocessor geoProcessor = new Geoprocessor();
                Mosaic mosaic = new Mosaic();

                mosaic.inputs = str;
                mosaic.target = Settings.Instance.RasterDatasetFullName;

                mosaic.mosaic_type = "LAST";
                mosaic.colormap = "FIRST";

                object outRaster = geoProcessor.Execute(mosaic, null);
        }

Ответить

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

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

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