N-Ways
Documentação para programadoresSDK iOS

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
Nota:

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:

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

SwiftUI
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()
        }
    }
}
UIKit
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):

Swift
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çãoAPI
geocode, reverse, postcode, ghanaPostGeocodificação
autocompletePreenchimento automático
validateAddressValidação de endereços
placesNearby, placeLugares
route, matrix, faresPercursos, 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.