Функция STPolyFromText отлично работает с часовым и временным порядком точек при использовании мастера, но не работает в режиме противодействия -поле, когда я использую myDB. Вот мой код:polygon does'nt работает при использовании моей базы данных, но отлично работает с мастером в географии сервера sql
use MyDB
go
DECLARE @polygon geography
DECLARE @clock_wise nvarchar(500)='POLYGON((35.2515 46.9657,35.2874 46.9784,35.3162 46.9466,35.3431 46.9817,35.3506 47.0122,35.3166 47.0324,35.3367 47.0541,35.3256 47.0768,35.3004 47.0673,35.2969 47.0479,35.2747 47.0527,35.2516 47.0521,35.2506 47.0146,35.2515 46.9657))'
DECLARE @anti_clock_wise nvarchar(500)='POLYGON((35.708 51.7622,35.6211 51.1277,35.4761 51.3704,35.7952 51.2544,35.5078 51.4838,35.5559 51.6161,35.7448 51.4571,35.8509 51.6945,35.8362 51.3961,35.708 51.7622))'
SET @polygon = geography::STPolyFromText(@anti_clock_wise,4326)
select @polygon
Определить «не работает» - вы получаете сообщение об ошибке? Если да, то *, что * говорит ошибка? Какую версию SQL Server вы используете и какой уровень совместимости используется для вашей базы данных? –
Версия Sql Server - 2012. Я получаю эту ошибку: Msg 6522, уровень 16, состояние 1, строка 6 Ошибка .NET Framework при выполнении пользовательской подпрограммы или агрегированной «географии»: Система. ArgumentException: 24200: указанный вход не представляет собой действительный экземпляр географии. Используйте MakeValid для преобразования экземпляра в действительный экземпляр. Обратите внимание, что MakeValid может привести к тому, что точки пространственного экземпляра слегка сдвинутся. –
Это именно сообщение об ошибке, которое вы получите, если * база данных * работает в режиме совместимости SQL Server 2008. –