【发布时间】:2011-12-23 14:52:18
【问题描述】:
给定一个代表西南点的纬度/经度和代表东北点的纬度/经度 当我创建一个多边形 那么它应该可以在 SQL 2008 中工作...
这是我的 SQL:
DECLARE @minX varchar(10) = N'49.871159'
DECLARE @maxX varchar(10) = N'55.811741'
DECLARE @minY varchar(10) = N'-6.379880'
DECLARE @maxY varchar(10) = N'1.768960'
DECLARE @boundingRect varchar(150)
SET @boundingRect = 'POLYGON((' + @minX + ' ' + @minY + ', ' + @minX + ' ' + @maxY + ', ' + @maxX + ' ' + @maxY + ', ' + @maxX + ' ' + @minY + ', ' + @minX + ' ' + @minY + '))'
SELECT GEOGRAPHY::Parse(@boundingRect)
但它给了我以下错误: “指定的输入不代表有效的地理实例,因为它超出了一个半球。”
谁能告诉我我做错了什么?我的示例中的边界矩形应该大致覆盖英国,我的假设是我需要指定 5 个点 - 左下角、左上角、右上角、右下角和再次回到左下角。
【问题讨论】:
-
不输入这个作为答案,因为我没有在 SQLServer 中使用地理的经验,但错误似乎是不言自明的:您包含了来自多个半球的坐标,SQLServer 地理可以应付不过来。如果您只打算处理英国地理,一个简单的答案是在所有坐标上添加 10 度经度。
标签: sql sql-server polygon spatial geography