Rio Grande do Sul/Controle de Qualidade

From OpenStreetMap Wiki
Jump to: navigation, search

Números de telefone

O objetivo é manter os números de telefone no Rio Grande do Sul em um único formato.

Não existe consenso na comunidade brasileira em qual formato usar. Por isso, o formato utilizado foi fruto de observação empírica do que, no geral, vinha sendo usado no Estado e, com a obrigatoriedade do nono digito, foi justaposto o número "9" aos números móveis.

Assim, para números fixos está sendo usado o formato +55 ab cdef-ghij (exemplo) e para números móveis o formato +55 lm 9opqr-stuv (exemplo), sendo que mais de um número de telefone são separados por ";" (exemplo).

Para encontrar as geometrias que possuem as tag phone=*, contact:phone=*, fax=*, contact:fax=*, whatsapp=* ou contact:whatsapp=* com valores diferentes dos formatos utilizados usamos expressões regulares (ER) e Overpass Query Language.

A diferenciação entre números móveis e fixos é baseada nas regras gerais do Plano de Numeração Brasileiro, com as seguintes ER para cada tipo de serviço descrito no plano:

Expressão regular para códigos DDD (Discagem Direta a Distância):

ER0: (1[1-9]|2[1,2,4,7,8]|3[1-5,7,8]|4[1-9]|5[1,3-5]|6[1-9]|7[1,3-5,7,9]|8[1-9]|9[1-9])

Serviço Móvel Celular:

ER1: 9[0-9]{4}-[0-9]{4}

Serviço Telefônico Fixo Comutado:

ER2: [2-5][0-9]{3}-[0-9]{4}

Serviço Telefônico Fixo Comutado - Códigos não Geográficos (CNG):

ER3: 0[3,5,8,9]00 [0-9]{2,3} [0-9]{4}

Serviço Telefônico Fixo Comutado - Serviço de Utilidade Publica (SUP):

ER4: 1(0[0,2-6]|1[5-8]|2[3,5,7,8]|3[0,2-6,8]|4[1,2,5-8]|5[0-9]|6[0-8]|7[4]|8[0,1,5,8]|9[0-4,7-9])

Serviço Móvel Especializado:

ER5: (1[1-9] 7[0,7-9]|2[1,2,4] 7[0,7,8]|27 78|3[1,4,7] 7[7,8]|4[1-4] 78|4[7,8] 78|5[1,4] 78|61 78|62 78|65 78|7[1,3,5] 78|81 78|85 78)[0-9]{2}-[0-9]{4}

Combinando essas expressões com a possibilidade de existirem vários números separados por ";", temos a ER

((([+]55 ER0 (ER1|ER2))|(ER3)|(ER4)|([+]55 ER5));?){1,}

ou seja,

ER: ((([+]55 (1[1-9]|2[1,2,4,7,8]|3[1-5,7,8]|4[1-9]|5[1,3-5]|6[1-9]|7[1,3-5,7,9]|8[1-9]|9[1-9]) (9[0-9]{4}|[2-5][0-9]{3})-[0-9]{4})|(0[3,5,8,9]00 [0-9]{2,3} [0-9]{4})|(1(0[0,2-6]|1[5-8]|2[3,5,7,8]|3[0,2-6,8]|4[1,2,5-8]|5[0-9]|6[0-8]|7[4]|8[0,1,5,8]|9[0-4,7-9]))|([+]55 (1[1-9] 7[0,7-9]|2[1,2,4] 7[0,7,8]|27 78|3[1,4,7] 7[7,8]|4[1-4] 78|4[7,8] 78|5[1,4] 78|61 78|62 78|65 78|7[1,3,5] 78|81 78|85 78)[0-9]{2}-[0-9]{4}));?){1,}

utilizada na consulta a seguir, executada numa instancia da Overpass API, por exenplo Veja-a no overpass-turbo, com os resultados sendo verificados manualmente usando o JOSM ou Level0.

[out:xml][timeout:300];
{{geocodeArea:RS, Brasil}}->.a;
(
nwr
["contact:phone"!~"^((([+]55 (1[1-9]|2[1,2,4,7,8]|3[1-5,7,8]|4[1-9]|5[1,3-5]|6[1-9]|7[1,3-5,7,9]|8[1-9]|9[1-9]) (9[0-9]{4}|[2-5][0-9]{3})-[0-9]{4})|(0[3,5,8,9]00 [0-9]{2,3} [0-9]{4})|(1(0[0,2-6]|1[5-8]|2[3,5,7,8]|3[0,2-6,8]|4[1,2,5-8]|5[0-9]|6[0-8]|7[4]|8[0,1,5,8]|9[0-4,7-9]))|([+]55 (1[1-9] 7[0,7-9]|2[1,2,4] 7[0,7,8]|27 78|3[1,4,7] 7[7,8]|4[1-4] 78|4[7,8] 78|5[1,4] 78|61 78|62 78|65 78|7[1,3,5] 78|81 78|85 78)[0-9]{2}-[0-9]{4}));?){1,}$"]
["contact:phone"!](area.a);
nwr
["phone"!~"^((([+]55 (1[1-9]|2[1,2,4,7,8]|3[1-5,7,8]|4[1-9]|5[1,3-5]|6[1-9]|7[1,3-5,7,9]|8[1-9]|9[1-9]) (9[0-9]{4}|[2-5][0-9]{3})-[0-9]{4})|(0[3,5,8,9]00 [0-9]{2,3} [0-9]{4})|(1(0[0,2-6]|1[5-8]|2[3,5,7,8]|3[0,2-6,8]|4[1,2,5-8]|5[0-9]|6[0-8]|7[4]|8[0,1,5,8]|9[0-4,7-9]))|([+]55 (1[1-9] 7[0,7-9]|2[1,2,4] 7[0,7,8]|27 78|3[1,4,7] 7[7,8]|4[1-4] 78|4[7,8] 78|5[1,4] 78|61 78|62 78|65 78|7[1,3,5] 78|81 78|85 78)[0-9]{2}-[0-9]{4}));?){1,}$"]
["phone"!](area.a);
nwr
["contact:fax"!~"^((([+]55 (1[1-9]|2[1,2,4,7,8]|3[1-5,7,8]|4[1-9]|5[1,3-5]|6[1-9]|7[1,3-5,7,9]|8[1-9]|9[1-9]) (9[0-9]{4}|[2-5][0-9]{3})-[0-9]{4})|(0[3,5,8,9]00 [0-9]{2,3} [0-9]{4})|(1(0[0,2-6]|1[5-8]|2[3,5,7,8]|3[0,2-6,8]|4[1,2,5-8]|5[0-9]|6[0-8]|7[4]|8[0,1,5,8]|9[0-4,7-9]))|([+]55 (1[1-9] 7[0,7-9]|2[1,2,4] 7[0,7,8]|27 78|3[1,4,7] 7[7,8]|4[1-4] 78|4[7,8] 78|5[1,4] 78|61 78|62 78|65 78|7[1,3,5] 78|81 78|85 78)[0-9]{2}-[0-9]{4}));?){1,}$"]
["contact:fax"!](area.a);
nwr
["fax"!~"^((([+]55 (1[1-9]|2[1,2,4,7,8]|3[1-5,7,8]|4[1-9]|5[1,3-5]|6[1-9]|7[1,3-5,7,9]|8[1-9]|9[1-9]) (9[0-9]{4}|[2-5][0-9]{3})-[0-9]{4})|(0[3,5,8,9]00 [0-9]{2,3} [0-9]{4})|(1(0[0,2-6]|1[5-8]|2[3,5,7,8]|3[0,2-6,8]|4[1,2,5-8]|5[0-9]|6[0-8]|7[4]|8[0,1,5,8]|9[0-4,7-9]))|([+]55 (1[1-9] 7[0,7-9]|2[1,2,4] 7[0,7,8]|27 78|3[1,4,7] 7[7,8]|4[1-4] 78|4[7,8] 78|5[1,4] 78|61 78|62 78|65 78|7[1,3,5] 78|81 78|85 78)[0-9]{2}-[0-9]{4}));?){1,}$"]
["fax"!](area.a);
nwr
["whatsapp"!~"^((([+]55 (1[1-9]|2[1,2,4,7,8]|3[1-5,7,8]|4[1-9]|5[1,3-5]|6[1-9]|7[1,3-5,7,9]|8[1-9]|9[1-9]) (9[0-9]{4}|[2-5][0-9]{3})-[0-9]{4})|(0[3,5,8,9]00 [0-9]{2,3} [0-9]{4})|(1(0[0,2-6]|1[5-8]|2[3,5,7,8]|3[0,2-6,8]|4[1,2,5-8]|5[0-9]|6[0-8]|7[4]|8[0,1,5,8]|9[0-4,7-9]))|([+]55 (1[1-9] 7[0,7-9]|2[1,2,4] 7[0,7,8]|27 78|3[1,4,7] 7[7,8]|4[1-4] 78|4[7,8] 78|5[1,4] 78|61 78|62 78|65 78|7[1,3,5] 78|81 78|85 78)[0-9]{2}-[0-9]{4}));?){1,}$"]
["whatsapp"!](area.a);
nwr
["contact:whatsapp"!~"^((([+]55 (1[1-9]|2[1,2,4,7,8]|3[1-5,7,8]|4[1-9]|5[1,3-5]|6[1-9]|7[1,3-5,7,9]|8[1-9]|9[1-9]) (9[0-9]{4}|[2-5][0-9]{3})-[0-9]{4})|(0[3,5,8,9]00 [0-9]{2,3} [0-9]{4})|(1(0[0,2-6]|1[5-8]|2[3,5,7,8]|3[0,2-6,8]|4[1,2,5-8]|5[0-9]|6[0-8]|7[4]|8[0,1,5,8]|9[0-4,7-9]))|([+]55 (1[1-9] 7[0,7-9]|2[1,2,4] 7[0,7,8]|27 78|3[1,4,7] 7[7,8]|4[1-4] 78|4[7,8] 78|5[1,4] 78|61 78|62 78|65 78|7[1,3,5] 78|81 78|85 78)[0-9]{2}-[0-9]{4}));?){1,}$"]
["contact:whatsapp"!](area.a);
);
out meta;
>;
out meta qt;

Números de CEP (Código de Endereçamento Postal)

O objetivo é manter os números de CEP no formato abcde-fgh, sem espaço ou outro caractere, como ".", entre o segundo e terceiro dígito. Por exemplo, UFSM ou Travessa Vereador Orcy de Oliveira.

Usamos a consulta a seguir (Veja-a no overpass-turbo) e verificamos manualmente os resultados, utilizando o JOSM ou Level0, com geometrias que possuem as tag postal_code=* e addr:postcode=* diferentes dos formatos padronizados e que não estão vazias.

Reparem que a consulta também busca pelas tags postal_code:side:odd=* e postal_code:side:even=*. Em Santa Maria/RS são usadas para casos onde um logradouro tem números de CEP diferentes para cada um dos lados, como é o caso desse trecho da Rua Silva Jardim.

[out:xml][timeout:900];
{{geocodeArea:RS, Brasil}}->.searchArea;
(
nwr
["addr:postcode"!~"^[0-9]{5}-[0-9]{3}$"]
["addr:postcode"!](area.searchArea);
nwr
["postal_code"!~"^[0-9]{5}-[0-9]{3}$"]
["postal_code"!](area.searchArea);
nwr
["postal_code:side:even"!~"^[0-9]{5}-[0-9]{3}$"]
["postal_code:side:even"!](area.searchArea);
nwr
["postal_code:side:odd"!~"^[0-9]{5}-[0-9]{3}$"]
["postal_code:side:odd"!](area.searchArea);
);
out meta;
>;
out meta qt;