osmc:CM/SQL: mudanças entre as edições

m
sem sumário de edição
mSem resumo de edição
Linha 2: Linha 2:


== Teste online ==
== Teste online ==
A visualização Web é oferecida no site AFAcodes, por exemplo as células 8a, 8b e 9 são visualizadas por <code>https://afa.codes/CM+8b,8e,9</code>. São construídas pelo ''endpoint'' <code><nowiki>https://afa.codes/geo:osmcodes:CM+{codigos}.json</nowiki></code>. Por exemplo <code>https://afa.codes/geo:osmcodes:CM+8b,8e,9.json</code>.   
A visualização Web é oferecida no site AFAcodes, por exemplo as células científicas "8a", "8b" e "9" são visualizadas por <code>https://afa.codes/CM+8b,8e,9</code>. São construídas pelo ''endpoint'' <code><nowiki>https://afa.codes/geo:osmcodes:CM+{codigos}.json</nowiki></code>. Por exemplo <code>https://afa.codes/geo:osmcodes:CM+8b,8e,9.json</code>.   


No NGINX o ''endpoint'' redireciona a solicitação para o PostgreSQL através do PostgREST, no SQL-schema <code>api</code>. No exemplo é utilizada a chamada <code>api.osmcode_decode_scientific_absolute('8b,8e,9','CM',16)</code>. Maiores detalhes sobre a API em [[osmc:Api]].
No NGINX o ''endpoint'' redireciona a solicitação para o PostgreSQL através do PostgREST, no SQL-schema <code>api</code>. No exemplo é utilizada a chamada <code>api.osmcode_decode_scientific_absolute('8b,8e,9','CM',16)</code>. Maiores detalhes sobre a API em [[osmc:Api]].
Linha 19: Linha 19:
   INCLUDING ALL
   INCLUDING ALL
);
);
INSERT INTO grid_cm.l0 AS
INSERT INTO grid_cm.l0
   SELECT *  
   SELECT *, ST_Transform_resilient(geom,geom4326) as geom4326
   FROM osmc.decode_scientific_absolute_geoms(
   FROM osmc.decode_scientific_absolute_geoms(
         '1,2,3,4,5,6,7,8,9,a,b,c,d',
         '1,2,3,4,5,6,7,8,9,a,b,c,d',
Linha 28: Linha 28:
</syntaxhighlight>
</syntaxhighlight>


A lista de de geocódigos é conhecida, faz parte da configuração do país, fixada no [https://git.afa.codes/CM/blob/main/conf.yaml#L37 git oficial do país], como ''grid_l0_cell_sci_base''.
A lista de de geocódigos no argumento da função ''decode'' é conhecida, faz parte da configuração do país, fixada no [https://git.afa.codes/CM/blob/main/conf.yaml#L37 git oficial do país], como ''grid_l0_cell_sci_base''.


A tabela gerada tem a seguinte estrutura:
A tabela gerada tem a seguinte estrutura:
Linha 34: Linha 34:
     Column    |  Type  | Description                                   
     Column    |  Type  | Description                                   
----------------+----------+-------------------
----------------+----------+-------------------
  code          | text    | Geocode, withoutout the country prefix.
  gid_vbit      | varbit  | PK. The complete geocode (with country prefix), expressed as hierarchical bit string.
  area          | real    | Area in squared meters
code_b16h      | text    | Geocode, withoutout the country prefix.
side          | real    | Cell side size, in meters
  is_border      | text    | flag indicating cell intersecting the country border.
truncated_code | text    | ?
base          | text    | ?
  geom          | geometry | Original geometri, in the native SRID projection.
  geom          | geometry | Original geometri, in the native SRID projection.
  geom4326      | geometry | Expanded geometry with no projection, with more points to avoid efeito varal.
  geom4326      | geometry | The geometry with no projection, and without  by ST_Transform_resilient().  
</pre>
</pre>


Os recortes podem ser obtidos pela função de recortes por jurisdição, ''osmc.grid_jurisdiction_cutcells''(), que faz simplesmente o ST_Intersect da geometria da jurisdição com as células.
Os recortes podem ser obtidos pela função de recortes por jurisdição, ''osmc.grid_jurisdiction_cutcells''(), que faz simplesmente o ST_Intersect da geometria da jurisdição com as células. A redundância na geometria, com coluna  geom4326, só é necessária nas células muito grandes. Faz uso da função ST_Transform_resilient() para resolver o  https://gis.stackexchange.com/q/444441/7505


==Grade L1==
==Grade L1==
2 384

edições