Open ppKrauss opened 2 years ago
Quando implementado, impactará nas coberturas:
https://github.com/osm-codes/BR_new/blob/main/data/coverage.csv https://github.com/osm-codes/CO_new/blob/main/data/coverage.csv https://github.com/osm-codes/UY_new/blob/main/data/coverage.csv
Ok, vamos com calma:
... Não vamos alterar até ter certeza de que vale a pena.
Outra estratégia:
Como se busca minimizar as exceções no algoritmo string, será importante usar a "cobertura otimizada para vizinhança".
.... Acima usamos lógica da vizinhança da base32, abaixo usamos vizinhança base16:
Solução ótima para as relações de vizinhança (apenas uma falha no "5"), mas perdendo-se totalmente a curva Z descrita pela sequência:
A decisão final passa por 3 alternativas:
Apesar da cobertura de nível ter uma ordem indiferente, sem compromisso com a curva de preenchimento (Morton ou Hilbert), os algoritmos de cálculo de vinhança podem se tornar mais simples e com menos exceções se for mantida aproximadamente a ordem da curva de preenchimento.
Exemplo do Brasil: abaixo seguindo a ordem dentro do possível.
ao invés da ordem totalmente arbitrária, apesar de "didática" para o leigo entender a ordem do alfabeto utilizado
Lembrete: essa é a orientação (zero em baixo) e ordem recorrente na base16, não temos dúvidas quando ao algoritmo de vizinhança... Na ilustração abaixo as vizinhanças de A0 com prefixo A são válidas, as demais estão comprometidas porque o prefixo arbitrário não permite o algoritmo avaliar recorrentemente. Por exemplo A0F tem A2, A3 e A1 como vizinhos válidos, mas a esquerda e abaixo de A00, 95 e DA estão comprometidos pela escolha arbitrária de ordem na corbertura.