SQL Server空间数据类型

时间:2009-11-11 15:11:03

标签: sql-server spatial esri shapefile manifold

我已使用Manifold将ESRI shapefile导出到SQL Server 2008,它为我提供了类型为Geometry的列“Shape”。 Manifold .prj文件看起来像这样

GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],
PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

所以我假设SRID是4326?但是,当我运行此查询时,我希望它返回美国,但我没有得到任何行:

DECLARE @lat float
DECLARE @long float
DECLARE @g geometry

SET @lat = 40.0
SET @long = -90.0
SET @g = geometry::Point(@lat,@long,4326);

SELECT * FROM Countries WHERE Shape.STContains(@g) = 1;

我测试了其他一些有效的查询,所以我猜SRID是错误的?如果是这种情况,我该如何获得正确的?

1 个答案:

答案 0 :(得分:2)

问题解决了:参数的正确顺序是geometry::Point(long,lat,SRID)。我虽然它会是lat,long,SRID ..