O documento apresenta uma introdução sobre geolocalização, explicando latitude, longitude, altitude e geohash. Também discute como a geolocalização funciona no Redis, no Delphi com Google Maps e no celular utilizando GPS e sensor de localização.
2. Caixa Sobre
Mario Guedes: Desenvolvedor Delphi e Python com bancos noSQL a mais de 20 anos.
Focado em arquitetura em backend, faz as telas mais feias do mundo.
mario@arrayof.io
Thiago Filadelfo: Desenvolvedor Mobile e Web a mais de 13 anos com experiência em
várias linguagens como Delphi, Java, Kotlin, Swift, Flutter, C#, JavaScript - ufa!
thiago@arrayof.io
– Juntos estamos, finalmente, iniciando a ArrayOf.io –
Sua nova opção em treinamentos e assessoria.
https://ArrayOf.io
4. Geolocalização, o que é?
Qualquer ponto na superfície terrestre pode ser endereçado através de
uma rede de linhas imaginárias que fatiam o globo.
A geolocalização é composta por duas coordenadas geográficas:
• Latitude
• Longitude
5.
6. Latitude
A latitude é determinada em graus, de 0º à 90º.
Da Linha do Equador ao norte, os números são positivos.
Da Linha do Equador ao sul, os números são negativos.
Os paralelos determinam as latitudes e os paralelos são círculos
completos em volta da Terra, por isso temos 180º ao todo.
7. Longitude
A longitude é determinada em graus, de 0º à 180º.
Do Meridiano de Greenwich à leste, os números são positivos
Do Meridiano de Greenwich à oeste, os números são negativos
Os meridianos determinam as longitudes, e os meridianos são semicírculos
em volta da Terra, por isso temos 360º ao todo.
Observe que essas linhas também são utilizadas para determinar os fusos
horários, mas isso é outra história.
8. Graus?
Graus, minutos e segundos para ser mais exato.
Graus de ângulo mesmo …
Os babilônios achavam que um ano tinha 360 dias, daí determinaram dividir um
círculo em 360 pedaços, sendo cada pedaço um ângulo.
Cada ângulo equivale à 60 minutos, sendo minuto a subdivisão de um ângulo.
Por fim, cada minuto se subdivide em segundos.
Aqui minutos e segundos são medidas de distância e não de tempo!
9. Caraca! Temos um plano cartesiano então!
Acertou miseravi!
A Linha do Equador é o Eixo X
O Meridiano de Greenwich é o Eixo Y
A intersecção das duas linhas é o ponto 0
Isso não significa que a Terra é plana hein?
Linha do
Equador
Meridiano de
Grennwich
10. E a altitude?
É uma informação importante também!
Determina a altitude de um local em relação ao nível do mar.
Afinal, vivemos em uma enorme rocha imperfeita porém “esférica”.
Altitude Positiva
Altitude Negativa
Profundidade
11. Geohash
• Geohash é um sistema de geocodificação que utiliza uma sequência
de números e letras para representar coordenadas geográficas.
• Nosso encontro, por exemplo, pode ser representado da seguinte
maneira:
• Latitude.: -30.0428357
• Longitude: -51.2188929
• Geohash..: 6fet46zec33q
• http://geohash.co
13. GPS - Global Positioning System
Sistema de Posicionamento Global
Foi criado na década de 60 como um projeto militar e atualmente é
administrado pelo Departamento de Defesa dos Estados Unidos
Utilizado em 1990 na Guerra do Golfo para orientar os soldados
americanos no deserto
Plenamente operacional em 1995 e liberado para uso civil no ano 2000.
São 24 satélites que orbitam a Terra duas vezes por dia
Existem outras tecnologias como Glonass (Rússia), Compass (China) e
Galileo (Europa)
14. GPS
Para funcionar o receptor tem que
receber o sinal de 3 satélites no mínimo.
Uma maior quantidade aumenta a
precisão.
O receptor faz uns cálculos malucos com
as informações recebidas e com isso
consegue determinar a sua latitude e
longitude
15. Obtendo coordenadas
Satélite 1
Satélite 3
Satélite 2
Área de leitura do
satélite, triangulação
Coordenada
informada para os
aplicativos
Precisão da coordenada
informada
16. Local do nosso encontro
Avenida Venâncio Aires, 93, Cidade Baixa, Porto
Alegre – RS
Latitude.: -30.0428357
Longitude: -51.2188929
17. E como funciona tudo isto no seu celular?
O celular tem um bússola interna, certo?
Então ele consegue determinar em que direção fica o norte e com isso determinar
todas as outras.
O celular tem um receptor GPS, certo?
Então ele consegue determinar a sua localização física no planeta Terra
O celular tem acesso à Internet, certo?
Então ele consegue fazer download dos mapas, sincronizar todas as informações e
ser uma das ferramentas mais úteis do dia à dia do cidadão médio.
19. E como funciona no Redis?
Você já sabe que o Redis é um banco noSQL orientado à chave e valor
que armazena seus dados em memória e que por causa de tudo isso é
rápido pra caramba!
Ele oferece tipos e comando específicos para lidar com geolocalização.
Internamente o Redis utiliza o geohash para lidar com o assunto
20. Comandos Redis
GEOADD: Adiciona uma informação geolocalizada à um conjunto
GEORADIOS: Recupera itens de um conjunto à partir de coordenadas
GEOPOS: Retorna as coordenadas de um determinado item
GEORADIOSBYMEMBER: Recupera itens de um conjunto à partir de um determinado
item deste conjunto
GEODIST: Recupera a distância entre dois membros de um conjunto
GEOHASH: Recupera o geohash de uma coordenada geográfica
https://redis.io/commands#geo