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.
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 alojados | https://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 mosaico | https://nways.ng/maps/v1/tiles/base/{z}/{x}/{y}.mvt (todos os países num só conjunto de mosaicos) |
| Arquivos | Um 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 letra | https://tiles.nways.ng/maps/v1/fonts/{fontstack}/{range}.pbf (gratuitos, sem chave) |
| Outros conjuntos de mosaicos | detail (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 |
| Formato | Mapbox Vector Tiles (MVT) num arquivo PMTiles v3 |
| Níveis de zoom | De 0 a 15 (mostrados ampliados para além de 15) |
| Cobertura | Nigé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 |
| Estado | Disponí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
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.
| Camada | Conteúdo | Campos úteis |
|---|---|---|
earth | As terras | kind |
water | Mar, lagoas, rios, lagos | kind, name |
landcover | Floresta, erva, terras agrícolas, mato | kind |
landuse | Parques, mercados, hospitais, escolas, zonas residenciais | kind |
roads | Estradas e caminhos | kind (highway, major_road, minor_road, path, other), kind_detail, name, ref, oneway, is_bridge, is_tunnel |
buildings | Implantação dos edifícios | height, min_height, addr_housenumber |
boundaries | Fronteiras dos países e limites dos estados | kind, kind_detail, disputed |
places | Países, estados, cidades, localidades, bairros | kind, name, population, capital, min_zoom |
pois | Pontos de interesse | kind, 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