Generalized Geohash/pt: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 1: | Linha 1: | ||
'''Generalização do algoritmo [[wikipedia:Geohash|Geohash]]''' para [[wikipedia:geocode|geocódigos]]. Vantagens: | '''Generalização do algoritmo [[wikipedia:Geohash|Geohash]]''' para [[wikipedia:geocode|geocódigos]], '''GGeohash''' (do inglês ''Generalized Geohash''). Vantagens: | ||
*permite representações interna (no computador) e humana (como geocódigo) totalmente compatíveis e consistentes. | *permite representações interna (no computador) e humana (como geocódigo) totalmente compatíveis e consistentes. | ||
Linha 5: | Linha 5: | ||
*permite escolha entre 2 curvas de preenchimento (Morton e Hilbert). | *permite escolha entre 2 curvas de preenchimento (Morton e Hilbert). | ||
Opções podem ser visualizadas em https://osm-codes.github.io/Sfc4q/ | Opções podem ser visualizadas em https://osm-codes.github.io/Sfc4q/ | ||
[[File:Comparing-Geoash-Hilbert.png|center|800px]] | |||
Uma das '''inovações''' do GGeohash foi a introdução do conceito de níveis-meio (''L''½), que se originam da união geométrica de células consecutivas do nível inteiro, permitindo formalizar melhor o Geohash clássico e viabilizando a curva de Hilbert. Nos níveis-meio as curvas Morton e Hilbert são degeneradas. | |||
Entre as várias opções, uma delas corresponde ao "Geohash clássico". As opções surgem da combinação dos seguintes parâmetros: | Entre as várias opções, uma delas corresponde ao "Geohash clássico". As opções surgem da combinação dos seguintes parâmetros: | ||
Linha 29: | Linha 33: | ||
| | | | ||
| | | | ||
|} | |||
== 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]]. | |||
{| class="wikitable" | |||
|'''base''' | |||
|'''label''' | |||
|'''ID''' | |||
|'''bits''' | |||
|'''alphabet''' (depois do espaço os ''nhDigits'') | |||
|'''Reference standard''' | |||
|- | |||
|2 | |||
|js* | |||
|''base2js'' | |||
|1 | |||
|<code>01</code> | |||
|ECMA-262 | |||
|- | |||
|4 | |||
|js* | |||
|''base4js'' | |||
|2 | |||
|<code>0123</code> | |||
|ECMA-262 | |||
|- | |||
|4 | |||
|h | |||
|''base4h'' | |||
|2 | |||
|<code>0123 GQ</code> | |||
|ECMA + nhDigits alphabet | |||
|- | |||
|8 | |||
|js* | |||
|''base8js'' | |||
|3 | |||
|<code>01234567</code> | |||
|ECMA-262 | |||
|- | |||
|8 | |||
|h | |||
|''base8h'' | |||
|3 | |||
|<code>01234567 GQ HMRV</code> | |||
|ECMA + nhDigits alphabet | |||
|- | |||
|16 | |||
|js* | |||
|''base16js'' | |||
|4 | |||
|<code>0123456789abcdef</code> | |||
|ECMA-262 and <nowiki>RFC 4648</nowiki>/sec8 | |||
|- | |||
|16 | |||
|h | |||
|''base16h'' | |||
|4 | |||
|<code>0123456789abcdef GQ HMRV JKNPSTZY</code> | |||
|ECMA + nhDigits alphabet | |||
|- | |||
|32 | |||
|hex* | |||
|''base32hex'' | |||
|5 | |||
|<code>0123456789abcdefghijklmnopqrstuv</code> | |||
|ECMA-262 and <nowiki>RFC 4648</nowiki>/sec7 | |||
|- | |||
|32 | |||
|ghs | |||
|''base32ghs'' | |||
|5 | |||
|<code>0123456789bcdefghjkmnpqrstuvwxyz</code> | |||
|Geohash | |||
|- | |||
|32 | |||
|nvu | |||
|''base32nvu'' | |||
|5 | |||
|<code>0123456789BCDFGHJKLMNPQRSTUVWXYZ</code> | |||
|No-Vowels except U (near non-syllabic) | |||
|- | |||
|32 | |||
|rfc | |||
|''base32rfc'' | |||
|5 | |||
|<code>ABCDEFGHIJKLMNOPQRSTUVWXYZ234567</code> | |||
|<nowiki>RFC 4648</nowiki>/sec6 | |||
|- | |||
|64 | |||
|url* | |||
|''base64url'' | |||
|6 | |||
|<code>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_</code> | |||
|<nowiki>RFC 4648</nowiki>/sec5 | |||
|- | |||
|64 | |||
|rfc | |||
|''base64rfc'' | |||
|6 | |||
|<code>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/</code> | |||
|<nowiki>RFC 4648</nowiki>/sec4 | |||
|- | |||
| colspan="6" |<small>(*) default base. For example base32 is interpreted by default as base32hex.</small> | |||
<small> All base32 here are using with leading zeros, they are valid instances of “restricted hiearchy”, base32rh.</small> | |||
|} | |} |
Edição das 07h04min de 8 de maio de 2023
Generalização do algoritmo Geohash para geocódigos, GGeohash (do inglês Generalized Geohash). Vantagens:
- permite representações interna (no computador) e humana (como geocódigo) totalmente compatíveis e consistentes.
- permite adequação da representação humana à sua cultura ou preferências do usuário.
- permite escolha entre 2 curvas de preenchimento (Morton e Hilbert).
Opções podem ser visualizadas em https://osm-codes.github.io/Sfc4q/
Uma das inovações do GGeohash foi a introdução do conceito de níveis-meio (L½), que se originam da união geométrica de células consecutivas do nível inteiro, permitindo formalizar melhor o Geohash clássico e viabilizando a curva de Hilbert. Nos níveis-meio as curvas Morton e Hilbert são degeneradas.
Entre as várias opções, uma delas corresponde ao "Geohash clássico". As opções surgem da combinação dos seguintes parâmetros:
Opção | Alternativas | Descrição |
---|---|---|
Número de bits por dígito | 1,2,3,4 ou 5 | Determina o número de subdivisões da célula e a compatibilidade da notação posicional |
Base e alfabeto para humanos | base2h, 4h, 8h e 16h ou base32;
e respectivas variantes de al |
Base e alfabeto para se representar o geocódigo para humanos, mantendo a compatibilidade com número de dígitos |
Curva de preenchimento | Morton ou Hilbert | Define como será a indexação e ordem da segunda. |
... |
Alfabetos e convenções da notação
Lista completa de IDs com respectivos alfabetos-padrão para 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 log2 da base. No alfabeto foram destacados os nhDigits (non-hierarchical digits) conforme notação Natural Code.
base | label | ID | bits | alphabet (depois do espaço os nhDigits) | Reference standard |
2 | js* | base2js | 1 | 01
|
ECMA-262 |
4 | js* | base4js | 2 | 0123
|
ECMA-262 |
4 | h | base4h | 2 | 0123 GQ
|
ECMA + nhDigits alphabet |
8 | js* | base8js | 3 | 01234567
|
ECMA-262 |
8 | h | base8h | 3 | 01234567 GQ HMRV
|
ECMA + nhDigits alphabet |
16 | js* | base16js | 4 | 0123456789abcdef
|
ECMA-262 and RFC 4648/sec8 |
16 | h | base16h | 4 | 0123456789abcdef GQ HMRV JKNPSTZY
|
ECMA + nhDigits alphabet |
32 | hex* | base32hex | 5 | 0123456789abcdefghijklmnopqrstuv
|
ECMA-262 and RFC 4648/sec7 |
32 | ghs | base32ghs | 5 | 0123456789bcdefghjkmnpqrstuvwxyz
|
Geohash |
32 | nvu | base32nvu | 5 | 0123456789BCDFGHJKLMNPQRSTUVWXYZ
|
No-Vowels except U (near non-syllabic) |
32 | rfc | base32rfc | 5 | ABCDEFGHIJKLMNOPQRSTUVWXYZ234567
|
RFC 4648/sec6 |
64 | url* | base64url | 6 | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_
|
RFC 4648/sec5 |
64 | rfc | base64rfc | 6 | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
|
RFC 4648/sec4 |
(*) default base. For example base32 is interpreted by default as base32hex.
All base32 here are using with leading zeros, they are valid instances of “restricted hiearchy”, base32rh. |