Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Qwe.Qwe1 Member Откуда: Сообщений: 263 |
Добры день! Подскажите, как можно переместить объект в БД типа SP_GEOMETRY (полигон) так, чтобы его центр был в нужных координатах? То есть, у меня сейчас в таблице точечные объекты, а нужно, чтобы вместо них были полигоны (cам полигон лежит в другой таблице как образец). SQL Server 2008. Спасибо. |
21 ноя 14, 11:20 [16883750] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
В MSSQL нет объектов "типа SP_GEOMETRY" Есть тип данных geometry.
С данными типа geometry работают соответствующими документированными методами http://msdn.microsoft.com/en-us/library/bb964711(v=sql.100).aspx |
||||
21 ноя 14, 11:29 [16883823] Ответить | Цитировать Сообщить модератору |
Qwe.Qwe1 Member Откуда: Сообщений: 263 |
Так а каким документированным методом можно переместить объект? |
21 ноя 14, 12:01 [16884188] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Еще раз. У вас не объект, у вас данные |
||
21 ноя 14, 12:08 [16884283] Ответить | Цитировать Сообщить модератору |
Qwe.Qwe1 Member Откуда: Сообщений: 263 |
Хорошо, как переместить данные типа geometry..? |
21 ноя 14, 13:04 [16884797] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume п.4 и п.6 |
||
21 ноя 14, 13:06 [16884814] Ответить | Цитировать Сообщить модератору |
Бурков 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] Ответить | Цитировать Сообщить модератору |
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 | ![]() |