Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O tipo geographyde dados espaciais geography representa dados em um sistema de coordenadas de terra redonda. Esse tipo é implementado como um tipo de dados CLR (Common Language Runtime) do .NET no SQL Server. O tipo de dados do SQL Server geography armazena dados elipsoidais (terra redonda), como coordenadas de latitude e longitude gps.
O geography tipo é predefinido e está disponível em cada banco de dados. Você pode criar colunas de tabela do tipo geography e operar em geography dados da mesma maneira que usaria outros tipos fornecidos pelo sistema.
Criando ou construindo uma nova instância de geografia
Criando uma nova instância de geografia a partir de uma instância existente
O geography tipo de dados fornece vários métodos internos que você pode usar para criar novas geography instâncias com base em instâncias existentes.
Para criar um buffer em torno de uma geografia
STBuffer (Tipo de Dados Geografia)
Para criar um buffer em torno de uma área geográfica que permita uma tolerância
BufferWithTolerance (tipo de dados geography)
Para criar uma geografia a partir da interseção de duas instâncias de geografia
STIntersection (tipo de dados geografia)
Para criar uma geografia a partir da união de duas instâncias de geografia
STUnion (tipo de dados geography)
Para criar uma geografia a partir dos pontos em que uma geografia não se sobrepõe a outra
STDifference (tipo de dados geography)
Construindo uma instância de geografia a partir da entrada de texto Well-Known
O geography tipo de dados fornece vários métodos internos que geram uma geografia da representação WKT do Open Geospatial Consortium (OGC). O padrão WKT é uma cadeia de caracteres de texto que permite que os dados de geografia sejam trocados em formato textual.
Para construir qualquer tipo de instância de geografia a partir da entrada WKT
STGeomFromText (Geography Data Type)
Análise (tipo de dados geografia)
Para construir uma instância de ponto geography a partir da entrada WKT
STPointFromText (tipo de dados geography)
Para construir uma instância de MultiPoint geography a partir da entrada WKT
STMPointFromText (tipo de dados geography)
Para construir uma instância de geography LineString a partir da entrada WKT
STLineFromText (tipo de dados geography)
Para construir uma instância de MultiLineString geography a partir da entrada WKT
STMLineFromText (tipo de dados geography)
Para construir uma instância de Polígono geográfico a partir da entrada WKT
STPolyFromText (Data Type de geografia)
Para construir uma instância de MultiPolygon geography a partir da entrada WKT
STMPolyFromText (tipo de dados geography)
Para construir uma instância geography GeometryCollection da entrada WKT
STGeomCollFromText (Tipo de dados de geografia)
Construir uma instância de geografia a partir da entrada binária de Well-Known
WKB é um formato binário especificado pelo OGC que permite que os dados sejam trocados Geography entre um aplicativo cliente e um banco de dados SQL. As seguintes funções aceitam entrada WKB para construir instâncias de geografia:
Para construir qualquer tipo de instância de geografia a partir da entrada WKB
STGeomFromWKB (Geografia Tipo de Dados)
Para construir uma instância de ponto geográfico a partir da entrada WKB
STPointFromWKB (tipo de dados geography)
Para criar uma instância de geography MultiPoint a partir da entrada de WKB
STMPointFromWKB (tipo de dados geography)
Para construir uma instância de geography LineString a partir da entrada WKB
STLineFromWKB (tipo de dados de geografia)
Para construir uma instância de MultiLineString geography a partir da entrada WKB
STMLineFromWKB (tipo de dados geography)
Para construir uma instância de polígono de geografia a partir da entrada WKB
STPolyFromWKB (tipo de dados geografia)
Para construir uma instância de geography MultiPolygon a partir da entrada WKB
STMPolyFromWKB (Tipo de Dados de Geografia)
Para construir uma instância geography GeometryCollection a partir da entrada WKB
STGeomCollFromWKB (tipo de dado geográfico)STGeomCollFromWKB (tipo de dado geográfico)
Construindo uma instância de geografia com base na entrada de texto GML
O geography tipo de dados fornece um método que gera uma geography instância do GML, uma representação XML de uma geography instância. O SQL Server dá suporte a um subconjunto de GML.
Para obter mais informações sobre a Linguagem de Marcação de Geografia, consulte a Especificação do OGC: Especificações do OGC, Linguagem de Marcação De Geografia.
Para construir qualquer tipo de instância de geografia a partir da entrada GML
GeomFromGML (tipo de dados geography)
Retornando Well-Known texto e Well-Known binário de uma instância de geografia
Você pode usar os seguintes métodos para retornar o formato WKT ou WKB de uma geography instância:
Para retornar a representação WKT de uma instância de geografia
STAsText (tipo de dados de geografia)
ToString (tipo de dados "geography")
Para retornar a representação WKT de uma instância de geografia, incluindo quaisquer valores de Z e M
AsTextZM (tipo de dados geography)
Para retornar a representação WKB de uma instância de geografia
STAsBinary (tipo de dados Geography)
Para retornar uma representação GML de uma instância de geografia
AsGml (Tipo de Dados de Geografia)
Consultando as propriedades e comportamentos de instâncias de geografia
Todas as geography instâncias têm várias propriedades que podem ser recuperadas por meio de métodos que o SQL Server fornece. Os tópicos a seguir definem as propriedades e os comportamentos dos tipos de geografia e os métodos para consultar cada um deles.
Informações sobre validade, tipo de instância e coleção de geometria
Depois que uma geography instância é construída, você pode usar os métodos a seguir para retornar o tipo de instância ou, se for uma GeometryCollection instância, retornar uma instância específica geography .
Para retornar o tipo de instância de uma geografia
STGeometryType (tipo de dados geography)
Para determinar se uma geografia é um determinado tipo de instância
InstanceOf (tipo de dados geography)
Para determinar se uma instância de geografia está bem formada em relação ao seu tipo
STNumGeometries (tipo de dados geography)
Para retornar uma geografia específica em uma instância geometryCollection
STGeometryN (tipo de dados geografia)STGeometryN (tipo de dados geografia)
Número de pontos
Todas as instâncias não geography vazias são compostas por pontos. Esses pontos representam as coordenadas de latitude e longitude da Terra na qual as geography instâncias são desenhadas. O tipo geography de dados fornece vários métodos internos para consultar os pontos de uma instância.
Para retornar o número de pontos que compõem uma instância
STNumPoints (tipo de dados geography)
Para retornar um ponto específico em uma instância
STPointN (Tipo de Dados Geometria)
Para retornar o ponto inicial de uma instância
STStartPoint (tipo de dados geography)
Para retornar o ponto final de uma instância
STEndpoint (tipo de dados geography)
Dimensão
Uma instância não geography úmida pode ser 0, 1 ou 2 dimensional. Instâncias unidimensionais geography , como Point e MultiPoint, não têm comprimento ou área. Objetos unidimensionais, como LineString, CircularString, CompoundCurvee MultiLineString, têm comprimento. Instâncias bidimensionais, como Polygon, CurvePolygon, e MultiPolygon, têm área e comprimento. Instâncias vazias relatam uma dimensão de -1 e um GeometryCollection relatório da dimensão máxima de seu conteúdo.
Para retornar a dimensão de uma instância
STDimension (tipo de dados Geography)
Para retornar o comprimento de uma instância
STLength (tipo de dados geography)
Para retornar a área de uma instância
STArea (tipo de dados geography)
Vazio
Uma instância vaziageography não tem nenhum ponto. O comprimento das instâncias vazias LineString, CircularString, CompoundCurve e MultiLineString é 0. A área de Polygon, CurvePolygon e MultiPolygon instâncias vazias é 0.
Para determinar se uma instância está vazia
STIsEmpty (Tipo de Dados Geography)
Encerramento
Uma instância fechadageography é uma figura cujos pontos de partida e pontos de extremidade são os mesmos.
Polygon as instâncias são consideradas fechadas.
Point instâncias não estão fechadas.
Um anel é uma instância simples e fechada LineString .
Para determinar se uma instância está fechada
STIsClosed (Tipo de Dados Geography)
Para retornar o número de anéis em uma instância de Polígono
NumRings (tipo de dados geography)
Para retornar um anel especificado de uma instância de geografia
RingN (tipo de dados geography)
SRID (ID de referência espacial)
A SRID (ID de referência espacial) é um identificador que especifica em qual sistema de coordenadas elipsoidais a geography instância está representada. Duas geography instâncias com SRIDs diferentes não podem ser comparadas.
Para definir ou retornar o SRID de uma instância
STSrid (tipo de dados de geografia)
Essa propriedade pode ser modificada.
Determinando relações entre instâncias de geografia
O geography tipo de dados fornece muitos métodos internos que você pode usar para determinar relações entre duas geography instâncias.
Para determinar se duas instâncias compõem o mesmo conjunto de pontos
STEquals (tipo de dados geometry)
Para determinar se duas instâncias são disjuntas
STDisjoint (tipo de dados geometry)
Para determinar se dois objetos intersectam
STIntersects (tipo de dados geometry)
Para determinar o ponto ou os pontos em que duas instâncias se cruzam
STIntersection (tipo de dados Geography)
Para determinar a distância mais curta entre pontos em duas instâncias de geografia
STDistance (tipo de dados geometria)
Para determinar a diferença de pontos entre duas instâncias de geografia
STDifference (tipo de dados geography)
Para derivar a diferença simétrica, ou pontos exclusivos, de uma instância geográfica em comparação com outra instância
STSymDifference (tipo de dados geografia)
instâncias de geografia devem usar SRID com suporte
O SQL Server dá suporte a SRIDs com base nos padrões EPSG. Para realizar cálculos ou usar métodos com dados espaciais de geografia, deve-se usar um SRID com suporte do SQL Server para as instâncias de geography. O SRID deve corresponder a um dos SRIDs exibidos na visualização de catálogo sys.spatial_reference_systems. Conforme mencionado anteriormente, quando você executa cálculos em seus dados espaciais usando o geography tipo de dados, seus resultados dependerão de qual elipsoide foi usado na criação de seus dados, já que cada elipsóide recebe um SRID (identificador de referência espacial) específico.
O SQL Server usa o SRID padrão de 4326, que corresponde ao sistema de referência espacial WGS 84, ao aplicar métodos em instâncias geography. Se você usar dados de um sistema de referência espacial diferente do WGS 84 (ou SRID 4326), será necessário determinar o SRID específico para seus dados espaciais de geografia.
Exemplos
Os exemplos a seguir mostram como adicionar e consultar dados de geografia.
O primeiro exemplo cria uma tabela com uma coluna de identidade e uma
geographycolunaGeogCol1. Uma terceira coluna renderiza ageographycoluna em sua representação do OGC (Open Geospatial Consortium) Well-Known Text (WKT) e usa o métodoSTAsText(). Em seguida, duas linhas são inseridas: uma linha contém uma instância deLineStringgeography, e uma linha contém uma instância dePolygon.IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL DROP TABLE dbo.SpatialTable; GO CREATE TABLE SpatialTable ( id int IDENTITY (1,1), GeogCol1 geography, GeogCol2 AS GeogCol1.STAsText() ); GO INSERT INTO SpatialTable (GeogCol1) VALUES (geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326)); INSERT INTO SpatialTable (GeogCol1) VALUES (geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326)); GOO segundo exemplo usa o método
STIntersection()para retornar os pontos onde as duas instânciasgeographyinseridas anteriormente se intersectam.DECLARE @geog1 geography; DECLARE @geog2 geography; DECLARE @result geography; SELECT @geog1 = GeogCol1 FROM SpatialTable WHERE id = 1; SELECT @geog2 = GeogCol1 FROM SpatialTable WHERE id = 2; SELECT @result = @geog1.STIntersection(@geog2); SELECT @result.STAsText();