Ir para o conteúdo

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

add hierarquia
(add hierarquia)
Linha 7: Linha 7:
* permite escolha entre 2 curvas de preenchimento ([[wikipedia:Z-order curve|Morton]] e [[wikipedia:Hilbert curve|Hilbert]]).
* permite escolha entre 2 curvas de preenchimento ([[wikipedia:Z-order curve|Morton]] e [[wikipedia:Hilbert curve|Hilbert]]).


== Caracterização ==
As diversas opções podem ser visualizadas em [https://git-site.OSM.codes/Sfc4q/ '''Sfc4q'''] ('''''S'''pace-'''f'''illing '''c'''urves of refinement ratio '''4''' '''q'''uadrilateral''). Abaixo são ilustrados o Geohash clássico (Morton) e a sua generalização em curva de Hilbert.
As diversas opções podem ser visualizadas em [https://git-site.OSM.codes/Sfc4q/ '''Sfc4q'''] ('''''S'''pace-'''f'''illing '''c'''urves of refinement ratio '''4''' '''q'''uadrilateral''). Abaixo são ilustrados o Geohash clássico (Morton) e a sua generalização em curva de Hilbert.


Linha 36: Linha 37:
|
|
|}
|}
=== Hierarquia dígito-a-dígito no geocódigo ===
Geocódigos do padrão GGeohash são hierárquicos. Por exemplo com Geohash clássico:
* <code>6</code> ⊃ <code>6g</code> ⊃ <code>6gy</code> ⊃ <code>6gyc</code> ⊃ <code>6gyce</code> ⊃ <code>6gycex</code>
No caso de base-h há uma quebra da hierarquia no último dígito enquanto o nível não é múltiplo da base. Por exemplo a base16h só é hierárquica a cada 4 bits, e a base4h a cada 2  bits. Exemplificando com a base4h:
* <code>2</code> ⊃ <code>2G </code> ⊃ <code>21</code> ⊃ <code>21Q</code> ⊃ <code>213</code> ⊃ <code>213Q</code> ⊃ <code>2132</code>
* <code>2</code> ⊃ <code>21</code> ⊃ <code>213</code> ⊃ <code>2132</code>
A hierarquia e a quasi-hierarquia estão simultaneamente presentes na Base-H, diferente da quasi-hierarquia de outros padrões, como OLC, onde a alternativa (subconjunto) de hierarquia dígito a dígito não existe.
=== Quasi-hierarquia em outros padrões ===
O '''[[OLC]]''' usa de certa forma a curva de Morton, mas mesmo seu prefixo não é considerado GGeohash por expressar a curva apenas nos dígitos pares:
* <code>58</code> ⊃ <code>588M</code> ⊃ <code>588MC8</code> ⊃ <code>588MC8QV</code>
O OLC faz uso de uma subgrade, destacada pelo separador <code>+</code>, que, esta sim, é hierárquica a cada dígito, mas não cumpre mais a curva de Morton:
* <code>588MC8QV</code> ⊃ <code>588MC8QV+C</code> ⊃ <code>588MC8QV+CJ</code>
Outro geocódigo, o [http://easymapwork.blogspot.com/2010/08/map-code.html '''map-code base4'''] usa Morton Base4 com alfabeto <code>ABCD</code> porém o prefixo do código é um par decimal representando quadrante de latitude e longitude inteiros. Exemplo:
* <code>2627</code> ⊃ <code>2627 A</code> ⊃ <code>2627 AC</code> ⊃ <code>2627 ACC</code>
* <code>2627</code> , <code>2628</code>, <code>2527</code>, ...
Se entendermos os prefixos decimais como células de cobertura (~9999 células), fica caracterizado um GGeohash.


== História ==
== História ==
2 384

edições