O documento discute geodatabases e armazenamento de dados geográficos. Apresenta conceitos como dados vetoriais, banco de dados geográficos, tipos espaciais em SQL Server e PostGIS e demonstra funções como buffer, interseção e distância entre geometrias.
7. AGENDA
• Geoprocessamento (Fundamentos)
• Dados Vetoriais
• Banco de dados geográficos
• DEMO SQL SERVER SPATIAL (demonstração de funções)
• DEMO C#
• PostGIS
• Modelando o banco de dados com ArgoCaseGeo
22. DATUM E SRID (EPSG)
• Refere-se ao modelo matemático teórico da
representação da superfície da Terra ao nível do mar
utilizado pelos cartógrafos numa dada carta
ou mapa.
• A importância do datum prende-se à necessidade
de projetar um corpo curvo e a 3 dimensões (a
Terra), num plano a duas dimensões mantendo no
entanto os cruzamentos em ângulos retos dos
meridianos e paralelos (o mapa)
31. CURIOSIDADE 1
• Qual Datum é utilizado nos GPS do celular?
• WGS84 também conhecido como WGS 1984, EPSG:4326 e foi
criado pelo Sistema de defesa dos EUA.
• Ele foi criado devido à necessidade para prover de forma
correta, informações para os aparelhos de GPS.
32. REPRESENTAÇÃO VETORIAL
• SHAPEFILE criado pela empresa ESRI
• SHP
• DBF
• SHX
• Keyhole Markup Language (KML) – baseado no XML
• GeoJSON – baseaado em JSON
33. BANCO DE DADOS GEOGRÁFICOS
• O Banco de Dados Geográficos (BDG), suporta
feições geométricas em suas tabelas.
• Este tipo de base com geometria oferece a
possibilidade de análise e consultas espaciais.
• É possível calcular nestes casos, por exemplo, áreas,
distâncias e centróides, além de realizar a geração
de buffers e outras operações entre as geometrias.
34.
35. BDS QUE SUPORTAM GEO
• SpatiaLite extende Sqlite com tipos espaciais,
funções e utilidades.
• IBM DB2 Spatial Extender
• Oracle Spatial
• Microsoft SQL Server Spatial Data
36. BD QUE SUPORTAM GEO
• PostgreSQL com extensão PostGIS
• MySQL
• Neo4j
• MongoDB - Guarda as informações utilizando
GeoJSON
location: {
type: "Point",
coordinates: [-73.856077, 40.848447]
37.
38. CREATE TABLE Estados
(
Id int NOT NULL PRIMARY KEY,
UF char(2) NOT NULL,
Latitude float(53) NOT NULL,
Longitude float(53) NOT NULL
)
39.
40. CREATE TABLE Aluno
(
Id int NOT NULL PRIMARY KEY,
DataNascimento varchar(max) NOT NULL,
Nota varchar(max) NOT NULL,
)
41.
42. CREATE TABLE Estados
(
Id int NOT NULL PRIMARY KEY,
UF char(2) NOT NULL,
geom geography NOT NULL
)
CREATE SPATIAL INDEX [SPATIAL_Estados] ON [dbo].[Estados]
(
[geom]
)USING GEOMETRY_GRID
WITH (BOUNDING_BOX =(0, 0, 1, 1), GRIDS =(LEVEL_1 =
MEDIUM,LEVEL_2 = MEDIUM,LEVEL_3 = MEDIUM,LEVEL_4 = MEDIUM),
CELLS_PER_OBJECT = 16
54. DISTÂNCIA
DECLARE @Paris geography = geography::Point(48.87, 2.33,
4326);
DECLARE @Berlin geography = geography::Point(52.52, 13.4,
4326);
SELECT @Paris.STDistance(@Berlin);
DECLARE @g geography
DECLARE @h geography
SELECT @g = geom from Brasil where UF = 'RN'
SELECT @h = geom from Brasil where UF = 'RJ'
select @g.STDistance(@h)/1000
55. DISTÂNCIA
DECLARE @g geography = 'POINT(-46.646313 -23.536483)';
SELECT top (10) geom.STDistance(@g), name FROM Aeroportos
ORDER BY geom.STDistance(@g);
57. UNION
DECLARE @g geography
DECLARE @h geography
SELECT @g = geom from Brasil where UF = 'RN'
SELECT @h = geom from Brasil where UF = 'RJ'
select @g.STUnion(@h)
59. DE UM ARQUIVO GML
DECLARE @g geometry;
DECLARE @x xml;
SET @x = '<LineString xmlns="http://www.opengis.net/gml">
<posList>100 100 20 180 180 180</posList> </LineString>';
SET @g = geometry::GeomFromGml(@x, 0);
SELECT @g;
60. FORÇAR UM SRID
ALTER TABLE dbo.customer
ADD CONSTRAINT enforce_customerlocation_srid4199
CHECK (CustomerLocation.STSrid = 4199);
61. FORÇAR UM TIPO DE GEOMETRIA
ALTER TABLE dbo.customer
ADD CONSTRAINT enforce_customerlocation_point
CHECK (CustomerLocation.STGeometryType() = 'POINT');
62. Se duas instâncias espaciais não tiverem o mesmo SRID, os
resultados de um método de Tipo de Dados geometry ou
geography usado nas instâncias retornará NULL.
@geom1.STIntersects(@geom2) = 1;
63. CURIOSIDADE 2
• Todas as Funções começam com ST
• OGC Métodos: Métodos Espaciais tem que seguir as
especificações que foram definidas pelo Open
Geospatial Consortium e tem como prefixo ST (uma
abreviação para spatiotemporal)