Skip to content

Commit 211134b

Browse files
committed
Adiciona SV em apis sci. osm-codes/SV#1
1 parent 5c7e120 commit 211134b

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/step01ggeohash-api.sql

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ CREATE or replace FUNCTION api.osmcode_encode_scientific(
3737
WHEN 'CO' THEN osmc.encode_scientific_co(ST_Transform(ST_SetSRID(ST_MakePoint(u[2],u[1]),4326), 9377),u[4],grid)
3838
WHEN 'UY' THEN osmc.encode_scientific_uy(ST_Transform(ST_SetSRID(ST_MakePoint(u[2],u[1]),4326), 32721),u[4],grid)
3939
WHEN 'EC' THEN osmc.encode_scientific_ec(ST_Transform(ST_SetSRID(ST_MakePoint(u[2],u[1]),4326), 32717),u[4],grid)
40+
WHEN 'SV' THEN osmc.encode_scientific_sv(ST_Transform(ST_SetSRID(ST_MakePoint(u[2],u[1]),4326), 5399),u[4],grid)
4041
END
4142
FROM ( SELECT str_geouri_decode(uri) ) t(u)
4243
$wrap$ LANGUAGE SQL IMMUTABLE;
@@ -144,6 +145,7 @@ CREATE or replace FUNCTION api.osmcode_decode_scientific_absolute(
144145
WHEN p_base <> 18 AND length(code16h) > 12 AND up_iso IN ('BR') THEN substring(code16h,1,12)
145146
WHEN p_base <> 18 AND length(code16h) > 11 AND up_iso IN ('EC','CO','UY') THEN substring(code16h,1,11)
146147
WHEN p_base <> 18 AND length(code16h) > 10 AND up_iso IN ('CM') THEN substring(code16h,1,10)
148+
WHEN p_base <> 18 AND length(code16h) > 9 AND up_iso IN ('SV') THEN substring(code16h,1,9)
147149
WHEN p_base = 18 AND length(code) > 11 AND up_iso IN ('BR') THEN substring(code,1,11)
148150
WHEN p_base = 18 AND length(code) > 10 AND up_iso IN ('UY') THEN substring(code,1,10)
149151
ELSE (CASE WHEN p_base=18 THEN code ELSE code16h END)
@@ -154,6 +156,7 @@ CREATE or replace FUNCTION api.osmcode_decode_scientific_absolute(
154156
WHEN p_base <> 18 AND length(code16h) > 12 AND up_iso IN ('BR') THEN TRUE
155157
WHEN p_base <> 18 AND length(code16h) > 11 AND up_iso IN ('EC','CO','UY') THEN TRUE
156158
WHEN p_base <> 18 AND length(code16h) > 10 AND up_iso IN ('CM') THEN TRUE
159+
WHEN p_base <> 18 AND length(code16h) > 9 AND up_iso IN ('SV') THEN TRUE
157160
WHEN p_base = 18 AND length(code) > 11 AND up_iso IN ('BR') THEN TRUE
158161
WHEN p_base = 18 AND length(code) > 10 AND up_iso IN ('UY') THEN TRUE
159162
ELSE NULL
@@ -164,6 +167,7 @@ CREATE or replace FUNCTION api.osmcode_decode_scientific_absolute(
164167
WHEN length(code16h) > 12 AND up_iso IN ('BR') THEN natcod.baseh_to_vbit(substring(code16h,1,12),16)
165168
WHEN length(code16h) > 11 AND up_iso IN ('EC','CO','UY') THEN natcod.baseh_to_vbit(substring(code16h,1,11),16)
166169
WHEN length(code16h) > 10 AND up_iso IN ('CM') THEN natcod.baseh_to_vbit(substring(code16h,1,10),16)
170+
WHEN length(code16h) > 10 AND up_iso IN ('SV') THEN natcod.baseh_to_vbit(substring(code16h,1,9),16)
167171
ELSE natcod.baseh_to_vbit(code16h,16)
168172
END AS codebits,
169173

@@ -186,8 +190,8 @@ CREATE or replace FUNCTION api.osmcode_decode_scientific_absolute(
186190
WHERE is_country IS TRUE AND isolabel_ext = c.up_iso -- cobertura nacional apenas
187191
AND
188192
CASE
189-
WHEN up_iso IN ('CO','CM') THEN ( ( osmc.extract_L0bits(cbits) # codebits::bit(4) ) = 0::bit(4) ) -- 1 dígitos base16h
190-
ELSE ( ( osmc.extract_L0bits(cbits) # codebits::bit(8) ) = 0::bit(8) ) -- 2 dígitos base16h
193+
WHEN up_iso IN ('CO','CM','SV') THEN ( ( osmc.extract_L0bits(cbits) # codebits::bit(4) ) = 0::bit(4) ) -- 1 dígitos base16h
194+
ELSE ( ( osmc.extract_L0bits(cbits) # codebits::bit(8) ) = 0::bit(8) ) -- 2 dígitos base16h
191195
END
192196
) v
193197

0 commit comments

Comments
 (0)