SDK Maps pour iOS
Des cartes N-Ways dans votre application iPhone et iPad, en SwiftUI ou UIKit, sur MapLibre Native.
Sur cette page
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 :
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
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()
}
}
}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) :
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)
}| Fonction | API |
|---|---|
geocode, reverse, postcode, ghanaPost | Géocodage |
autocomplete | Saisie semi-automatique |
validateAddress | Validation d’adresse |
placesNearby, place | Lieux |
route, matrix, fares | Itiné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.