Docs / Setup / iOS / Open Mobile Maps

Open Mobile Maps setup

How to drive Open Mobile Maps (maps-core) through MapConductor. It installs through Swift Package Manager, and there is no API key.

MODULE
MapConductorForOpenMobileMaps
API KEY
Not required
VIEW
OpenMobileMapsMapView
TIME
10 min
Same provider, other platformsAndroid

Before you start

Xcode 15 or newer
An app targeting iOS 16.0 or newer
STEP 01

Add the packages

Add maps-core and the MapConductor module through Swift Package Manager.

Package.swiftSwift
dependencies: [
    .package(url: "https://github.com/openmobilemaps/maps-core", from: "4.0.0"),
    .package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
    .package(url: "https://github.com/MapConductor/ios-for-openmobilemaps", from: "1.0.0"),
]
STEP 02

Decide where tiles come from

With no key, where the tiles come from is your decision. OpenStreetMap’s own tile servers are not suitable for production apps under their usage policy: serve your own, or use a commercial source.

VERIFY

What you should see

Show a map centred on Tokyo. Tiles loading means you are done.

import SwiftUI
import MapConductorCore
import MapConductorForOpenMobileMaps

struct TestOpenMobileMaps: View {
    @StateObject private var state = OpenMobileMapsViewState(
        cameraPosition: MapCameraPosition(
            position: GeoPoint(latitude: 35.6812, longitude: 139.7671),
            zoom: 11
        )
    )

    var body: some View {
        OpenMobileMapsMapView(state: state)
    }
}

Map designs

Notes
OpenStreetMap
The standard OpenStreetMap style
OpenStreetMapJapan
Tuned for Japanese labelling
OpenTopoMap
Topographic

Troubleshooting

The map is blank and no tiles arrive

  • This provider has no API key. Check that the style URL you pointed it at is reachable.
  • Confirm the device can reach the network.

The tile source returns 429 or 403

  • OpenStreetMap's own tile servers have a usage policy that does not cover production apps. Serve your own tiles, or use a commercial source.

Next

Markers, polylines, polygons, circles, ground images, raster layers and info bubbles all work through the shared API.