SDK Maps para iOS
Mapas N-Ways na sua aplicação para iPhone e iPad, em SwiftUI ou UIKit, sobre o MapLibre Native.
Nesta página
Versão 1.0. O pacote Swift ainda não está num repositório público: peça-nos o código-fonte em hello@nways.ng e acrescente-o como pacote local. Os mapas nas aplicações iOS são gratuitos (nenhum carregamento de mapa faturado). Preços
O que é
Um pacote Swift sobre o MapLibre Native para iOS (6.x), para SwiftUI e UIKit. Este pacote:
- aplica o estilo alojado do N-Ways (claro ou escuro, nomes em inglês ou em francês);
- envia a sua chave e o identificador de bundle da sua aplicação (
X-Ios-Bundle-Identifier) com cada pedido para o N-Ways, e nunca para mais ninguém, para que uma chave restringida à sua aplicação funcione; - mantém a menção «© N-Ways · © OpenStreetMap contributors · Protomaps» no mapa;
- tem um cliente para a geocodificação, os códigos postais, o preenchimento automático, a validação de endereços, os lugares, os percursos, a matriz de percursos e as tarifas.
iOS 15 ou mais recente. import NWaysMaps também lhe dá os tipos do MapLibre.
Instalação
No Xcode: File → Add Package Dependencies… → Add Local…, e depois escolha a pasta do SDK; ou num Package.swift:
dependencies: [.package(path: "../sdk-native")],
targets: [.target(name: "MyApp", dependencies: [.product(name: "NWaysMaps", package: "sdk-native")])]Restrinja a sua chave ao identificador de bundle da sua aplicação. Chaves de API
Mostrar um mapa
import NWaysMaps
import SwiftUI
@main
struct RiderApp: App {
init() { NWaysMaps.configure(apiKey: "A_SUA_CHAVE_API") }
var body: some Scene {
WindowGroup {
NWaysMapView(theme: .light, lang: "en") { mapView in
// Guarde mapView para acrescentar anotações e camadas.
}
.ignoresSafeArea()
}
}
}let map = NWaysUIMapView(frame: view.bounds, theme: .dark)
map.autoresizingMask = [.flexibleWidth, .flexibleHeight]
view.addSubview(map)Tudo o resto é MapLibre Native (MLNMapView): anotações, fontes e camadas, câmara, posição do utilizador. O estilo conta como um carregamento de mapa sempre que é aplicado.
Chamar as API
NWaysMaps.client tem funções async que lançam NWaysError (com httpStatus, reason, message e retryAfter):
do {
let found = try await NWaysMaps.client.geocode("Allen Avenue", near: NWaysLatLng(lat: 6.6018, lng: 3.3515), limit: 5)
let trip = try await NWaysMaps.client.route(origin: .at(lat: 6.6018, lng: 3.3515),
destination: .postcode("LA08A09DB09"),
mode: .okada, fares: true)
let best = trip.routes.first // distanceM, durationS, geometry, steps, fares
} catch let e as NWaysError {
print(e.httpStatus, e.reason ?? "", e.message)
}| Função | API |
|---|---|
geocode, reverse, postcode, ghanaPost | Geocodificação |
autocomplete | Preenchimento automático |
validateAddress | Validação de endereços |
placesNearby, place | Lugares |
route, matrix, fares | Percursos, Matriz de percursos, Tarifas de viagem |
Para as outras API (otimização de percursos, mapas estáticos, seguimento de frota), use a biblioteca cliente Swift.
CarPlay e offline
O MapLibre Native também desenha nos modelos do CarPlay; use o mesmo URL de estilo (NWaysMaps.styleURL(theme:lang:)). Para os estafetas que perdem a rede, transfira um pacote offline.
Aplicação de exemplo
O código-fonte do SDK contém um exemplo SwiftUI (Examples/ios/NWaysSample): um mapa de Lagos, um botão claro/escuro e uma pesquisa que coloca um pin. Ponha a sua chave em Secrets.xcconfig na forma NWAYS_API_KEY = … (ignorado pelo git).
Licença
O SDK iOS (NWaysMaps) é de código aberto sob a licença Apache 2.0 (Apache-2.0), Copyright 2026 N-WAYS LIMITED; o seu código-fonte contém os ficheiros LICENSE e NOTICE. Depende do MapLibre Native para iOS (BSD 2-Clause), sob a sua própria licença. A licença cobre apenas o código: os mapas e os dados do N-Ways continuam © dos contribuidores do OpenStreetMap sob a Open Database Licence (ODbL), com a menção mostrada em todo o lado onde aparecem.