2 583
edições
Linha 8: | Linha 8: | ||
O projeto como um todo faz uso de 2 sistemas de coordenadas globais: | O projeto como um todo faz uso de 2 sistemas de coordenadas globais: | ||
*'''LatLong''': WGS84 no formato ''default'' [[Geo URI]] | *'''LatLong''': coordenadas de ''latitude'' e ''longitude''. A rigor coordenadas WGS84 no formato ''default'' [[Geo URI]]. | ||
* '''global_cell_id''': global mosaic of DNGS cells. O mosaico global é composto de faces quadrilateras, identificadas pelo prefixo de célula: | * '''global_cell_id''': global mosaic of DNGS cells. O mosaico global é composto de faces quadrilateras, identificadas pelo prefixo de célula: | ||
** '''face_id''': chave primária de 12 bits (''SRID'', ''country_id'', ''country_cover_id''), com 8 bits para ''SRID×country_id'' e 4 bits para ''country_cover_id''. | ** '''face_id''': chave primária de 12 bits (''SRID'', ''country_id'', ''country_cover_id''), com 8 bits para ''SRID×country_id'' e 4 bits para ''country_cover_id''. | ||
** '''cell_id''': identificador local de célula, dado por ''bit string'' com tamanho variável. Começa pelo vazio, que resulta na própria ''country_cover_id'', como grade nível ''L0''. Depois a cada 2 bits temos um nível hierárquico (''L1'', ''L2'', ...) até o nível ''Lmax'' ou completar 56 bits (limite para [[Código_Natural/Representação_interna#hInt|hInt]]). Em caso de fronteira apenas porções do território nacional são válidas, mas essa validade é presumida. | ** '''cell_id''': identificador local de célula, dado por ''bit string'' com tamanho variável. Começa pelo vazio, que resulta na própria ''country_cover_id'', como grade nível ''L0''. Depois a cada 2 bits temos um nível hierárquico (''L1'', ''L2'', ...) até o nível ''Lmax'' ou completar 56 bits (limite para [[Código_Natural/Representação_interna#hInt|hInt]]). Em caso de fronteira apenas porções do território nacional são válidas, mas essa validade é presumida. | ||
** '''XY''': a cada conjunto de países com mesmo SRID pode-se adotar as mesmas coordenadas planas, de modo que XY é opcional a LatLong como entrada em tal contexto. <br/>Não confundir com o plano canônico ''XY'' limitado a cada face. | |||
Na maior parte das aplicações o ''global_cell_id'' pode ser | Na maior parte das aplicações o ''global_cell_id'' pode ser simplificado para um identificador local da nação, com ''face_id''=''country_cover_id'', ou seja, omitindo ''SRID'' e ''country_id'' quando são constantes. Todavia o ganho com isso, por não alterar o total máximo de 64 bits, não justifica a perda de interoperabilidade, sugere-se manter pelo menos internamente no banco de dados. | ||
Para as aplicações globais foram definidos os métodos [[osmc:Metodologia/Algoritmo_SQL#Seletor_de_projeção|seletor de projeção]] e [[osmc:Metodologia/Algoritmo_SQL#Seletor de jurisdição e L0|seletor de jurisdição]], que devolvem a ''face_id'' e seus parâmetros. <br>No padrão DNGS polígonos, linhas e multipontos só podem ser definidos no interior de uma nação. | |||
O algoritmo de [[GGeohash|GGeohash ''encode'' da ''face_id'']] fornece o ''cell_id'' dentro da respectiva face. Esse tipo de algoritmo pode fazer uso outros dois sistemas de coordenadas: | O algoritmo de [[GGeohash|GGeohash ''encode'' da ''face_id'']] fornece o ''cell_id'' dentro da respectiva face. Esse tipo de algoritmo pode fazer uso outros dois sistemas de coordenadas: | ||
* '''JI0''': cada ''face_id'' pode ser representado por índices ''j0'' e ''i0'' da grade ''L0'', que por sua vez podem levar à origem <math>(x0_{j0},y0_{i0})</math> de cada célula da cobertura, nas coordenadas da projeção SRID. Na prática o que temos também é <math>(x0_{face\_id},y0_{face\_id})</math> a origem em termos de ''face_id''. | * '''JI0''': cada ''face_id'' pode ser representado por índices ''j0'' e ''i0'' da grade ''L0'', que por sua vez podem levar à origem <math>(x0_{j0},y0_{i0})</math> de cada célula da cobertura, nas coordenadas da projeção SRID. Na prática o que temos também é <math>(x0_{face\_id},y0_{face\_id})</math> a origem em termos de ''face_id''. | ||
* '''XY''' da ''face_id'': o sistema de coordenadas planas SRID é reescrito para cada ''face_id'', para que inicie em (0,0). Segue a "convenção cartesiana escolar", de X horizontal e Y vertical. | * '''XY''' da ''face_id'' no nível ''L'': o sistema de coordenadas planas SRID é reescrito para cada ''face_id'', para que inicie em (0,0). Segue a "convenção cartesiana escolar", de X horizontal e Y vertical. <br/>Quando discretizado é denominado ''XYLref'', complementar de ''JIL''. | ||
* '''JIL''', índices '' | * '''JIL''', índices ''J'' e ''I'' da célula-filha da ''face_id'' no nível ''L'': no interior da face, cada célula de nível ''L'' pode ser localizada por seus índices ''j'' e ''i''. O ''encode''/''decode'' de ''cell_id'' é realizado primariamente com essas coordenadas. Geometricamente cada ''jiL'' pode ser associado univocamente ao retângulo da sua célula, ou a um único ''XYref'' (canto inferior esquerdo) ou ao seu ''XYcenter''. | ||
O sistema ''JI'' difere da tradição matemática de indexação de matrizes, com elementos <math>a_{ij}</math>, índice ''i'' variando nas linhas e ''j'' variando nas colunas. A origem tradicional <math>a_{11}</math> é no canto superior esquerdo, enquanto a origem ''XY'' do eixo cartesiano é no canto inferior. | O sistema ''JI'' difere da tradição matemática de indexação de matrizes, com elementos <math>a_{ij}</math>, índice ''i'' variando nas linhas e ''j'' variando nas colunas. A origem tradicional <math>a_{11}</math> é no canto superior esquerdo, enquanto a origem ''XY'' do eixo cartesiano é no canto inferior. |
edições