Pergunta

Eu exportei um shapfile de ESRI para o SQL Server 2008 usando o coletor, o que me dá uma "forma" da coluna do tipo Geometry. O arquivo .prj do coletor

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

Então, presumo que o SRID seja 4326? No entanto, quando executo esta consulta, espero que ela retorne Estados Unidos, mas não recebo nenhuma linha:

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;

Eu testei algumas outras consultas que funcionam, então acho que o SRID está errado? Se deve ser esse caso, como faço para obter o correto?

Foi útil?

Solução

Problema resolvido: a ordem correta dos argumentos é geometry::Point(long,lat,SRID). Eu pensei que seria Lat, Long, Srid ..

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top