N-Ways
Documentation développeursSDK iOS

SDK Maps pour iOS

Des cartes N-Ways dans votre application iPhone et iPad, en SwiftUI ou UIKit, sur MapLibre Native.

Sur cette page
Remarque :

Version 1.0. Le paquet Swift n’est pas encore sur un dépôt public : demandez-nous le code source à hello@nways.ng et ajoutez-le comme paquet local. Les cartes dans les applications iOS sont gratuites (aucun chargement de carte facturé). Tarifs

Ce que c’est

Un paquet Swift au-dessus de MapLibre Native pour iOS (6.x), pour SwiftUI et UIKit. Il :

  • applique le style hébergé de N-Ways (clair ou sombre, noms en anglais ou en français) ;
  • envoie votre clé et l’identifiant de bundle de votre application (X-Ios-Bundle-Identifier) avec chaque requête vers N-Ways, et jamais à qui que ce soit d’autre, pour qu’une clé restreinte à votre application fonctionne ;
  • garde la mention « © N-Ways · © OpenStreetMap contributors · Protomaps » sur la carte ;
  • a un client pour le géocodage, les codes postaux, la saisie semi-automatique, la validation d’adresse, les lieux, les itinéraires, la matrice d’itinéraires et les tarifs.

iOS 15 ou plus récent. import NWaysMaps vous donne aussi les types de MapLibre.

Installation

Dans Xcode : File → Add Package Dependencies… → Add Local…, puis choisissez le dossier du SDK ; ou dans un Package.swift :

Package.swift
dependencies: [.package(path: "../sdk-native")],
targets: [.target(name: "MyApp", dependencies: [.product(name: "NWaysMaps", package: "sdk-native")])]

Restreignez votre clé à l’identifiant de bundle de votre application. Clés d’API

Afficher une carte

SwiftUI
import NWaysMaps
import SwiftUI

@main
struct RiderApp: App {
    init() { NWaysMaps.configure(apiKey: "VOTRE_CLE_API") }
    var body: some Scene {
        WindowGroup {
            NWaysMapView(theme: .light, lang: "en") { mapView in
                // Gardez mapView pour ajouter des annotations et des couches.
            }
            .ignoresSafeArea()
        }
    }
}
UIKit
let map = NWaysUIMapView(frame: view.bounds, theme: .dark)
map.autoresizingMask = [.flexibleWidth, .flexibleHeight]
view.addSubview(map)

Tout le reste, c’est MapLibre Native (MLNMapView) : annotations, sources et couches, caméra, position de l’utilisateur. Le style compte pour un chargement de carte chaque fois qu’il est appliqué.

Appeler les API

NWaysMaps.client a des fonctions async qui lèvent NWaysError (avec httpStatus, reason, message et 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)
}
FonctionAPI
geocode, reverse, postcode, ghanaPostGéocodage
autocompleteSaisie semi-automatique
validateAddressValidation d’adresse
placesNearby, placeLieux
route, matrix, faresItinéraires, Matrice d’itinéraires, Tarifs de course

Pour les autres API (optimisation de tournées, cartes statiques, suivi de flotte), utilisez la bibliothèque cliente Swift.

CarPlay et hors connexion

MapLibre Native dessine aussi dans les modèles CarPlay ; utilisez la même URL de style (NWaysMaps.styleURL(theme:lang:)). Pour les livreurs qui perdent le réseau, téléchargez un pack hors connexion.

Application d’exemple

Le code source du SDK contient un exemple SwiftUI (Examples/ios/NWaysSample) : une carte de Lagos, un bouton clair/sombre et une recherche qui pose une épingle. Mettez votre clé dans Secrets.xcconfig sous la forme NWAYS_API_KEY = … (ignoré par git).

Licence

Le SDK iOS (NWaysMaps) est open source sous licence Apache 2.0 (Apache-2.0), Copyright 2026 N-WAYS LIMITED ; son code source contient les fichiers LICENSE et NOTICE. Il dépend de MapLibre Native pour iOS (BSD 2-Clause), chacun sous sa propre licence. La licence couvre uniquement le code : les cartes et les données de N-Ways restent © les contributeurs d’OpenStreetMap sous l’Open Database Licence (ODbL), avec la mention affichée partout où elles apparaissent.