我已经使用Manifold导出了一个ESRI shapefile到SQL Server2008,它给了我一个类型为Geometry的列"Shape“。流形.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是错误的?如果是这种情况,我怎么才能得到正确的结果呢?
发布于 2009-11-12 00:12:48
问题解决:参数的正确顺序是geometry::Point(long,lat,SRID)。我以为会很晚,很长,SRID ..
https://stackoverflow.com/questions/1715802
复制相似问题