N-Ways
Documentação para programadoresAPI de Mosaicos

API de Mosaicos

Os mosaicos vetoriais por trás de cada mapa N-Ways, para os seus próprios estilos: estradas, edifícios, água, terras, localidades e pontos de interesse na Nigéria, no Gana, no Benim, no Togo, no Gabão, na Costa do Marfim, na Libéria, na Guiné, na Serra Leoa, na Guiné-Bissau, no Senegal, nos Camarões, no Burkina Faso, em Cabo Verde e na Gâmbia.

Nesta página

Como o N-Ways serve os mosaicos

Os dados cartográficos do N-Ways são fornecidos sob a forma de mosaicos vetoriais, de duas maneiras: um mosaico de cada vez (.mvt, para qualquer biblioteca cartográfica), ou num arquivo PMTiles lido aos bocados com pedidos HTTP parciais, ditos range (MapLibre com o protocolo da biblioteca pmtiles), que fica bem em cache nos telemóveis e na periferia da rede.

Estilos alojadoshttps://nways.ng/maps/v1/styles/streets-light.json, streets-dark.json (?lang=fr para os nomes em francês; ?format=pmtiles para ler o arquivo)
Um mosaicohttps://nways.ng/maps/v1/tiles/base/{z}/{x}/{y}.mvt (todos os países num só conjunto de mosaicos)
ArquivosUm por país, como https://tiles.nways.ng/maps/v1/tiles/nigeria.pmtiles (a CDN, sem chave), ou https://nways.ng/maps/v1/tiles/nigeria.pmtiles (com a chave). Os arquivos de cada país estão listados em countries.json, na mesma pasta.
Tipos de letrahttps://tiles.nways.ng/maps/v1/fonts/{fontstack}/{range}.pbf (gratuitos, sem chave)
Outros conjuntos de mosaicosdetail (faixas, marcações, todos os edifícios, zoom 12 a 16) e transit (ferrovia, estações, barcos, obras, zoom 5 a 15), um mosaico de cada vez; em arquivos, nigeria-detail.pmtiles e nigeria-transit.pmtiles
FormatoMapbox Vector Tiles (MVT) num arquivo PMTiles v3
Níveis de zoomDe 0 a 15 (mostrados ampliados para além de 15)
CoberturaNigéria, Gana, Benim, Togo, Gabão, Costa do Marfim, Libéria, Guiné, Serra Leoa, Guiné-Bissau, Senegal, Camarões, Burkina Faso, Cabo Verde e Gâmbia; a extensão e o contorno de cada país estão em countries.json
EstadoDisponível

Um mosaico base, detail ou transit vem do arquivo do país onde se encontra: um só endereço de mosaicos cobre assim os quinze países; um arquivo lido diretamente só cobre um país. Com ?format=pmtiles, um estilo alojado tem uma fonte por país. Uma leitura de estilo alojado conta como um carregamento de mapa: é aí que a sua chave é verificada. Os estilos alojados leem os arquivos e os tipos de letra a partir da CDN tiles.nways.ng, uma cópia pública cujas leituras não pedem chave e não são contadas. Na API, cada mosaico, ou cada sessão de leitura do arquivo a partir de um site, conta como uma chamada de Mosaicos. Os tipos de letra nunca são faturados. Os endereços antigos (https://nways.ng/tiles/…, /fonts/…) continuam a funcionar.

Usá-los num estilo

JavaScript
import * as maplibregl from 'maplibre-gl'
import { Protocol } from 'pmtiles'

maplibregl.addProtocol('pmtiles', new Protocol().tile)

new maplibregl.Map({
  container: 'map',
  center: [3.3792, 6.5244],
  zoom: 12,
  style: {
    version: 8,
    glyphs: 'https://tiles.nways.ng/maps/v1/fonts/{fontstack}/{range}.pbf',
    sources: {
      nways: {
        type: 'vector',
        // O arquivo de um país (countries.json lista-os todos).
        url: 'pmtiles://https://tiles.nways.ng/maps/v1/tiles/nigeria.pmtiles',
        attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors · N-Ways',
      },
    },
    layers: [
      { id: 'land', type: 'background', paint: { 'background-color': '#eef0e6' } },
      { id: 'water', type: 'fill', source: 'nways', 'source-layer': 'water', paint: { 'fill-color': '#9cc7e4' } },
      { id: 'roads', type: 'line', source: 'nways', 'source-layer': 'roads', paint: { 'line-color': '#ffffff', 'line-width': 1.5 } },
    ],
  },
})

O SDK Maps faz tudo isto por si, com um estilo completo.

Camadas

Os mosaicos seguem as camadas do mapa de base Protomaps. Cada objeto tem um kind; os que têm nome têm name (o nome local), e muitas vezes name:en e name:fr.

CamadaConteúdoCampos úteis
earthAs terraskind
waterMar, lagoas, rios, lagoskind, name
landcoverFloresta, erva, terras agrícolas, matokind
landuseParques, mercados, hospitais, escolas, zonas residenciaiskind
roadsEstradas e caminhoskind (highway, major_road, minor_road, path, other), kind_detail, name, ref, oneway, is_bridge, is_tunnel
buildingsImplantação dos edifíciosheight, min_height, addr_housenumber
boundariesFronteiras dos países e limites dos estadoskind, kind_detail, disputed
placesPaíses, estados, cidades, localidades, bairroskind, name, population, capital, min_zoom
poisPontos de interessekind, name, min_zoom

Tipos de letra

As etiquetas do mapa usam Inter. As pilhas de tipos de letra são Inter-Regular, Inter-Medium, Inter-SemiBold, Inter-Bold e Inter-Italic; use uma de cada vez, por exemplo "text-font": ["Inter-Medium"].

Cache

Os navegadores e o MapLibre guardam os mosaicos em cache por si. Não transfira arquivos inteiros nem percorra todos os mosaicos para os guardar: para mapas sem rede, use os pacotes offline. O que pode guardar