Generalized Geohash/pt: mudanças entre as edições

m
→‎História: ilustrando
m (→‎História: add img)
m (→‎História: ilustrando)
Linha 37: Linha 37:


== História ==
== História ==
A parte central do algoritmo Geohash e a primeira iniciativa para uma solução semelhante foi documentada em um relatório da G.M. Morton em 1966. O trabalho de Morton foi usado para implementações eficientes da curva de ordem Z, como na versão ''Geohash-integer'' de 2014, que faz uso da sua versão binária e ampliada para 64 bits. Ainda assim, a proposta de geocódigo de Morton não era legível por humanos, e foi esquecida por mais de três décadas.
A parte central do algoritmo Geohash e a primeira iniciativa para uma solução semelhante foi documentada em um relatório da G.M. Morton em 1966. O trabalho de Morton foi usado para implementações eficientes da curva de ordem Z em algumas aplicações eletrônicas, mas a proposta de geocódigo de Morton não era muito prática e legível, e foi esquecida por mais de três décadas.


G. Niemeyer, no final dos anos 2000, desconhecendo a obra de Morton, a reinventou, acrescentando o uso da representação [[wikipedia:base32|base32]]. Em fevereiro de 2008, junto com o anúncio do sistema, Niemeyer lançou o site http://geohash.org, que permite aos usuários converter coordenadas geográficas em URLs curtos que identificam exclusivamente as posições na Terra. <br/>Muitas variações foram desenvolvidas, incluindo o link curto do OpenStreetMap em 2009  (usando ''base64url'' em vez de ''base32ghs''), o Geohash de 64 bits em 2014, e outros.
G. Niemeyer, no final dos anos 2000, desconhecendo a obra de Morton, a reinventou, acrescentando o uso da representação [[wikipedia:base32|base32]]. Em fevereiro de 2008, junto com o anúncio do sistema, Niemeyer lançou o site (hoje semi-abandonado) http://geohash.org, que permite aos usuários converter coordenadas geográficas em URLs curtos que identificam exclusivamente as posições na Terra. A mais importante inovação em seguida foi a versão ''Geohash-integer'' de 2014, que faz uso da sua versão binária e ampliada para 64 bits.


[[Arquivo:Geohash-binary.png|centro|520px]]
[[Arquivo:Geohash-binary.png|centro|520px]]


Na AddressForAll, em 2018, foi desenvolvida a proposta do GGeohash, registrada para o domínio público em {{xref|KraEtAll2018}}. Em seguida, em 2019, uma fundamentação mais ampla foi adicionada através dos Natural Codes, com {{xref|KraEtAll2019}}.
[[Arquivo:Osmc-proj-S2geom-illustr1.png|thumb|S2 Geometry, usando curva de Hilbert e projeção plana.]]


== Typical and main usages ==
Algumas variações foram desenvolvidas, incluindo o link curto do OpenStreetMap em 2009  (usando ''base64url'' em vez de ''base32ghs''), o Geohash-integer de 2014, e outros. Em uma linha de desenvolvimento bem diferente, tendo o geocódigo como subproduto, em 2017 a Google tornou público no Github o seu software [https://s2geometry.io/ S2 Geometry]. O S2 implementa um geocódigo baseado na curva de Hilbert ao invés da curva de Morton, e faz uso de uma projeção plana para reduzir as distorções de latitude da grade LatLong.
 
Na AddressForAll, em 2018, foi desenvolvida a proposta do GGeohash, registrada para o domínio público em {{xref|KraEtAll2018}}. A proposta GGeohash unifica de forma coerente as variantes do Geohash e as variantes do S2.
Em seguida, em 2019, uma fundamentação mais ampla foi adicionada através dos Natural Codes, com {{xref|KraEtAll2019}}.
 
== Typical and main usages==
...
...


Linha 52: Linha 57:
...
...


=== Representação textual ===
===Representação textual===


Alfabetos e convenções da notação. Lista completa de IDs com respectivos alfabetos-padrão para [[Wikipedia:Positional notation|conversão de base]], para as “bases potência de 2”. O identificador é a concatenação da palavra “base” com o valor da base e o rótulo (''label'') do alfabeto. O número de ''bits'' por dígito é o [[Wikipedia:Binary logarithm|log<sub>2</sub>]] da base. No alfabeto foram destacados os ''nhDigits'' (''non-hierarchical digits'') conforme notação [[Código natural|Natural Code]].
Alfabetos e convenções da notação. Lista completa de IDs com respectivos alfabetos-padrão para [[Wikipedia:Positional notation|conversão de base]], para as “bases potência de 2”. O identificador é a concatenação da palavra “base” com o valor da base e o rótulo (''label'') do alfabeto. O número de ''bits'' por dígito é o [[Wikipedia:Binary logarithm|log<sub>2</sub>]] da base. No alfabeto foram destacados os ''nhDigits'' (''non-hierarchical digits'') conforme notação [[Código natural|Natural Code]].
Linha 96: Linha 101:
|3
|3
|<code>01234567 GQ HMRV</code>
|<code>01234567 GQ HMRV</code>
|ECMA + nhDigits alphabet
| ECMA + nhDigits alphabet
|-
|-
|16
|16
Linha 126: Linha 131:
|Geohash
|Geohash
|-
|-
|32
| 32
|nvu
|nvu  
|''base32nvu''
|''base32nvu''
|5
|5
Linha 133: Linha 138:
|No-Vowels except U (near non-syllabic)
|No-Vowels except U (near non-syllabic)
|-
|-
|32
| 32
|rfc
|rfc
|''base32rfc''
|''base32rfc''
|5
| 5
|<code>ABCDEFGHIJKLMNOPQRSTUVWXYZ234567</code>
|<code>ABCDEFGHIJKLMNOPQRSTUVWXYZ234567</code>
|<nowiki>RFC 4648</nowiki>/sec6
|<nowiki>RFC 4648</nowiki>/sec6
Linha 148: Linha 153:
|-
|-
|64
|64
|rfc
|rfc  
|''base64rfc''
| ''base64rfc''
|6
|6
|<code>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/</code>
| <code>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/</code>  
|<nowiki>RFC 4648</nowiki>/sec4
| <nowiki>RFC 4648</nowiki>/sec4
|-
|-
| colspan="6" |<small>(*) default base. For example base32 is interpreted by default as base32hex.</small>
| colspan="6" |<small>(*) default base. For example base32 is interpreted by default as base32hex.</small>
Linha 186: Linha 191:


Características da grade em base16h:
Características da grade em base16h:
* Níveis '''inteiros''' (L0, L1, L2 etc.) são quadrados.
*Níveis '''inteiros''' (L0, L1, L2 etc.) são quadrados.
* Níveis '''meio''' (L½, L1½, L2½ etc.) são retângulos (grades degeneradas).
*Níveis '''meio''' (L½, L1½, L2½ etc.) são retângulos (grades degeneradas).
* Níveis '''inteiros pares''' são hexadecimais, simbolicamente iguais aos hexadecimais tradicionais (exceto por diferenciar zeros a esquerda).
*Níveis '''inteiros pares''' são hexadecimais, simbolicamente iguais aos hexadecimais tradicionais (exceto por diferenciar zeros a esquerda).


Na base32 a principal característica é a alternância entre quadrados e retângulos. Pelas convenções adotadas no padrão [[DNGS]] a grade base32 de 1 metro sempre será quadrada.
Na base32 a principal característica é a alternância entre quadrados e retângulos. Pelas convenções adotadas no padrão [[DNGS]] a grade base32 de 1 metro sempre será quadrada.




== Solução multifinalitária ==
==Solução multifinalitária ==


As principais aplicações para um sistema de geocódigos, associado a múltiplas grades, são:
As principais aplicações para um sistema de geocódigos, associado a múltiplas grades, são:  
# Logísticas: código postal e geocódigos similares para apoio simplificar a localização de pontos de interesse, endereços, e quadrantes (grade tradicional de navegação).  
#Logísticas: código postal e geocódigos similares para apoio simplificar a localização de pontos de interesse, endereços, e quadrantes (grade tradicional de navegação).
# Computacionais: representação e conversão de geo-objetos em geo-campos e vice versa, indexação (''quadtree'' e similares em bancos de dados espaciais)
#Computacionais: representação e conversão de geo-objetos em geo-campos e vice versa, indexação (''quadtree'' e similares em bancos de dados espaciais)
# Métricas e Cartográficas: oferecer identificadores zonais padronizados e com representação visual compacta. Além disso as células da grade padronizada permitem a interação humana com sistemas de informação.
#Métricas e Cartográficas: oferecer identificadores zonais padronizados e com representação visual compacta. Além disso as células da grade padronizada permitem a interação humana com sistemas de informação.


O requisito mais importante, que garante o uso do mesmo sistema de grades nas diversas aplicações, é a ''hierarquia''. Sistemas não-hierarquicos, ou com limtações nas operações hierárquicas, perdem a utilidade nas aplicações mais sensíveis.  
O requisito mais importante, que garante o uso do mesmo sistema de grades nas diversas aplicações, é a ''hierarquia''. Sistemas não-hierarquicos, ou com limtações nas operações hierárquicas, perdem a utilidade nas aplicações mais sensíveis.  
Linha 205: Linha 210:


Como resultado da imposição destes requisitos, muitos sistemas de grades precisam ser descartados:
Como resultado da imposição destes requisitos, muitos sistemas de grades precisam ser descartados:
* sistemas baseados em células hexagonais não podem ser usados em coberturas nem em geocódigos consistentes
*sistemas baseados em células hexagonais não podem ser usados em coberturas nem em geocódigos consistentes
* sistemas baseados em células triangulares sao menos eficientes do que os quadrados ...
*sistemas baseados em células triangulares sao menos eficientes do que os quadrados ...
* sistemas sem projeção igual-area nao satisfazem nem à álgebra de geocampos/geoobjetos, nem aos requisitos métricos para a comparação das informações contidas nas células de diferentes locais.
*sistemas sem projeção igual-area nao satisfazem nem à álgebra de geocampos/geoobjetos, nem aos requisitos métricos para a comparação das informações contidas nas células de diferentes locais.


A conclusão é que apenas sistemas hierárquicos de grades quadriláteras regulares é seriam elejíveis para o uso multifinalitário.
A conclusão é que apenas sistemas hierárquicos de grades quadriláteras regulares é seriam elejíveis para o uso multifinalitário.


[[Categoria:Conceitos]]
[[Categoria:Conceitos]]
2 384

edições