Страница 1 из 2
Создание поля geometry в геобазе данных
Добавлено: 06 дек 2013, 11:21
Tereha
Уважаемые Гуру!
х,y - таблицу необходимо зарегистрировать в геобазе данных.
1. Базу данных создать стандартным инструментом Create enterprise geodatabase.
2. Таблицу скопировал в геобазу данных:
Код: Выделить всё
select * into cuks_gdb.sde.events from cuks.dbo.events
3. В клонированной таблице добавил поле shp типа geometry.
4. Сформировал значения поля по значениям полей x,y:
Код: Выделить всё
update cuks_gdb.sde.events set Shp = geometry::STGeomFromText('Point('+ ltrim(STR(x, 99, 11))+ ' '+ ltrim(STR(y, 99, 11))+ ')',28406);
Все сформировалось, вроде, сообщений об ошибках не было . Но при попытке ввести изменения в любое поле получаю сообщение об ошибке
The parameter type cuks_gdb.sys.geometry is invalid. Parameter name: value
Как исправить ошибку?
Re: Создание поля geometry в геобазе данных
Добавлено: 06 дек 2013, 14:31
trir
Может следует создать таблицу средствами ArcGISб а уже потом заполнить её данными...
Re: Создание поля geometry в геобазе данных
Добавлено: 06 дек 2013, 16:04
Tereha
Создал новую таблицу в геобазе данных (cuks_gdb) средствами arcgis desktop. Поле id (int) - преобразовалось в ObjectID. В sql manager добавил поле Shape типа geometry , затем скопировал имеющиеся поля в исходной (не геобазе) базе данных (без поля типа geometry) и выполнил скрипт по формированию поля shape.
Результат - тот же, ошибка (приведена в исходном сообщении)
Re: Создание поля geometry в геобазе данных
Добавлено: 06 дек 2013, 19:24
Monstria
Tereha писал(а):Создал новую таблицу в геобазе данных
А что мешает вашу таблицу, с исходными данными и координатами, добавить слоем, после чего данные слоя уже экспортировать в вашу базу новым классом?
http://resources.arcgis.com/ru/help/mai ... 001z000000
Re: Создание поля geometry в геобазе данных
Добавлено: 07 дек 2013, 11:08
Tereha
Нет компьютера под рукой, надо попробовать.
1. Правильно ли я понял , что созданный по x,y таблице слой можно экспортировать в геобазу данных в виде класса. В этом классе будет соответствющая таблица, и будут доступны программно CRUD операции с таблицей, т.е. возможно, например, программное добавление элементов?
2. Если в исходной x,y-таблице, на основе которой слой, будет добавлен элемент, то в базе геоданных система сама добавит соответствующий элемент или его надо формировать программно?
3. При программном добавлении элементов в класс геобазы данных все равно придется формировать поля типа geometry. Так что с проблемой сформулированной изначально разобраться надо...
[ Сообщение с мобильного устройства ]
Re: Создание поля geometry в геобазе данных
Добавлено: 07 дек 2013, 13:41
Monstria
Если вы будете добавлять новые объекты скриптами - то вам стоит более подробно изучить API ArcObject help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html
http://help.arcgis.com/en/sdk/10.0/Arco ... tModel.pdf
так как тип (Geometry) поля (Shape, или как у вас Shp) - далеко не текстовое...
Re: Создание поля geometry в геобазе данных
Добавлено: 07 дек 2013, 18:05
trir
А кто тут увидел текстовое поле?
Re: Создание поля geometry в геобазе данных
Добавлено: 07 дек 2013, 19:14
Tereha
1. Я публикую сервис на основе таблицы базы геоданных и рассчитываю работать с таблицей или с помощью стандартных виджетов из silverlight API (типа EditorWidget) и использованием кода на C#.
2. Я думаю, если , скажем, добавлять новую запись из c# , то найдется стандартная функция, которая формирует поле geometry по координатам.
3. Я пытаюсь понять почему у меня сервис на таблице не работает в полном объеме. Если я вижу, что при изменении записи просто в sql manager , естественно выяснить - почему?
4. Хотелось бы далее на следующем этапе посмотреть - как вносить изменения в эту таблицу из arcgis desktop (10.1). Как изменять атрибуты имеющихся элементов и добавлять новый.
5. Интересно посмотреть - если предложенным способом формировать слой на основе x,y-таблицы и далее переносить этот слой в геобазу данных - что при этом происходит? Формируется ли поле Shape?
6. Вообще-то я где- то видел, что если в исходной таблице нет полей geometry и ObjectID- то при регистрации таблицы в базе геоданных - должны появиться диалоги с предложением автоматически сформировать эти поля.
7. Если использовать некий алгоритм формирования нужной таблицы в базе геоданных на основе исходной x,y-таблицы, то далее работа происходит только с новой таблицей или есть возможность сделать так, чтобы работать с исходной x,y- таблицей, а далее система уже отслеживает изменения?
Re: Создание поля geometry в геобазе данных
Добавлено: 07 дек 2013, 20:06
trir
А зачем вообще так мучатся с arcgis desktop? Если есть куча способов сделать это сильно проще!
Re: Создание поля geometry в геобазе данных
Добавлено: 08 дек 2013, 07:21
Tereha
Очень интересно!!! Был бы очень признателен
[ Сообщение с мобильного устройства ]
Re: Создание поля geometry в геобазе данных
Добавлено: 08 дек 2013, 12:03
trir
Только не понятно, что же требуется получить в результате...
Re: Создание поля geometry в геобазе данных
Добавлено: 09 дек 2013, 08:24
Tereha
Есть x,y - таблицы , сейчас перевел их на sql server. CRUD операции с таблицами выполняются множеством операторов. Объекты (события, или объекты...) отображаются на карте. Необходимо, например, чтобы события после ввода оператором - сразу отображались на карте (аналогично по остальным операциям).
Я на таблицах предполагаю сделать feature service в arcgis server 10.1. Вот в целом и все.
Для создания сервиса с feature access необходимо зарегистрировать таблицу в базе геоданных. Зарегистрировал, создал необходимые поля ObjectID и Shape - сервис создается, точки отображаются правильно по полям Shape . Операция удаления работает в любом случае, update выполняется на моем sql сервере ,если подключить сервис к arcgis.com, но вот из моего сайта - update не выполняется ...
Re: Создание поля geometry в геобазе данных
Добавлено: 09 дек 2013, 14:55
Tereha
Re: Создание поля geometry в геобазе данных
Добавлено: 09 дек 2013, 16:37
trir
Re: Создание поля geometry в геобазе данных
Добавлено: 10 дек 2013, 10:33
Tereha
Спасибо, интересная информация. Если я правильно понимаю она облегчает работу с пространственными данными базы геоданных ArcSDE из , например, C# модуля.
1. Ссылка не работает:
OSGeo FDO Provider for ArcSDE API Reference [url=http://]http://fdo.osgeo.org/files/fdo/docs/ArcSDE/index.html[/url]
2. Везде , где я посмотрел явно указано на согласованность с версией arcgis 9.i , не ясно по версии 10.i.