Este documento descreve como criar uma API minimal para serviços de geolocalização utilizando SQL e C#. Resume-se em 3 frases:
1) Apresenta como armazenar dados geográficos como pontos e polígonos no banco de dados SQL Server utilizando os tipos de dados geometry e geography.
2) Detalha como construir uma API minimal em .NET para realizar consultas espaciais utilizando métodos como STIntersects para buscar pontos dentro de polígonos.
3) Fornece exemplos de consultas SQL para localizar lugares dentro
O documento descreve como criar uma API de geolocalização minimal usando SQL e C# para armazenar e consultar dados geoespaciais. A API usa os tipos de dados geography e geometry do SQL para armazenar pontos e polígonos e métodos como STIntersects para consultas espaciais. A API é implementada usando a abordagem de API minimal do .NET sem controllers, com endpoints no Program.cs e acesso aos dados via Dapper.
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.
Este documento fornece um guia sobre programação espacial e ferramentas para trabalhar com dados geoespaciais, incluindo bancos de dados espaciais como PostgreSQL e PostGIS, bibliotecas como GeoRuby, e clientes como OpenLayers. Ele também contém exemplos de código Ruby para armazenar e consultar dados espaciais.
Adding where to your ruby apps lt - (q con)Roberto Pepato
O documento discute a adição de funcionalidades geoespaciais em aplicações Ruby usando gems como Geocoder e MongoDB. Ele explica como geocodificar e fazer geolocalização reversa de modelos, além de apresentar DSLs para consultas espaciais e exemplos de como resolver problemas reais usando análise espacial.
Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...Narcélio de Sá
Recentemente, cunhou-se o termo “Inteligência Geográfica” como o uso da perspectiva geográfica nas tomadas de decisão pelas empresas, públicas e privadas. Nesta palestra demonstraremos a utilização da extensão espacial PostGIS para a gestão de cadastro de informações comerciais e técnicas de redes de água e esgoto numa base de dados georreferenciada. E como o PostGIS vem se consolidando como uma excelente solução de inteligência geográfica para apoio à tomada de decisões na Companhia de Água e Esgoto do Ceará – CAGECE.
O uso do PostgreSQL e PostGIS no cadastro geocodificado de acidentes de trânsitoGeorge Silva
1) O documento descreve um sistema de informações geográficas desenvolvido para cadastro de acidentes de trânsito utilizando o PostGIS;
2) Foi implementado um algoritmo de geocodificação capaz de localizar endereços com três métodos e automatizado via trigger;
3) Testes com 500 mil registros gerados aleatoriamente tiveram uma taxa média de acerto de 98% na geocodificação.
O documento discute as vantagens de um sistema de gestão municipal integrado com geoprocessamento e tecnologias abertas em relação às soluções tradicionais. Ele destaca que o sistema Prefeitura Livre implementa conceitos modernos como geoprocessamento corporativo, cadastro técnico multifinalitário e interoperabilidade através de padrões abertos. Além disso, o sistema utiliza tecnologias como software livre, banco de dados PostGIS e framework CakePHP para fornecer uma solução inovadora e de baixo custo para as pre
O documento descreve o que é o PostGIS, que é uma extensão espacial gratuita e de código aberto para o banco de dados PostgreSQL que permite armazenar e analisar dados geoespaciais. O PostGIS adiciona suporte espacial ao PostgreSQL através de tipos de dados, índices e funções espaciais que seguem padrões abertos para interoperabilidade.
O documento descreve como criar uma API de geolocalização minimal usando SQL e C# para armazenar e consultar dados geoespaciais. A API usa os tipos de dados geography e geometry do SQL para armazenar pontos e polígonos e métodos como STIntersects para consultas espaciais. A API é implementada usando a abordagem de API minimal do .NET sem controllers, com endpoints no Program.cs e acesso aos dados via Dapper.
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.
Este documento fornece um guia sobre programação espacial e ferramentas para trabalhar com dados geoespaciais, incluindo bancos de dados espaciais como PostgreSQL e PostGIS, bibliotecas como GeoRuby, e clientes como OpenLayers. Ele também contém exemplos de código Ruby para armazenar e consultar dados espaciais.
Adding where to your ruby apps lt - (q con)Roberto Pepato
O documento discute a adição de funcionalidades geoespaciais em aplicações Ruby usando gems como Geocoder e MongoDB. Ele explica como geocodificar e fazer geolocalização reversa de modelos, além de apresentar DSLs para consultas espaciais e exemplos de como resolver problemas reais usando análise espacial.
Utilização do PostGIS para aplicações de inteligência espacial no setor de Sa...Narcélio de Sá
Recentemente, cunhou-se o termo “Inteligência Geográfica” como o uso da perspectiva geográfica nas tomadas de decisão pelas empresas, públicas e privadas. Nesta palestra demonstraremos a utilização da extensão espacial PostGIS para a gestão de cadastro de informações comerciais e técnicas de redes de água e esgoto numa base de dados georreferenciada. E como o PostGIS vem se consolidando como uma excelente solução de inteligência geográfica para apoio à tomada de decisões na Companhia de Água e Esgoto do Ceará – CAGECE.
O uso do PostgreSQL e PostGIS no cadastro geocodificado de acidentes de trânsitoGeorge Silva
1) O documento descreve um sistema de informações geográficas desenvolvido para cadastro de acidentes de trânsito utilizando o PostGIS;
2) Foi implementado um algoritmo de geocodificação capaz de localizar endereços com três métodos e automatizado via trigger;
3) Testes com 500 mil registros gerados aleatoriamente tiveram uma taxa média de acerto de 98% na geocodificação.
O documento discute as vantagens de um sistema de gestão municipal integrado com geoprocessamento e tecnologias abertas em relação às soluções tradicionais. Ele destaca que o sistema Prefeitura Livre implementa conceitos modernos como geoprocessamento corporativo, cadastro técnico multifinalitário e interoperabilidade através de padrões abertos. Além disso, o sistema utiliza tecnologias como software livre, banco de dados PostGIS e framework CakePHP para fornecer uma solução inovadora e de baixo custo para as pre
O documento descreve o que é o PostGIS, que é uma extensão espacial gratuita e de código aberto para o banco de dados PostgreSQL que permite armazenar e analisar dados geoespaciais. O PostGIS adiciona suporte espacial ao PostgreSQL através de tipos de dados, índices e funções espaciais que seguem padrões abertos para interoperabilidade.
O documento discute o desenvolvimento de um sistema de navegação autônoma de precisão utilizando um banco de dados georreferenciado com alta precisão, integrado a um sistema de informações geográficas (SIG) e referenciado por GPS. O objetivo é permitir a navegação terrestre, aérea e aquática com base nos dados do banco e reduzir a dependência do GPS.
QGIS - inicio (Sistemas de Informação Geográfica SIG)EuricoPortugal
Princípios de informação cartográfica e geográfica.
Definição dos SIG, os diferentes tipos de dados Geográficos, vantagens e desvantagens da sua utilização
Utilizando GeoTools para Manipulação de Dados Geográficos - Apresentaçãopcollares
A partir da necessidade de controle de dados georreferenciados construir-se-á um aplicativo para atender as funcionalidades de um sistema SIG para Java desktop, ou seja, um aplicativo para leitura e manipulação de dados geográficos. Será possível o acesso a shapefiles ou a bancos de dados, pois o aplicativo oferece essas duas funcionalidades. O aplicativo desenvolvido disponibiliza um conjunto de ferramentas que auxilia na manipulação dos mapas. De acordo com os objetivos do atual projeto, conclui-se que o aplicativo será de grande utilidade na manipulação de dados geográficos.
O documento fornece uma introdução sobre Sistemas de Informação Geográfica (SIG), explicando conceitos básicos como georreferenciamento, modelos vetoriais e raster, projeções cartográficas, armazenamento de dados espaciais e protocolos de acesso como WMS e WFS.
Desenvolvendo aplicações geográficas com Software LivreFernando Quadro
O documento apresenta uma introdução sobre Sistemas de Informação Geográfica (SIG) e suas aplicações, discute padrões abertos para dados espaciais, ferramentas de desenvolvimento SIG de código aberto como servidores de mapas, desktop GIS e aplicações web GIS.
1. Sistemas de informação geográfica permitem criar consultas interativas, analisar dados espaciais e editar mapas, apresentando resultados visualmente.
2. Camadas de dados espaciais podem incluir hidrografia, rodovias, zonas agrícolas, setores municipais e redes de serviços.
3. Objetos espaciais podem ser representados geometricamente como pontos, linhas, polígonos e coleções mistas.
Utilizando GeoTools para Manipulação de Dados Geográficospcollares
O documento discute o uso da biblioteca Geotools para manipulação de dados geográficos em Java, incluindo shapefiles, PostGIS e JAI. Ele apresenta um exemplo de aplicação que importa dados de shapefiles e banco de dados para exibição em um mapa usando estilos personalizados.
Este documento apresenta um guião para um vídeo introdutório sobre análise espacial em sistemas de informação geográfica (SIG). Discute conceitos básicos de SIG e suas principais funcionalidades, incluindo input e output de dados, armazenamento e gestão de dados, e análise espacial. Demonstra estas funcionalidades usando a ferramenta ArcGIS online.
Geografia das coisas - Internet das coisas com enfoque em localizaçãoRodrigo Ferreira
Apresentação de Geografia das coisas, que é uma sub-área da internet das coisas que foca no desenvolvimento de tecnologias que se utilizam da localização geográfica das pessoas e dos estabelecimentos, dispositivos etc para criar uma interação com o ambiente, o mais interessante possível em cada momento, garantindo também uma melhor experiência e melhor entendimento de cada lugar.
PostGIS - Conhecendo o Elefante GeoespacialRodrigo Hjort
1. O documento descreve como configurar e usar o PostGIS, um sistema de gerenciamento de banco de dados geoespacial, com o PostgreSQL.
2. Ele explica como importar, armazenar e manipular dados espaciais como polígonos de municípios e pontos de ocorrência de mamíferos.
3. Também fornece exemplos de consultas espaciais usando funções como ST_Contains(), ST_Intersects() e ST_DWithin() para análise e cruzamento de dados georreferenciados.
Breve explanação sobre Banco de Dados espaciais, com uma breve introdução nas disciplinas de Geoprocessamento e Sistemas de Informação Geográfica. Algumas funções representadas do Banco de Dados PostGIS.
Geoprocessamento - GeoInteligência Combatendo o CrimeAnderson Medeiros
Palestra apresentada por Anderson Maciel Lima de Medeiros, consultor em Geoprocessamento, para turma do curso de formação de oficiais da Polícia Militar, sobre Geoprocessamento aplicado à segurança pública.
O documento discute o desenvolvimento de um webGIS para mapear riscos geotécnicos (deslizamentos) com interfaces e ferramentas específicas para técnicos da defesa civil, população e oficinas participativas. Serão abordadas as características da interface e ferramentas para cada usuário, incluindo mapas e ferramentas de análise para técnicos, mapas de sensibilização para a população e ferramentas colaborativas para oficinas participativas.
Localization and mapping in urban environments using mobile robotsLuciana Lopes
Este documento resume um artigo sobre mapeamento e localização em ambientes urbanos usando robôs móveis. O artigo aborda os desafios de mapeamento em grandes áreas ao ar livre e propõe algoritmos de localização e representações de mapas. Os resultados experimentais incluem mapas de quarteirões da cidade e uma análise do desempenho dos algoritmos propostos.
Desenvolvimento aplicações Android e Google MapsGDGFoz
O documento discute o desenvolvimento de aplicações móveis com geolocalização no Android, incluindo:
1) A classe LocationManager permite o acesso aos serviços de localização no dispositivo;
2) O Google Play fornece serviços de localização e autenticação através da biblioteca de serviços de cliente;
3) As APIs do Google Maps fornecem direções, dados de lugares e recursos gráficos como marcadores e polígonos.
O documento descreve um site sobre geoprocessamento e software livre chamado Processamento Digital. O site foi criado em 2009 para compartilhar dicas sobre o assunto e usa uma linguagem simples para ensinar. O logotipo do site é um satélite para representar o aprendizado proveniente do sensoriamento remoto.
Apresentação da dissertação de mestrado titulado: Clusterização e Visualização Espaço-Temporal de dados georreferenciados adaptando o algoritmo Marker Clusterer – Um caso de uso em Curitiba. UTFPR 2016
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
Mais conteúdo relacionado
Semelhante a Mvp conf 2021 - Criando uma Minimal API para serviços de Geolocalização com SQL + C# - Márcio Rogério Nizzola
O documento discute o desenvolvimento de um sistema de navegação autônoma de precisão utilizando um banco de dados georreferenciado com alta precisão, integrado a um sistema de informações geográficas (SIG) e referenciado por GPS. O objetivo é permitir a navegação terrestre, aérea e aquática com base nos dados do banco e reduzir a dependência do GPS.
QGIS - inicio (Sistemas de Informação Geográfica SIG)EuricoPortugal
Princípios de informação cartográfica e geográfica.
Definição dos SIG, os diferentes tipos de dados Geográficos, vantagens e desvantagens da sua utilização
Utilizando GeoTools para Manipulação de Dados Geográficos - Apresentaçãopcollares
A partir da necessidade de controle de dados georreferenciados construir-se-á um aplicativo para atender as funcionalidades de um sistema SIG para Java desktop, ou seja, um aplicativo para leitura e manipulação de dados geográficos. Será possível o acesso a shapefiles ou a bancos de dados, pois o aplicativo oferece essas duas funcionalidades. O aplicativo desenvolvido disponibiliza um conjunto de ferramentas que auxilia na manipulação dos mapas. De acordo com os objetivos do atual projeto, conclui-se que o aplicativo será de grande utilidade na manipulação de dados geográficos.
O documento fornece uma introdução sobre Sistemas de Informação Geográfica (SIG), explicando conceitos básicos como georreferenciamento, modelos vetoriais e raster, projeções cartográficas, armazenamento de dados espaciais e protocolos de acesso como WMS e WFS.
Desenvolvendo aplicações geográficas com Software LivreFernando Quadro
O documento apresenta uma introdução sobre Sistemas de Informação Geográfica (SIG) e suas aplicações, discute padrões abertos para dados espaciais, ferramentas de desenvolvimento SIG de código aberto como servidores de mapas, desktop GIS e aplicações web GIS.
1. Sistemas de informação geográfica permitem criar consultas interativas, analisar dados espaciais e editar mapas, apresentando resultados visualmente.
2. Camadas de dados espaciais podem incluir hidrografia, rodovias, zonas agrícolas, setores municipais e redes de serviços.
3. Objetos espaciais podem ser representados geometricamente como pontos, linhas, polígonos e coleções mistas.
Utilizando GeoTools para Manipulação de Dados Geográficospcollares
O documento discute o uso da biblioteca Geotools para manipulação de dados geográficos em Java, incluindo shapefiles, PostGIS e JAI. Ele apresenta um exemplo de aplicação que importa dados de shapefiles e banco de dados para exibição em um mapa usando estilos personalizados.
Este documento apresenta um guião para um vídeo introdutório sobre análise espacial em sistemas de informação geográfica (SIG). Discute conceitos básicos de SIG e suas principais funcionalidades, incluindo input e output de dados, armazenamento e gestão de dados, e análise espacial. Demonstra estas funcionalidades usando a ferramenta ArcGIS online.
Geografia das coisas - Internet das coisas com enfoque em localizaçãoRodrigo Ferreira
Apresentação de Geografia das coisas, que é uma sub-área da internet das coisas que foca no desenvolvimento de tecnologias que se utilizam da localização geográfica das pessoas e dos estabelecimentos, dispositivos etc para criar uma interação com o ambiente, o mais interessante possível em cada momento, garantindo também uma melhor experiência e melhor entendimento de cada lugar.
PostGIS - Conhecendo o Elefante GeoespacialRodrigo Hjort
1. O documento descreve como configurar e usar o PostGIS, um sistema de gerenciamento de banco de dados geoespacial, com o PostgreSQL.
2. Ele explica como importar, armazenar e manipular dados espaciais como polígonos de municípios e pontos de ocorrência de mamíferos.
3. Também fornece exemplos de consultas espaciais usando funções como ST_Contains(), ST_Intersects() e ST_DWithin() para análise e cruzamento de dados georreferenciados.
Breve explanação sobre Banco de Dados espaciais, com uma breve introdução nas disciplinas de Geoprocessamento e Sistemas de Informação Geográfica. Algumas funções representadas do Banco de Dados PostGIS.
Geoprocessamento - GeoInteligência Combatendo o CrimeAnderson Medeiros
Palestra apresentada por Anderson Maciel Lima de Medeiros, consultor em Geoprocessamento, para turma do curso de formação de oficiais da Polícia Militar, sobre Geoprocessamento aplicado à segurança pública.
O documento discute o desenvolvimento de um webGIS para mapear riscos geotécnicos (deslizamentos) com interfaces e ferramentas específicas para técnicos da defesa civil, população e oficinas participativas. Serão abordadas as características da interface e ferramentas para cada usuário, incluindo mapas e ferramentas de análise para técnicos, mapas de sensibilização para a população e ferramentas colaborativas para oficinas participativas.
Localization and mapping in urban environments using mobile robotsLuciana Lopes
Este documento resume um artigo sobre mapeamento e localização em ambientes urbanos usando robôs móveis. O artigo aborda os desafios de mapeamento em grandes áreas ao ar livre e propõe algoritmos de localização e representações de mapas. Os resultados experimentais incluem mapas de quarteirões da cidade e uma análise do desempenho dos algoritmos propostos.
Desenvolvimento aplicações Android e Google MapsGDGFoz
O documento discute o desenvolvimento de aplicações móveis com geolocalização no Android, incluindo:
1) A classe LocationManager permite o acesso aos serviços de localização no dispositivo;
2) O Google Play fornece serviços de localização e autenticação através da biblioteca de serviços de cliente;
3) As APIs do Google Maps fornecem direções, dados de lugares e recursos gráficos como marcadores e polígonos.
O documento descreve um site sobre geoprocessamento e software livre chamado Processamento Digital. O site foi criado em 2009 para compartilhar dicas sobre o assunto e usa uma linguagem simples para ensinar. O logotipo do site é um satélite para representar o aprendizado proveniente do sensoriamento remoto.
Apresentação da dissertação de mestrado titulado: Clusterização e Visualização Espaço-Temporal de dados georreferenciados adaptando o algoritmo Marker Clusterer – Um caso de uso em Curitiba. UTFPR 2016
Semelhante a Mvp conf 2021 - Criando uma Minimal API para serviços de Geolocalização com SQL + C# - Márcio Rogério Nizzola (20)
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
4. MINI-BIO
Márcio R.
Nizzola
Tech Lead na Dextra/CI&T, com foco em .NET.
Formado em Análise de Sistemas e MBA em Gestão de Projetos.
Professor na Etec de Itu desde 2008 atuando nos cursos técnicos da área de tecnologia, ministrando
disciplinas de programação, bancos de dados e projetos.
Desenvolvendo software desde 1992.
Membro fundador da comunidade Itu Developers.
linkedin.com/in/nizzola
@marcio_nizzola
https://www.youtube.com/c/ItuDevelopers
marcio@nizzola.com.br
www.nizzola.com.br
5. Situação Problema
Com o avanço das aplicações na atualidade, precisamos realizar buscas
identificando locais ou pessoas através do seu posicionamento geográfico.
Isto intensificou-se mais ainda com o uso da aplicações Mobile, onde todos os
celulares já dispõem de GPS embutido.
Com isto passamos a ter listas de lugares e pessoas, e precisamos identificar
pontos de interesse próximos à estas posições geográficas.
Existem API´S prontas para tratar disso, porém seu acesso em grande escala
incide em custos.
Exemplo: Apps de Hotéis, Comida, Entregas, Motoristas dentre outros.
Criar uma API de Geo Localização com .NET
6. INSIRA A TECNOLOGIA MICROSOFT AQUI
Vamos
entender o
contexto da
Geo
Localização
Click to add text
Temos o posicionamento de qualquer
ponto no mundo determinado através
de medidas em graus.
7. INSIRA A TECNOLOGIA MICROSOFT AQUI
O Sql possui dois tipos de dados que poucos conhecem:
Geometry = utilizada para dados Geométricos
Geography = utilizada para dados Geográficos, é derivada de Geometry,
derivada de Geometry, porém é adaptada para a projeção cartográfica, pois
projeção cartográfica, pois a curvatura da terra é considerada em suas
considerada em suas projeções.
Como fazer para
consultar um
determinado
ponto no mapa
utilizando a
tecnologia
disponível ?
8. INSIRA A TECNOLOGIA MICROSOFT AQUI
Os tipos de dados geometry e geography dão suporte a
16 tipos de objetos de dados espaciais
9. INSIRA A TECNOLOGIA MICROSOFT AQUI
O que é o SRID
Cada forma geométrica possui um sistema de
referência espacial associado a ela, e cada um
desses sistemas de referência possui um ID do
Sistema de Referência Espacial para informar qual
sistema será usado para interpretar cada objeto
espacial.
Um SRID comum em uso é 4326, que representa
dados espaciais usando coordenadas de longitude
e latitude na superfície da Terra conforme definido
no padrão WGS84 , que também é usado para o
Sistema de Posicionamento Global (GPS)
10. INSIRA A TECNOLOGIA MICROSOFT AQUI
Principais métodos de Geography Sql
usados
Métodos Funcionalidade
Point() Cria um ponto geo baseado nas coordenadas
Ex: POINT(-23.17996298 ,-47.302378099)
STPointFromText() Cria um ponto geo através de string
Ex: STPointFromText('POINT(-47.302378099 -23.17996298)', 4326)
STGeomFromText() Cria um objeto geo através de string
Ex: STGeomFromText('POINT(-23.2159214 -47.26859020000001)',4326)
STIntersects() Verifica se um ponto está contido em um objeto geo
MakeValid() Converte uma instância de geometry inválida num tipo válido de OGC
STIsValid() Retorna se o objeto do tipo geography é válido
STAsText ( ) Retorna em string um objeto Geo do banco de dados
STBuffer( ) Cria uma circunferência baseada na distância em metros de um ponto
.STDistance ( ) Retorna a distância linear entre dois pontos Geography
11. INSIRA A TECNOLOGIA MICROSOFT AQUI
Onde podemos obter os polígonos ?
Depois obtendo o número da localidade
Acessando o site Nominatim buscando pelo nome
Existe a base de dados do OpenStreet Map que possui polígonos de localização de todo o planeta e pode ser baixada, porém para o nosso exemplo vamos fazer de forma manual buscando apenas demonstrar o
conceito de Geo Localização.
12. INSIRA A TECNOLOGIA MICROSOFT AQUI
Acessando o endereço:
https://polygons.openstreetmap.fr/index.py?id=315111
Agora temos o polígono aqui para ser inserido no Sql
Server
Onde podemos obter os polígonos ?
13. INSIRA A TECNOLOGIA MICROSOFT AQUI
Agora é só executar a chamada da API pelo Postman
14. INSIRA A TECNOLOGIA MICROSOFT AQUI
Teremos a entidade Location destinada à
localizações geográficas (cidade, estado, país, etc)
Teremos a entidade Places destinada à pontos
geográficos que podem ser Lojas, Monumentos,
ou qualquer outro ponto de interesse.
15. Os tipos de dados geográficos do Sql Server faziam
parte do Entity Framework no passado, mas com o
lançamento do Entity Framework Core, deixaram de
serem suportados.
Por conta disto, optamos pela utilização do Dapper
para a realização do acesso ao banco de dados.
16. INSIRA A TECNOLOGIA MICROSOFT AQUI
Na versão do .NET 6 será
disponibilizada a funcionalidade
chamada de "Minimal Api" que
permite a criação de APIs com o
mínimo de dependência do
framework WebAPI e a criação de
código muito mais simples e
compacto.
Ao invés de controllers, escrevemos nossos endpoints no
program.cs
17. Nesta modalidade de aplicação,
nós utilizamos o template "AspNet
Core Empty"
Através do comando:
dotnet new web -o MeuProjeto
Ou diretamente pelo visual studio
Observação: este tipo somente está disponível no Visual Studio 2022
18. INSIRA A TECNOLOGIA MICROSOFT AQUI
Mas o que há de diferente então ?
Dentro do Program.cs colocamos
os métodos que iremos utilizar.
Com os métodos:
MapGet
MapPost
MapPut
MapDelete
19. INSIRA A TECNOLOGIA MICROSOFT AQUI
Teremos métodos GET seguindo este formato da Minimal Api
Teremos métodos POST seguindo este
formato
20. INSIRA A TECNOLOGIA MICROSOFT AQUI
Precisamos criar uma tabela no banco de dados e uma procedure que fará a inserção da localização no banco
de dados.
Os dois campos destacados são criados para armazenar o tipo de
dado "geography"
21. INSIRA A TECNOLOGIA MICROSOFT AQUI
Precisamos criar uma tabela no banco de dados e uma procedure que fará a inserção dos lugares.
O campo marcado será utilizado para armazenar o tipo de dado
"geography"
22. INSIRA A TECNOLOGIA MICROSOFT AQUI
Depois foi só criar o método para realizar a inclusão utilizando-se do Dapper
23. INSIRA A TECNOLOGIA MICROSOFT AQUI
Mesclando Pontos do Mapa x
Polígonos
SELECT
geography::Point( Latitude, Longitude, 4326) LocationPoint,
Name
FROM PLACES
union all
select Polygon,
locationName
from location where LocationType=5
24. INSIRA A TECNOLOGIA MICROSOFT AQUI
Podemos selecionar através de um raio
a região desejada usando STBuffer
DECLARE @g geography, @circle geography
SET @g = geography::Point(-23.2159214 ,-47.26859020000001, 4326);
SET @circle=@g.STBuffer(30000);
SELECT geography::Point( Latitude, Longitude, 4326) LocationPoint, Name FROM PLACES
union all
SELECT Polygon, locationName
FROM location WHERE LocationType=5
union all
SELECT
@circle,
'regiao' name
25. INSIRA A TECNOLOGIA MICROSOFT AQUI
Criaremos procedures no
SQL
Então agora podemos montar
na API um método que
busque os pontos por
coordenadas dentro do mapa.
Utilizando:
STIntersects
26. INSIRA A TECNOLOGIA MICROSOFT AQUI
Dentro da aplicação faremos a chamada à Procedure garantindo
assim que se obtenha a hierarquia de localização de um ponto no
mapa.
Utilizando as consultas com Dapper.
27. INSIRA A TECNOLOGIA MICROSOFT AQUI
Ao executar o endpoint
passando latitude e
longitude, é possível
identificar onde este ponto
está inserido dentro de
uma hierarquia geográfica.
28. INSIRA A TECNOLOGIA MICROSOFT AQUI
É possível !!
DECLARE @point geography = geography::Point(@Lat,@Long,
4326);
DECLARE @Circle geography = @point.STBuffer(@Ray);
SELECT *
FROM (
SELECT
PL.*
FROM Places pl
WHERE ( @PlaceType = '' or @PlaceType = pl.Snippet )
) A
WHERE @circle.STIntersects(a.LocationPoint) = 1
29. INSIRA A TECNOLOGIA MICROSOFT AQUI
E com apenas a passagem dos parâmetros desejados de localização obteremos todos os objetos "Place".
30. INSIRA A TECNOLOGIA MICROSOFT AQUI
Ao executar o endpoint
passando latitude e longitude,
distância e Tipo é possível
criar uma circunferência e
assim localizar os pontos que
estão em seu interior.
31. INSIRA A TECNOLOGIA MICROSOFT AQUI
Só isso ??
DECLARE @poly geography;
SELECT @poly = Polygon
FROM Location
WHERE LocationId=@LocationId;
SELECT *
FROM (
SELECT
PL.*
FROM Places pl
WHERE ( @PlaceType = ''
or @PlaceType = pl.Snippet )
) A
WHERE
@poly.STIntersects(a.LocationPoint) = 1
32. INSIRA A TECNOLOGIA MICROSOFT AQUI
E com apenas a passagem do código da localidade todos os "Places" inseridos no mapa serão listados !
33. INSIRA A TECNOLOGIA MICROSOFT AQUI
Ao executar o endpoint
passando o código da
localização e o filtro do tipo
de "Place" ele irá listar
todos que estão no interior.
35. Referências minimal API
Site Oficial Microsoft
Tutorial: Create a minimal web API with ASP.NET Core | Microsoft Docs
Publicação Balta.IO
https://balta.io/blog/aspnet-minimal-apis
Publicação Renato Groffe
https://renatogroffe.medium.com/novidades-do-net-6-suporte-a-swagger-em-minimal-apis-8ace47739028
Publicação Macoratti
http://www.macoratti.net/21/09/aspn6_minapi1.htm
Sites diversos
https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/
Low Ceremony, High Value: A Tour of Minimal APIs in .NET 6 (telerik.com)
https://anthonygiretti.com/2021/08/12/asp-net-core-6-working-with-minimal-apis/
Para obter locais geográficos
https://nominatim.openstreetmap.org/ui/details.html?osmtype=R&osmid=298285&class=boundary
Para obter o poligono
https://polygons.openstreetmap.fr/index.py?id=298285
Quer saber sobre Dapper ? (minha palestra)
https://www.youtube.com/watch?v=N6CH_v7YukA
36. Referências Sql Server
Tipo : Point
https://docs.microsoft.com/pt-br/sql/t-sql/spatial-geography/point-geography-data-type?view=sql-server-ver15
Tipo : Polygon
https://docs.microsoft.com/pt-br/sql/relational-databases/spatial/polygon?view=sql-server-ver15
Multipolygon
https://docs.microsoft.com/pt-br/sql/relational-databases/spatial/multipolygon?view=sql-server-ver15
STIsValid
https://docs.microsoft.com/pt-br/sql/t-sql/spatial-geography/stisvalid-geography-data-type?view=sql-server-ver15
MakeValid
https://docs.microsoft.com/pt-br/sql/t-sql/spatial-geography/makevalid-geography-data-type?view=sql-server-ver15
STIntersects
https://docs.microsoft.com/pt-br/sql/t-sql/spatial-geography/stintersects-geography-data-type?view=sql-server-ver15
STDistance
https://docs.microsoft.com/pt-br/sql/t-sql/spatial-geography/stdistance-geography-data-type?view=sql-server-ver15
STBuffer
https://docs.microsoft.com/pt-br/sql/t-sql/spatial-geography/stbuffer-geography-data-type?view=sql-server-ver15
StUnion
https://docs.microsoft.com/pt-br/sql/t-sql/spatial-geometry/stunion-geometry-data-type?view=sql-server-ver15