Инструкция по формированию базы данных ArcSDE 10.1
Инструкция по созданию базы ArcSDE, редактируемой векторной графики в базе ArcSDE(для тестирования JavaScript приложения) и публикации в сети. ОС Windows 7 x64. ArcGis 10.1(Desktop и Server).
Этап 1. Создание базы геоданных и подключение к ней
Шаг 1: Установка и конфигурация PostgreSQL
1) Установите PostgreSQL(описание установки можно прочитать где угодно, установка одинакова для любой версии платформы. Чтобы не забыть пароль вводите везде одну и ту же последовательность символов. Могут быть пробелы, цифры, буквы). Я ставил версию postgresql-9.0.2-1 1.1.1) запустите исполняемый файл postgresql-9.0.2-1-windows_x64. 1.1.2) Чтобы было возможно подключиться к PostgreSQL c остальных компьютеров сети (сейчас можно подключиться только с localhost) необходимо изменить файл pg_hba.conf. Открываем файл pg_hba.conf из директории C:\Program Files\PostgreSQL\9.0\data. Меняем его содержимое на: 1.1.3) Перезапустите сервис postgresql-x64: 2) Поместите библиотеки ST_Geometry в папку lib в PostgreSQL Скопируйте файл по адресу C:\Program Files (x86)\ArcGIS\Desktop<номерверсии>\DatabaseSupport\PostgreSQL\Windows64\ st_geometry.dll в директорию C:\Program Files\PostgreSQL\9.0\lib. 3) Поместите файлы клиента PostgreSQL на компьютер клиента ArcGIS
Шаги: Если Вы установили версию PostgreSQL, отличную от postgresql-9.0.2-1-windows_x64 или в директории с инструкцией отсутствуют папки 32bitFiles9.0.2-1, 64bitFiles9.0.2-1. Тогда Вам необходимо установить 32 разрядную версию платформы PostgreSQL(смотри шаг 1.1), иначе выполняйте указания в скобках и шаг 1.3.2 выполнять не придется. ВНИМАНИЕ: я установил PostgreSQL не на c а на d. 1.3.1-1) Скопируйте 4 файла из директории D:\Program Files\PostgreSQL\9.0\bin(все файлы из папки 64bitFiles9.0.2-1): в папку C:\Program Files\ArcGIS\Server\bin. 1.3.1-2) А 5 файлов из директории D:\Program Files (x86\PostgreSQL\9.0\bin (все файлы из папки 32bitFiles9.0.2-1) в папку C:\Program Files (x86)\ArcGIS\Desktop<номер_версии>\bin (64-разрядные ОС) 1.3.2) Удалите PostgreSQL, установленный для 32 разрядной ОС. 1.3.3) Перезапустите ArcGisServer
Шаг 2 Создание Базы геоданных.
Можно использовать инструмент геообработки “ Создать многопользовательскую базу геоданных” (Create Enterprise Geodatabase) для создания базы данных, пользователя и схемы sde и базы геоданных в PostgreSQL. Шаги: 1) Запустите ArcMap и откройте окно Поиск (Search). 2) Щелкните на фильтре Инструменты (Tools). 3) Введите Создать многопользовательскую базу геоданных в поле и щелкните кнопку поиска.
4) Щелкните на ссылку Создать многопользовательскую базу геоданных (Управление данными), чтобы открыть инструмент. 5) Введите информацию, необходимую для подключения к кластеру базы данных PostgreSQL в качестве суперпользователя postgres, чтобы создать базу данных и пользователя sde. Также, необходимо указать файл ключей лицензии, который был создан при авторизации экземпляра ArcGIS for Server.
PostgreSQL работает на сервере localhost, имя создаваемой базы данных fstutorial, а файл ключевых кодов авторизации находится в папке по умолчанию на компьютере с ArcGIS for Server. Также были указаны пароли для суперпользователя postgres и для пользователя sde. Имя табличного пространства оставлено пустым; это означает, что база данных будет создана в пространстве pg_default. Сформированную базу данных можно просмотреть в pgAdmin
Шаг 3 Создайте пользователя, которому будут принадлежать данные
Данные, хранящиеся в базе геоданных, должны принадлежать пользователям, отличным от sde. Используйте инструмент геообработки Создать пользователя базы данных (Create Database User) для создания пользователя в кластере базы данных PostgreSQL и схемы в новой базе данных. Однако для создания пользователя сначала необходимо подключиться к базе геоданных как администратор базы данных (в данном случае, как суперпользователь postgres). Создайте подключение к базе данных, выполнив вход как пользователь postgres. Поэтому в этом пункте выполняйте следующие шаги Шаги: 1) Разверните папку Подключения к базам данных (Database Connections) в дереве Каталога в ArcMap и дважды щелкните на Добавить подключение к базе данных (Add Database Connection). 2) Откроется диалоговое окно Подключение к базе данных (Database Connection). Введите информацию, необходимую для подключения к новой базе данных в качестве суперпользователя postgres. 3) Нажмите ОК, чтобы создать подключение. Новый файл Connection to localhost.sde(пустой) подключения появится в Catalog в папке Подключения к базам данных (Database Connections) в дереве Каталога. На рисунке в нем уже есть записи, но у Вас их не будет
ШАГ 4 Теперь можно запустить инструмент Создать пользователя базы данных.
Шаги: 1) Щелкните на фильтре Инструменты (Tools) в окне Поиск (Search) в ArcMap. 2) Введите Создать пользователя базы данных (Create Database User) в поле поиска и щелкните кнопку Поиск (Search).
3) Щелкните на ссылке Создать пользователя базы данных (Управление данными), чтобы открыть инструмент. 4) Перетащите новый файл подключения из дерева Каталога в текстовое поле Введите рабочую область базы данных в окне инструмента Создать пользователя базы данных. 5) Введите имя нового пользователя в текстовом поле Пользователь базы данных и пароль в поле Пароль пользователя базы данных.
В этом примере в инструмент добавлен файл подключения, созданный ранее, а также введены имя пользователя (ftuser) и пароль(тот же что и был раньше). Поскольку роли в базе данных еще не созданы, имя роли не указано. 6) Щелкните OK, чтобы запустить инструмент. Новый пользователь и схема созданы в PostgreSQL, право USAGE автоматически предоставлено в схеме для роли public. Внимание у Вас могут возникать какие-нибудь ошибки на этом этапе, поэтому проверьте, что все шаги Вы выполнили правильно. Если у Вас раньше уже стоял ArcGis, то надо вводить старые пароли. Вобщем, если у Вас ошибки появляются, то для проверки 1) поставьте все ПО на чистую машину 2) проверьте, что все шаги выполнены верно
ШАГ 5.Подключитесь из-под этого нового пользователя
Теперь, когда у вас есть пользователь, который может добавлять данные в новую базу геоданных, подключитесь к ней из-под этого пользователя. Самый простой способ сделать это - изменить файл подключения, созданный ранее. Откройте подключение к базе данных и измените имя пользователя и пароль. Шаги: 1) Щелкните правой кнопкой мыши на подключении к базе данных и выберите Свойства подключения. 2) Измените Имя пользователя и Пароль, введя данные нового пользователя.
Вам надо будет только изменить имя пользователя, т.к. пароли были везде одними и теми же. Теперь Вы можете использовать это подключение для добавления данных в базу геоданных.
Этап 2. Добавление классов векторной графики
Обязательно для тестирования сервиса), добавление таблиц, графических слоев и т.д.(не обязательно).
a) Добавление таблиц из ранее созданных баз данных (например, если хотите добавить базовую, т.е. фоновую, карту). Для тестирования всю ерунду из пункта a) можно не читать и переходить к пункту b) 1) В Catalog выберите папку DatabaseConnection-> Connection to localhost.sde. По нажатию на правую кнопку мыши выпадет контекстное меню. В меню выберете поле Import->RasterDatasets.
2) В inputRasters выберете соответствующие таблицы из базы данных. Можно выделить все таблицы за раз. 3) Нажмите ОК b) Добавление Feature Class: Придерживайтесь следующего правила: добавляйте по одному классу на каждый тип векторной графики. Если необходимо редактировать на клиенте только базовые примитивы, то для этих целей достаточно использовать Feature Class. Feature Dataset используется для редактирования сложной топологии. В следующем примере показано добавление Feature Class для графического примитива типа полигон. 1) Сперва необходимо создать пустой класс, соответствующий полигонам. Для этого достаточно выделить соединение, созданное на предыдущем этапе и в контекстном меню выбрать New->FeatureClass:
В появившемся окошке укажите: имя класса, и выберите тип Polygon Features. Нажмите ок=> все готово. Однако редактировать, добавлять, удалять полигоны из ArcMap пока не получится. Чтобы начать сеанс редактирования необходимо определиться с типом редактирования: версионное или неверсионное. При неверсионном редактировании возможен случай, когда несколько клиентов при редактировании полигонов будут блокировать друг друга. Далее описывается неверсионное редактирование. Примечание: 2 пункт и далее можно не выполнять, т.к. добавить объекты можно будет и с клиента (из программы написанной на JavaScript). Однако для тестирования подключения к базе ArcSde он нужен. 2) Перетаскиваем из Catalog созданный класс FeatureClass(в этом примере он называется FCPolygonTestRoute) в окошко со слоями.(окошко - TableOfContets)
Необходимо сделать версионные данные неверсионными.(Feature Class по умолчанию – версионные данные). Выполните следующие шаги: 1) Если панель инструментов Редактор (Editor) еще не открыта, в основном меню последовательно щёлкните на Настройки (Customize), Панели инструментов (Toolbars) и Редактор (Editor). 2) Щёлкните раскрывающееся меню Редактор (Editor) на панели инструментов Редактор (Editor). 3) Щёлкните на Опции (Options). 4) Перейдите на вкладку Работа с версиями (Versioning).
5) Снимите отметку в поле опции Редактировать версию базы данных с возможностью отмены и повтора операций (Edit a version of the database with the ability to undo and redo). 6) Click OK.
3) Начинаем сеанс редактирования Editor->StartEditing В панели Editor выбираем пункт CreateFeatures. Появится окно: Рисуем полигоны, выбирая соответствующие кнопки в Editor. После того как закончили редактирование нажимаем в Editor->StopEditing. Сохраняем результаты редактирования. Проверить что данные были внесены можно нажав правой клавишей мыши на слой PolygonEditing и выбрать OpenAttributeTable. Появится окно:
Сейчас результаты данного редактирования сохранились в базе данных и доступны для всех пользователей. Проверить это также можно подключившись к базе с другого компьютера.
Этап 3. Добавление пользователей(служебной учетной записи) к базе данных PostgreSQL
arcgis – это учетная запись службы ArcGis for Server Посмотреть на служебную учетную запись можно следующим образом : Пуск->ArcGis->ArcGis 10.1 for Server->Configure…
А это учетная запись сайта
Для того чтобы пользователи могли редактировать записи в базе данных с клиента (с другого компьютера через браузер) необходимо следующее: предоставить служебной записи arcgis права на чтение и изменение таблиц в многопользовательской базе данных. ВАЖНО: Для обеспечения безопасности не рекомендовано предоставлять служебной записи права суперпользователя и права на создание объектов в базе данных. Примечание: у Вас не получится создать пользователя из под пользователя ftuser(созданного на предыдущем шаге) Для этого создайте пользователя arcgis в многопользовательской базе данных (на предыдущем этапе была создана база данных fstutorial) Для создания роли в кластере баз данных PostgreSQL можно использовать приложение клиента PostgreSQL, например pgAdmin III или PL/pgSQL. В шагах ниже показано, как создать роль, схему и группу с помощью PL/pgSQL и наделить правами доступа роль или группу. Шаги: 1) Войдите в psql в качестве пользователя с правами создания других ролей в СУБД. Обычно это суперпользователь postgres. Т.е. в коммандной строке наберите: psql –d fstutorial –U postgres –h 127.0.0.1 2) Выполните команду CREATE ROLE. Роль может создавать объекты в базе данных, но не является суперпользователем, не наследует права доступа групп и не может создавать роли в кластере баз данных. CREATE ROLE arcgis LOGIN ENCRYPTED PASSWORD ‘' NOSUPERUSER NOINHERIT CREATEDB NOCREATEROLE; Возможно, Вам понадобится изменить права на использование классов пространственных объектов(пока можно не делать). Для этого выберите в соединении с базой соответствующий класс и поменяйте его привилегии: правая кнопка мыши на классе, Manage->Privilegies. Добавьте для Public все галки. См рисунок.
Если Вы не можете зайти в привилегии, значит Вы подсоединились к базе не как администратор (или пользователь ftuser). Поменяйте настройки соединения Connection to loclhost-> ConnectionProperties. Достаточно поменять имя пользователя(если Вы везде вводили один и тот же пароль)
ЭТАП 4. Регистрация многопользовательской базы данных на сервере.
Перед выполнением этого пункта можно посмотреть видео на сайте ArcGis. Видео будет в разделе: Регистрация многопользовательской базы данных Выполните следующие шаги: 1) В ArcMap в Catalog выберите: GisServers->arcgis on localhost_6080(publisher). Щелкните на него правой кнопкой мыши. В контекстном меню выберите ServerProperties. 2) Следуйте инструкции в видео до пункта 3. Или просто пощелкаете по разным опциям. Методом тыка все легко осваивается.
Можно проверить, что Вы добавили соединение к базе правильно. 3) После того как Вы опубликовали сервис File->ShareAs->Service…->publish a Service ->ArcGisServer все далее берите по умолчанию. Единственно введите свое имя сервера(сервиса).
В этом окне нажмите на Analyze, если в окне дебага красных ошибок нет, значит, можно опубликовать сервис. Нажмите на Publish. На этом этапе вы опубликовали сервис. Далее можно проверить что данные есть на сервере и писать клиентскую часть.
В отличии от OpenLayers написать программу – “визуальный редактор базы данных со стороны клиента” средствами ArcGis можно за полчаса. Но если Вам влом это делать, то можно проверить еще одним способом.
ПРОВЕРКА
1)Для того, чтобы проверить что все настроено правильно, необходимо установить ArcGis Viewer for Flex. Если его нет в папке с инструкцией(должен называться AppBuilder-3.1), то заведите глобальную учетную запись ESRI, и скачайте с http://resources.arcgis.com/en/communities/flex-viewer/ 2) Для того чтобы установить AppBuilder-3.1 Вам потребуется установить Adobe Air Installer(файл AdobeAIRInstaller). 3)Для того, чтобы посмотреть на результаты в браузере Вам потребуется еще установить Adobe Flash Player. Скачайте его с оф сайта. Например, http://get.adobe.com/ru/flashplayer
После установки ArcGis Viewer for Flex у Вас появится окно, где необходимо ввести расположение на компьютере и адрес в сети папки, где будут сохраняться ваши тесты.(во второй строке укажите localhost)
Далее укажите откуда будет браться базовая карта и векторные слои Базовая карта(любая):
Слои с редактируемой векторной графикой:
Их Вы должны были создать заранее. Можно накидать сюда также виджетов для удобства тестирования и т.д. Во вкладке Просмотр можно предварительно посмотреть на карту, нажмите на Url-адрес приложения и Вы увидите Вашу карту в браузере. На этом настройка серверов, многопользовательской базы данных пока ЗАКОНЧЕН!
http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples_start.htm#jssamples/ed_editing_widget.html - симпл виджет
функция initEditing событие OnLayersAddResult
Drawing Tool: esriFeatureEditToolPolygon
Возможный баг: не редактируются полигоны, которые накладываются друг на друга Не редактируются полигоны при изменении цвета