Códigos de casa dos Camarões
Cada lote dos Camarões tem um código de casa N-Ways. Consulte um, encontre o código num ponto, descodifique-o offline com o motor aberto ou aloje o registo você mesmo, e cite o N-Ways onde o mostrar.
Nesta página
O que é um código
Cada lote dos Camarões tem um código de casa N-Ways: o nome curto do seu bairro ou aldeia e um número de três a cinco algarismos, como Intendance 137 ou Bonapriso 1401. Cada código é único em todo o país por si só e leva ao portão do lote. Os códigos começam provisórios e passam a confirmados quando os moradores concordam na aplicação N-Ways.
- Forma memorizada, a que as pessoas dizem, escrevem e pintam nas placas:
Bonapriso 14 01, também sem o espaço (Bonapriso 1401); cinco algarismos leem-se como um par e uma centena (Mokolo 18 834). Maiúsculas ou minúsculas, com ou sem acentos, e o nome oficial em vez do nome curto (Carrefour Intendance 137). Os nomes estão em francês ou em inglês, a língua do arrondissement. As pessoas nunca veem nem escrevem um algarismo de controlo. - Forma máquina, para sistemas, códigos QR e ligações:
CM-YDE1-011-137-5(o arrondissement, a zona, o número e um algarismo de controlo de Damm que deteta qualquer algarismo errado e qualquer troca de dois algarismos vizinhos). - Código de ponto, para qualquer ponto:
CM-DLA1 E0449 N0268, uma quadrícula de 10 m da grelha do seu arrondissement; cada ficha traz também o Plus Code do seu portão (6FMHVG89+H53).
Numa rua codificada de Yaoundé ou de Douala, a rua oficial vem primeiro, em officialAddress com "coverage": "official-street"; um número de porta do plano das câmaras ocupa o seu lugar assim que for conhecido, e as moradas da Campost preenchem um campo reservado no dia em que forem publicadas. Não é preciso nenhum arrondissement para descodificar um código; municipality é obtido a partir da posição. O modelo, o motor, o registo de todos os códigos e um servidor pronto a usar são abertos: github.com/n-ways/open-addresses-cameroon. O artigo de investigação (em inglês e em francês) explica cada regra.
Cite o N-Ways sempre que mostrar um código. Mostre «Codes by N-Ways Addressing» junto dos códigos na sua aplicação e cite «N-Ways Addressing for Cameroon, © N-WAYS LIMITED (nways.ng)» com uma ligação para o repositório no ecrã «Sobre» ou na sua documentação. O motor está sob Apache 2.0, os dados sob ODbL 1.0 e os documentos sob CC BY 4.0.
Procurar um código
GET https://map.nways.ng/v1/homecodes/{code}, em que code é a forma memorizada ou máquina, ou um código de ponto num lote, codificado para o URL. Não é precisa chave.
curl "https://map.nways.ng/v1/homecodes/CM-YDE1-011-137-5"{
"country": "CM",
"home": "Intendance 137",
"machine": "CM-YDE1-011-137-5",
"check": 5,
"name": "Intendance",
"officialName": "Carrefour Intendance",
"coverage": "official-street",
"officialAddress": "Rue 1.014, Yaoundé",
"nameProvisional": false,
"municipality": "Yaoundé I",
"fullLine": "Intendance 137",
"spoken": "Intendance, 137",
"status": "provisional",
"issued": "bulk",
"entrance": { "lat": 3.8663911, "lng": 11.5179308, "kind": "centre", "source": "map" },
"location": { "lat": 3.8663911, "lng": 11.5179308 },
"plusCode": "6FMHVG89+H53",
"lote": { "class": "residential", "coverage": "official-street", "enclosed": false, "floorAreaM2": 169.5, "kind": "building", "official": "Rue 1.014, Yaoundé", "rule": "single", "structures": 1, "use": "residential" },
"credit": "N-Ways Addressing for Cameroon, © N-WAYS LIMITED (nways.ng)",
"creditUrl": "https://github.com/n-ways/open-addresses-cameroon"
}| Campo | Descrição |
|---|---|
home, machine | As formas memorizada e máquina. Mostre home (ou fullLine) às pessoas; guarde machine. |
fullLine | O código tal como se diz e se pinta: Intendance 137, Bonapriso 14 01. |
check | O algarismo de controlo da forma máquina, para sistemas; nunca o mostre às pessoas. |
officialName | O nome completo da zona, em letra pequena. Ausente quando é igual a name. |
coverage, officialAddress | Numa rua codificada de Yaoundé ou de Douala, official-street e a rua da câmara: mostre-a primeiro, com o código ao lado. |
nameProvisional | A câmara ainda pode escolher o nome curto. O número nunca muda; o nome pode mudar uma vez, e o antigo continua válido. |
municipality | O arrondissement. Apenas contexto, obtido da posição: nunca necessário para descodificar. |
status | provisional, confirmed (os moradores concordaram) ou retired (já não há casa nesse sítio; o número nunca é reutilizado). |
entrance, location, plusCode | Para onde ir: o portão quando está no mapa, senão o edifício principal, com o seu Plus Code. |
lote, structures | O perfil do lote e de cada edifício: classe, tamanho, pisos quando se conhecem, estado, cada um com a sua fonte. As casas nunca trazem nada sobre as pessoas que lá vivem. |
Erros: 400 homecode_format quando o texto não é um código; 404 homecode_unknown com uma mensagem que diz porquê (um nome que nenhuma zona tem, um número fora de qualquer bloco do seu nome).
Qual é o código aqui?
GET https://map.nways.ng/v1/homecodes/at?lat=…&lng=… responde para um ponto: "status": "found" com o código, ou "none" onde nenhum lote tem ainda código. Um ponto de Douala I responde Douala Bar 1215.
curl "https://map.nways.ng/v1/homecodes/at?lat=4.05&lng=9.70"Pesquisa
Um código escrito na pesquisa do N-Ways, em qualquer das suas formas, encontra o portão do lote como primeiro resultado, com "category": "homecode" e a atribuição em attribution.
Descodificar offline
O motor de referência do repositório (Python, só com a biblioteca padrão) descodifica todas as formas, verifica a forma máquina e lê e escreve códigos de ponto, sem rede: python3 engine/reference/cm_engine.py resolve Bonapriso 14 01. Os seus vetores de conformidade (engine/reference/vectors.json) servem de teste à sua própria implementação, e engine/data/register.json contém cada zona e cada nome com os seus blocos fixos. registry/ contém todos os códigos emitidos, um ficheiro por arrondissement, e o servidor do registo em server/ serve-o a partir da sua própria máquina.
Aloje-os você mesmo
Pode servir os códigos dos Camarões a partir dos seus próprios servidores, sem chamar o N-Ways. O repositório no GitHub contém todos os códigos emitidos (registry/), as zonas dos códigos e o modelo (model/), o motor de referência e um servidor do registo pronto a usar, com a sua API JSON:
git clone https://github.com/n-ways/open-addresses-cameroon
cd open-addresses-cameroon/server
docker compose up -dO servidor importa o registo no primeiro arranque e depois responde às pesquisas na sua máquina; server/README.md descreve a configuração, as cópias de segurança e as atualizações, e docs/api.md cada ponto de acesso. A sua cópia é só de leitura: os códigos novos vêm de um único emissor por país, o N-Ways salvo se o Estado designar outro, para que nenhum número seja dado duas vezes. Volte a puxar o repositório para obter os códigos emitidos desde então.
| O que usa | Licença | O que lhe pede |
|---|---|---|
| O motor, o servidor e as ferramentas | Apache 2.0 | Mantenha a licença e o NOTICE quando os distribuir ou alterar. |
Os códigos, as zonas e o modelo (registry/, model/, engine/data/) | ODbL 1.0 | Cite «N-Ways Addressing for Cameroon, © N-WAYS LIMITED (nways.ng)», com ligação para o repositório, onde mostrar os códigos. Uma base de dados feita a partir dos dados e partilhada é partilhada também sob ODbL 1.0. |
Os artigos e outros documentos (docs/) | CC BY 4.0 | Cite o N-Ways e diga o que alterou. |
Os termos completos, e a linha de crédito dos mapas e conjuntos de dados feitos a partir dos dados (que cita também o OpenStreetMap), estão em LICENSING.md. Pode dizer que o seu produto usa N-Ways Addressing, não que é o N-Ways nem que é aprovado pelo N-Ways.