Passar do Google Maps Platform para o N-Ways
O mesmo modelo de projetos, chaves restringidas e quotas, com mapas, endereços e percursos feitos para a África Ocidental. O que corresponde a quê, e como migrar uma API de cada vez.
Nesta página
Se a sua aplicação já usa o Google Maps Platform, o essencial do que sabe continua válido: o N-Ways usa o mesmo modelo de projetos, chaves restringidas, quotas por API e motivos de erro. Este guia faz corresponder cada elemento ao seu equivalente N-Ways e mostra o que muda no seu código. Pode migrar uma API de cada vez.
O N-Ways não está afiliado à Google. O Google Maps Platform só é citado aqui para o ajudar a migrar; os seus produtos são descritos por palavras nossas. Consulte a documentação da Google para saber como funcionam.
Porquê mudar
- Os endereços que se usam aqui: os códigos postais NIPOST até ao edifício, os códigos GhanaPost GPS, os pontos de referência e as alcunhas.
- A forma como as pessoas se deslocam aqui: percursos de mototáxi (okada), keke e danfo que respeitam as zonas proibidas, barcos, comboios, passagens de fronteira e tarifas em naira, em cedis, em F CFA, em dólares liberianos, em francos guineenses, em leones e em escudos cabo-verdianos.
- Uma fatura mais leve: uma franquia gratuita para cada API todos os meses, e preços que são uma fração dos das plataformas mundiais, faturados em moeda local.
- Uma tecnologia cartográfica aberta: os mapas assentam em MapLibre e em mosaicos vetoriais, por isso pode mudar o seu estilo e mostrar os dados N-Ways em qualquer mapa, com a menção.
Conceitos
| Google Maps Platform | N-Ways | O que muda |
|---|---|---|
| Projeto na cloud com faturação | Projeto | Um projeto por aplicação ou por cliente; sem conta de faturação separada. Crédito pré-pago ou fatura. |
| Ativar cada API | O plano do projeto | Sem passo de ativação: um projeto pode chamar as API do seu plano, e cada chave pode ser ainda mais restringida. |
| Chave de API | Chave de API (nw_…) | Enviada com key= ou com o cabeçalho X-NWays-Api-Key. |
| Restrições de aplicação | Restrições de aplicação | Os mesmos quatro tipos: sites (com carateres universais), pacote Android e SHA-1, bundle ID iOS, endereços IP. Um só tipo por chave. |
| Restrições de API | Restrições de API | Assinale as API que uma chave pode chamar. |
| Quotas e limites | Limites de débito e limites diários | Por chave e por API, e, se quiser, para todo o projeto. Quotas e limites |
| Máscaras de campos | fields= | Escolha os campos de que precisa; para os lugares e os percursos, isso também determina o escalão de preço. |
| Utilização gratuita mensal | Chamadas gratuitas para cada API | Contadas por API, não um crédito partilhado. |
| Tokens de sessão para o preenchimento automático | Tokens de sessão | O mesmo princípio: um token por pesquisa, terminado pela escolha de um resultado. |
API
| Se usa | No N-Ways, use | Estado |
|---|---|---|
| Maps JavaScript API | SDK Maps para a web (@nways/maps, baseado em MapLibre GL JS) | Disponível |
| Maps SDK for Android / iOS | N-Ways Maps para Android e para iOS (baseado em MapLibre Native) | Disponível |
| Map Tiles API | API de Mosaicos (mosaicos vetoriais, PMTiles) | Disponível |
| Maps Static API | Mapas estáticos | Ver a respetiva página |
| Geocoding API | Geocodificação e geocodificação inversa | Disponível |
| Places API: nearby, text search, details | Pesquisa e lugares | Disponível |
| Places Autocomplete | Preenchimento automático | Ver a respetiva página |
| Address Validation API | Validação de endereços | Ver a respetiva página |
| Routes API: compute routes | Percursos | Disponível |
| Routes API: route matrix | Matriz de percursos | Ver a respetiva página |
| Route Optimization API | Otimização de percursos | Ver a respetiva página |
| Soluções de frota e de entrega de última milha | Seguimento de frota e webhooks | Ver a respetiva página |
| Camada de trânsito (Traffic layer) | Trânsito (GeoJSON) e o feed de trânsito | Disponível |
| Street View, Elevation, Roads, Air Quality, Solar, Pollen | Sem equivalente | Mantenha-os onde estão |
O N-Ways tem também API sem equivalente na Google: estimativas de tarifas para táxis, okadas, kekes, autocarros e barcos, a pesquisa de códigos postais NIPOST e GhanaPost, e percursos que respeitam as proibições de okada e keke.
Um mapa numa página web
Os mapas N-Ways são mapas MapLibre GL JS. As principais diferenças em relação ao mapa JavaScript da Google:
- As coordenadas escrevem-se
[longitude, latitude]em MapLibre (a ordem GeoJSON), e não{ lat, lng }. É a mudança que apanha toda a gente: troque-as. - Os níveis de zoom são muito parecidos; o MapLibre aceita zooms fracionários.
- Marcadores:
new maplibregl.Marker().setLngLat([lng, lat]).addTo(map). As janelas de informação sãomaplibregl.Popup. - As formas (polilinhas, polígonos, círculos) são fontes GeoJSON com camadas
lineoufill, desenhadas pela GPU: mesmo aos milhares, continuam fluidas. - Eventos:
map.on('click', (e) => e.lngLat); o mapa está pronto no momento demap.on('load').
<link rel="stylesheet" href="https://nways.ng/sdk/v1/maplibre-gl.css" />
<div id="map" style="height: 480px"></div>
<script type="module">
import { createMap, maplibregl } from 'https://nways.ng/sdk/v1/nways-maps.standalone.js'
// Lagos, Allen Avenue. Atenção à ordem: primeiro a longitude.
const map = createMap({ container: 'map', key: 'A_SUA_CHAVE_API', center: [3.3515, 6.6018], zoom: 15 })
new maplibregl.Marker({ color: '#0b7a3e' })
.setLngLat([3.3515, 6.6018])
.setPopup(new maplibregl.Popup().setText('Ponto de recolha'))
.addTo(map)
</script>Serviços web
- Os erros são erros HTTP: uma chave recusada recebe
401ou403com umreason(API_KEY_HTTP_REFERRER_BLOCKED,API_KEY_SERVICE_BLOCKED…), nunca200com uma palavra de estado. Muitos motivos têm o mesmo nome que na Google. Erros - Os pontos nos pedidos escrevem-se
{ "lat": …, "lng": … }oulat,lngnos parâmetros; as linhas nas respostas são pares GeoJSON[lng, lat], não polilinhas codificadas, por isso vão diretamente para um mapa. - As distâncias e as durações são números simples:
distanceMem metros,durationSem segundos. - Línguas:
lang=enoulang=fr. - Os identificadores são cadeias que pode guardar para sempre (
osm:n501540907,ghanapost:GA-183-8164); não são identificadores de lugar da Google, por isso é preciso voltar a encontrar cada lugar uma vez, pelo nome ou pela posição.
Preparar a migração
- Obtenha um projeto e chaves, uma por site, aplicação e servidor, restringidas da mesma forma que as suas chaves Google. Primeiros passos
- Comece pelo lado do servidor: a geocodificação e os percursos são os mais fáceis de mudar e de comparar, atrás do seu próprio backend.
- Use os dois durante uma semana: envie uma parte dos pedidos para o N-Ways e compare as respostas, as horas de chegada estimadas e a opinião dos seus estafetas.
- Mude os mapas nas suas aplicações web e móveis, mantendo a menção visível. Atribuição
- Substitua os identificadores guardados: substitua os identificadores de lugar da Google por identificadores N-Ways à medida que os clientes voltam, ou de uma só vez, pela posição.
- Defina limites em cada chave para que um erro não possa fazer disparar a fatura, e depois desative as chaves Google que já não usa.
Ajuda para migrar
Indique-nos as API que usa e os seus volumes mensais em hello@nways.ng: ajudamos a preparar a migração e a estimar a sua fatura.