Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL Spatial (geometry) - переместить объект  [new]
Qwe.Qwe1
Member

Откуда:
Сообщений: 263
Добры день! Подскажите, как можно переместить объект в БД типа SP_GEOMETRY (полигон) так, чтобы его центр был в нужных координатах? То есть, у меня сейчас в таблице точечные объекты, а нужно, чтобы вместо них были полигоны (cам полигон лежит в другой таблице как образец). SQL Server 2008. Спасибо.
21 ноя 14, 11:20    [16883750]     Ответить | Цитировать Сообщить модератору
 Re: SQL Spatial (geometry) - переместить объект  [new]
Glory
Member

Откуда:
Сообщений: 104751
Qwe.Qwe1
переместить объект в БД типа SP_GEOMETRY

В MSSQL нет объектов "типа SP_GEOMETRY"
Есть тип данных geometry.

Qwe.Qwe1
То есть, у меня сейчас в таблице точечные объекты, а нужно, чтобы вместо них были полигоны (cам полигон лежит в другой таблице как образец)

С данными типа geometry работают соответствующими документированными методами
http://msdn.microsoft.com/en-us/library/bb964711(v=sql.100).aspx
21 ноя 14, 11:29    [16883823]     Ответить | Цитировать Сообщить модератору
 Re: SQL Spatial (geometry) - переместить объект  [new]
Qwe.Qwe1
Member

Откуда:
Сообщений: 263
Так а каким документированным методом можно переместить объект?
21 ноя 14, 12:01    [16884188]     Ответить | Цитировать Сообщить модератору
 Re: SQL Spatial (geometry) - переместить объект  [new]
Glory
Member

Откуда:
Сообщений: 104751
Qwe.Qwe1
Так а каким документированным методом можно переместить объект?

Еще раз. У вас не объект, у вас данные
21 ноя 14, 12:08    [16884283]     Ответить | Цитировать Сообщить модератору
 Re: SQL Spatial (geometry) - переместить объект  [new]
Qwe.Qwe1
Member

Откуда:
Сообщений: 263
Хорошо, как переместить данные типа geometry..?
21 ноя 14, 13:04    [16884797]     Ответить | Цитировать Сообщить модератору
 Re: SQL Spatial (geometry) - переместить объект  [new]
Glory
Member

Откуда:
Сообщений: 104751
Qwe.Qwe1
Хорошо, как переместить данные типа geometry..?

https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume п.4 и п.6
21 ноя 14, 13:06    [16884814]     Ответить | Цитировать Сообщить модератору
 Re: SQL Spatial (geometry) - переместить объект  [new]
Бурков
Member

Откуда: Москва
Сообщений: 305
Оборачиваешь точки с помощью STConvexHull, а потом с помощью STCentroid определяешь нужный сдвиг и сдвигаешь STMove
http://spatialdbadvisor.com/sql_server_blog/264/function-to-move-a-geometry-object-in-sql-server-spatial

Такой ответ устроит?
26 ноя 14, 15:31    [16908727]     Ответить | Цитировать Сообщить модератору
 Re: SQL Spatial (geometry) - переместить объект  [new]
Qwe.Qwe1
Member

Откуда:
Сообщений: 263
1. Смотрел этот пример, но у меня так и не получилось его прикрутить: Invalid object name 'dbo.Tokenizer'. Может из-за MSSQL 2008? 2. Про STConvexHull не очень понял - зачем? У меня мультиполигоны (иногда с вырезами) - в каждом точек около 300. Эти точки надо переместить на нужную дельту. Пробовал в цикле менять каждую точку, но не понял как узнать, к какому из полигонов в составе мультиполигона принадлежит точка. Да и медленно как-то выходило все это.
3. В итоге сделали так: получаем строку с помощью STAsText, потом, используя C# и регулярные выражения (пришлось прикручивать dll на сервере), увеличиваем значения координат и строим новый объект типа geometry.
27 ноя 14, 11:58    [16912630]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить