osm-codes / GGeohash

Generalized Geohash Algorithms of the OSM.codes
Apache License 2.0
0 stars 0 forks source link

Decode colombiano não funciona. #29

Closed 0e1 closed 1 year ago

0e1 commented 1 year ago

Decode colombiano não funciona.

Por exemplo, o decode de https://osm.codes/CO-8758~853M5Z não funciona.

Por outro lado, https://osm.codes/CO-15001~J7M0 funciona.

0e1 commented 1 year ago

ao executar o decode obtemos

SELECT api.osmcode_decode_postal('CO-8758~853M5Z');
ERROR:  FOREACH expression must not be null
CONTEXT:  PL/pgSQL function natcod.b32nvu_to_vbit(text) line 7 at FOREACH over array
SQL function "osmcode_decode_postal" statement 1
SQL function "osmcode_decode_postal" statement 1

Avaliando as funções que resolvem o código o problema está na resolução do primeiro digito. A função natcod.vbit_to_strstd não converte pois recebe um varbit não múltiplo de 5.

Observando a cobertura e o primeiro nível disponível para encode, parace que Lcobertura - Lprimeiro nivel não é igual a 2.5:

screen

Minha avaliação preliminar é que a cobertura está errada. Mais ainda, que as coberturas (exceto Tunja) estão desatualizadas, não tendo sido atualizadas após o shit+3 realizado.

0e1 commented 1 year ago

Eu confirmei. Coberturas na produção estão desatualizadas, exceto Tunja.

0e1 commented 1 year ago

Atualizei as coberturas colombianas a partir das coberturas citadas em https://github.com/osm-codes/CO_new/blob/main/data/coverage.csv, que já são coberturas geradas considerando o shift+3 utilizado na base32. Com isso, encode/decode funcionam.