Как сделать слой на базе x,y-таблицы в базе геоданных

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Tereha
Завсегдатай
Сообщения: 419
Зарегистрирован: 15 май 2010, 06:13
Репутация: 4

Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Tereha » 21 ноя 2013, 08:03

Уважаемые Гуру!
Подскажите, как в arcgis 10.1 desktop сделать слой для сервиса (c feature access) на базе x,y - таблицы в базе геоданных SQL-сервера? Может просто ссылка?
PS. Я понимаю, что это вроде несложно:
"Каждый слой ссылается на один набор данных, который хранится в базе геоданных, или же на одно покрытие, шейп-файл, растр и т.п. Добавить слои на карту просто – выберите набор данных и перетащите его из окна Каталог (Catalog) или Поиск (Search) на карту, либо добавьте набор данных при помощи кнопки Добавить данные (Add Data)."
(http://resources.arcgis.com/ru/help/mai ... 00v000000/) , но не вижу как сделать видимыми точки...

Ivanych999
Участник
Сообщения: 95
Зарегистрирован: 25 ноя 2013, 16:28
Репутация: 22

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Ivanych999 » 25 ноя 2013, 16:51


Tereha
Завсегдатай
Сообщения: 419
Зарегистрирован: 15 май 2010, 06:13
Репутация: 4

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Tereha » 26 ноя 2013, 08:36

Я неточно сформулировал вопрос. Задача заключается в создании слоя на базе x,y-таблицы, который может быть опубликован в качестве сервиса. Приведенная ссылка содержит описание создания временного x,y-слоя. Такой слой может быть создан без использования скриптов , в т.ч. и постоянный слой. Но для возможности редактирования слоя из сервиса, слой должен быть зарегистрирован в базе геоданных.
Насколько я сейчас знаю, чтобы зарегистрировать слой, нужно в таблице на базе полей x,y создать дополнительное поле геометрии . Я в данном случае использую базу данных в sql-сервере (2012). Но при попытке зарегистрировать таблицу с полем геометрии я получаю ошибку.
В связи с этим, может ли кто-нибудь указать ссылку на алгоритм (step by step) регистрации простой x,y-таблицы в базе данных sql-сервера в базе геоданных. Мое представление об этом процессе на текущий момент такое:
1. Сделать подключение к базе данных sql сервера через Catalog.
2. Для сделанного подключения из контекстного меню выбрать "Создать базу геоданных по умолчанию"
3. Также из контекстного меню разрешить использование базы геоданных.
4. В требуемой таблице на базе полей x,y сделать поле геометрии
5. Из контектного меню для требуемой таблице - Зарегистрировать в базе геоданных.

На последнем шаге - получаю ошибку.
Failed to register with the Geodatabase.
Underlying DBMS error [Microsoft SQL Server Native Client 11.0]: the metadata could not be derermined because statement 'EXEC (@ececstring) in procedure 'sp_renamed' contains dynamic SQL. Consider using WITH RESULT SETS clause to explicitly describe the result set'
В чем может быть причина?

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение novia » 26 ноя 2013, 08:43

а не хотите простой способ попробовать, без всяких регистраций и событий сразу в класс объектов все сохранить
понравилось? жми палец вверх :!:

Tereha
Завсегдатай
Сообщения: 419
Зарегистрирован: 15 май 2010, 06:13
Репутация: 4

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Tereha » 26 ноя 2013, 09:59

Спасибо, я сейчас взгляну. Пока пытаюсь осознать, что требуется для обеспечения возможности опубликовать сервис на базе x,y-слоя с возможностью редактирования. Я , полагал до сих пор, что имея arcgis server, acrgis desktop, sql-server 2012 с нужными лицензиями , я это сделать смогу. Но теперь появились сомнения.
[url=Спасибо, я сейчас взгляну. Пока пытаюсь осознать, что требуется для обеспечения возможности опубликовать сервис на базе x,y-слоя с возможностью редактирования. Я , полагал до сих пор, что имея arcgis server, acrgis desktop, sql-server 2012 с нужными лицензиями , я это сделать смогу. Но теперь появились сомнения.
Здесь resources.arcgis.com/ru/help/main/10.1/index.html#/na/003n00000028000000/ говорится о том, что
1. нужен именно sql server express, (а что изменится если будет sql server enterprize?)
2. не ясно что с лицензиями, хватит ли лицензий sql server или нужно нечто дополнительное???
3. " Они используют только Windows-аутентифицированных пользователей, и к ним можно подключаться только посредством прямого подключения (direct connection)." Мне казалось, что если
- в обычную x,y- таблицу добавить поле геометрии ,
- из контекстного меню на базе данных - создать базу геоданных по дефолту
- сделать enable для этой геобазы данных , тоже из контекстного меню
- зарегистрировать таблицу с полем геометрии
Так или примерно так - можно достичь создания сервиса из слоя на базе x,y-таблицы с возможностью редактирования (с включенным feature access).
Но т.к. вылетает не понятная ошибка, то возможно причина - в неправильном понимании установки arcSDE.

Tereha
Завсегдатай
Сообщения: 419
Зарегистрирован: 15 май 2010, 06:13
Репутация: 4

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Tereha » 26 ноя 2013, 11:03

По поводу "Add XY Coordinates". Возможно я недопонял. У меня исходная информация - в таблице базы данных. При появлении нового события в соответствующей таблице базы данных появляется запись о событии и x,y-координатами. Допустим, на какой-то фиксированный момент в таблице 10 "действующих" событий (вообще в таблице их тысячи, но 10 - которые находятся в состоянии контроля ) и необходимо построить механизм, который отображает эти события на карте в режиме реального времени. Добавляется новое или изменяются параметры действующего события или уточняются его координаты - это должно отразиться на клиентах подключенных к серверу .
Если я правильно понял, с помощью процедуры "Add XY Coordinates" можно по полю геометрии сформировать поля point_x и point_y. Это несколько другая задача.

Ivanych999
Участник
Сообщения: 95
Зарегистрирован: 25 ноя 2013, 16:28
Репутация: 22

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Ivanych999 » 26 ноя 2013, 11:12

Tereha, как вы хотите редактировать свой слой?
По последним вопросам:
1. sql server express - минимальное требование.
2. должно хватить
Почитайте здесь (http://resources.arcgis.com/ru/help/mai ... 001000000/)
3. Для редактирования геометрии необходимо поле OBJECTID, плюс ArcGIS редактирует поле геометрии, а не значения в XY-таблице.
ArcGIS предоставляет возможность отображения данных из XY-таблицы. Чтобы вам помочь, необходимо знать, что вы подразумеваете под редактированием.
Также убедитесь, что у вас стоит нужная версия native client`а и первый сервис пак ArcGIS

Tereha
Завсегдатай
Сообщения: 419
Зарегистрирован: 15 май 2010, 06:13
Репутация: 4

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Tereha » 26 ноя 2013, 12:16

1. ObjectId arcgis создает автоматически при регистрации таблицы - так я прочел в документации. Если чего-то не хватает- должны появится окна с запросами. Но ошибка происходит сразу при запуске - Зарегистрировать таблицу у базе геоданных.
Я пытаюсь понять что я сделал неправильно в сложившихся условиях. Почему не регистрируется таблица. В справке пишут, что sql server express устанавливается с какими-то доп возможностями, может что то нужно доустанавливать в sql server 2012 enterprise???
2. Интуитивно понятно, что вроде всего должно хватать. Но step-by-step для своих условий я не нашел. Добился, что после введения поля геометрии слой точек отображается правильно простым drug-and-drop из Catalog.
3. Публикация сервиса на слое не происходит, пока таблица не будет зарегистрирована в базе геоданных

4. Задача. В таблицу заносятся данные о событиях (многопользовательская по республике система). При формировании события в строке запоминаются x,y - координаты. Хотя , вообще говоря, можно формировать и поле геометрии. Поля записей могут изменяться в реальном времени, доступны все CRUD операции. Необходимо
обеспечить соответствующее изменение данных на карте.
Кроме событий есть другие объекты, по которым данные должны корректироваться закрепленными операторами, например, дороги, мосты и прочее.
Редактирование можно производить и в базе данных напрямую, не используя arcgis, но при внесении нового события - оно должно отобразиться (или исчезнуть при изменении условий выборки) на карте.

Ivanych999
Участник
Сообщения: 95
Зарегистрирован: 25 ноя 2013, 16:28
Репутация: 22

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Ivanych999 » 26 ноя 2013, 15:24

Тогда зачем вам сервис с feature access, если вы хотите просто просматривать точки?
Вам в этом случае, если надо просто показать точки, необходимо просто создать слой событий на основе этой таблицы, как я уже писал в начале. При добавлении новой точки, она также появится в сервисе при обновлении экрана (при новом запросе к сервису)

Для создания БГД (http://resources.arcgis.com/ru/help/mai ... 0rm000000/)

Tereha
Завсегдатай
Сообщения: 419
Зарегистрирован: 15 май 2010, 06:13
Репутация: 4

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Tereha » 26 ноя 2013, 16:07

Мне нужно обеспечить редактирование слоев - водоемов, дорог и прочего.

Ivanych999
Участник
Сообщения: 95
Зарегистрирован: 25 ноя 2013, 16:28
Репутация: 22

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Ivanych999 » 26 ноя 2013, 16:13

Для прочего сделайте отдельный сервис. Есть общая рекомендация: в сервис с feature access надо добавлять только то, что будет редактироваться.

Tereha
Завсегдатай
Сообщения: 419
Зарегистрирован: 15 май 2010, 06:13
Репутация: 4

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Tereha » 26 ноя 2013, 16:16

Я , для опыта установил sql express с диска arcgis, создал базу геоданных, таблица событий зарегистрировалась нормально. Но при публикации сервиса получил ошибку, что подключения таблицы и базы геоданных - не совпадают. Разбираюсь. Если я правильно понял , из arcgis Desktop подключение должно быть не от "sa" , а от пользователя с windows - аутентификацией, вроде так и сделал. Хотя подключение и базе геоданных (database servers) и подключение к таблице (в database connections) - от user DBO (как указано в свойствах подключений). Что вообщем то странно , т.к. в database connections я подключался под пользователем arcgis, которого ввел в owner базы данных...

Tereha
Завсегдатай
Сообщения: 419
Зарегистрирован: 15 май 2010, 06:13
Репутация: 4

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Tereha » 26 ноя 2013, 16:21

Странно, я хотел бы пересоздать подключение в database connections, но не могу удалить старое (если оно единственное) . Иногда удавалось удалить, но не могу понять и вспомнить - как

Ivanych999
Участник
Сообщения: 95
Зарегистрирован: 25 ноя 2013, 16:28
Репутация: 22

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Ivanych999 » 26 ноя 2013, 16:47

Вообще, по-хорошему, после создания БГД, надо создать пользователя в СУБД, от которого вы будете грузить данные, т.е. кто станет владельцем таблиц, прописать необходимые права. Также создать отдельных пользователей для просмотра и редактирования, но для опыта можно ограничиться одним. (http://resources.arcgis.com/ru/help/mai ... 02s000000/)
Дальше надо зарегистрировать на сервере ArcGIS подключение от этого пользователя и после этого публиковать сервис.
Грузить данные, публиковать их от имени пользователя с правами администратора не рекомендуется.
Создавать пользователей лучше с аутентификацией базы данных, если у вас сервер и клиенты не в домене. В Toolbox`е есть инструмент для этого.

Ivanych999
Участник
Сообщения: 95
Зарегистрирован: 25 ноя 2013, 16:28
Репутация: 22

Re: Как сделать слой на базе x,y-таблицы в базе геоданных

Сообщение Ivanych999 » 26 ноя 2013, 16:48

Краткий алгоритм такой:
1. Создание БГД
2. Создание пользователя с правами создателя, редактора данных
3. Создание классов объектов и пр в БГД
4. Регистрация подключения на сервере ArcGIS
5. Публикация сервисов

Ответить

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

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

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