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

m
(→‎Descrição técnica: duas principais curvas e porque não existem outras)
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 109: Linha 109:


Estas duas são bem conhecidas, pelo nome dos seus descobridores, que primeiramente as descreveram matematicamente:
Estas duas são bem conhecidas, pelo nome dos seus descobridores, que primeiramente as descreveram matematicamente:
* [[wikipedia:Morton Curve|Curva de Morton]]: mais rápida de se calcular e com versão degenerada regular.
* [[wikipedia:Morton Curve|Curva de Morton]]: mais rápida de se calcular e com versão degenerada regular periódica.
* [[wikipedia:Hilbert Curve|Curva de Hilbert]]: mais eficiente (sem descontinuidades) porém com versão degenerada aperiodica.
* [[wikipedia:Hilbert Curve|Curva de Hilbert]]: mais eficiente ([[#Intervalos de geocódigos|sem descontinuidades]]) porém com versão degenerada aperiódica.


===Representação textual===
===Representação textual===
Linha 234: Linha 234:
A Curva de Hilbert acima, e a ilustração de como obter a grade de 32 células retangulares a partir da grade de 64 células quadradas. Repare que a grade deixa de ser regular e passa a ser uma [[wikipedia:Domino tiling|grade aperiódica de dominós]].
A Curva de Hilbert acima, e a ilustração de como obter a grade de 32 células retangulares a partir da grade de 64 células quadradas. Repare que a grade deixa de ser regular e passa a ser uma [[wikipedia:Domino tiling|grade aperiódica de dominós]].


Ilustramos com decimais para permitir o entendimento dos cálculos.  A propriedade mais importante do GGeohash para humanos é que ele '''preserva a ''hierarquia espacial'' nos ''prefixos do código'''''. Para demonstrar isso precisamos visualizar com geocódigos hierárquicos, por exemplo com a [[base4h]]:
:Nota. É importante lembrar também que existe uma relação entre o seu nível hierárquico ''L'' da célula e o seu                tamanho de lado ''S'' (''side size''). Por imposição do [[Discrete National Grid Systems/pt|padrão DNGS]] temos <math>S_{L}=2^{Lmax-L}</math>. No caso do Brasil ''Lmax''=20, no caso de Camarões ''Lmax=18''.<br/>A fórmula de ''S'' funciona também para níveis-meio, por exemplo ''L''=1.5. Como o "tamanho do lado genérico ''S'' de um retângulo" é a raiz quadrada da área do retângulo; e pela construção geométrica dos níveis-meio, cujas células, de áreas iguais, são a união de 2 células do próximo nível inteiro, temos:<br/> <math>S_{Lhalf}=\sqrt{2\cdot{Area_{\lceil Lhalf\rceil}}} = \sqrt{2} \cdot \sqrt{{{S_{\lceil Lhalf\rceil}}^2}}  =    2^{Lmax-\lceil Lhalf\rceil + 0.5}</math> onde <math>Lhalf = \forall L | L = \lceil L \rceil - 0.5</math>.
 
Ilustramos com índices ''i'' e ''j'' decimais para permitir o entendimento dos cálculos.  Na prática o identificador da célula é apresentado ao ser humano com [[baseH]]. A propriedade mais importante do GGeohash para humanos é que ele '''preserva a ''hierarquia espacial'' nos ''prefixos do código'''''. Para demonstrar isso precisamos visualizar com geocódigos hierárquicos, por exemplo com a [[base4h]]:


[[arquivo:Zcurve-8cells base4h.png|278px]] [[arquivo:Zcutve-base4.png|285px]]  
[[arquivo:Zcurve-8cells base4h.png|278px]] [[arquivo:Zcutve-base4.png|285px]]  
Linha 264: Linha 266:


Resumindo: intervalos podem ser úteis para definir zonas abstratas (não-políticas) coerentes com a indexação e ao mesmo tempo uma grandeza para estabelecer partições balanceadas.
Resumindo: intervalos podem ser úteis para definir zonas abstratas (não-políticas) coerentes com a indexação e ao mesmo tempo uma grandeza para estabelecer partições balanceadas.


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

edições