使用我的数据库时多边形不起作用,但在 sql 服务器地理中与 master 一起工作正常
polygon does'nt work when using my database but works fine with master in sql server geography
STPolyFromText 函数在使用 master 时可以很好地处理顺时针和逆时针顺序的点,但在我使用 myDB 时不能在逆时针模式下工作。这是我的代码:
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 2008 (100) 更改为 SQL Server 2012 (110)。
STPolyFromText 函数在使用 master 时可以很好地处理顺时针和逆时针顺序的点,但在我使用 myDB 时不能在逆时针模式下工作。这是我的代码:
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 2008 (100) 更改为 SQL Server 2012 (110)。