Пространственные типы данных SQL Server - PullRequest
0 голосов
/ 11 ноября 2009

Я экспортировал шейп-файл ESRI в SQL Server 2008 с использованием Manifold, который дает мне столбец «Shape» типа Geometry. Файл .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 Ответ

2 голосов
/ 11 ноября 2009

Проблема решена: правильный порядок аргументов geometry::Point(long,lat,SRID). Я думал, что это будет широчайший, длинный, SRID ..

...