Skip to content

A OSM Nominatim API Wrapper for Swift Package Manage (Linux, MacOS, iOS)

Notifications You must be signed in to change notification settings

123FLO321/NominatimSwift

Repository files navigation

Swift 5.1 Platforms: Linux, macOS, iOS Release Build Status

NominatimSwift

A Typesafe OSM Nominatim API Wrapper written in Swift.

Features

Getting Started

Initialize the Wrapper

Default arguments:

let nominatim = Nominatim()

Optianally you can specify a custom Nominatim URL and/or disable caching:

let nominatim = Nominatim(nominatimURL: URL(string: "https://nominatim.example.com")!, enableCache: false)

Reverse Geolocation lookup

Async lookup by location with all params:

nominatim.reverse(
  params: ReverseParams(
    query: .coordinate(latitude: 47.263208, longitude: 11.400494),
    addressdetails: true,
    extratags: false,
    namedetails: false,
    acceptLanguage: "de",
    zoom: 15
  )
) { (result, error) in 
    print(result.name, result.address.road, result.address.houseNumber) // Hauptbahnhof Südtiroler Platz 5 
}

Sync lookup by location with minimum params:

let result = try nominatim.reverse(
  params: ReverseParams(
    query: .coordinate(latitude: 47.263208, longitude: 11.400494)
  )
)
print(result.name, result.address.road, result.address.houseNumber) // Hauptbahnhof Südtiroler Platz 5 

Sync lookup by osm id with minimum params:

let result = try nominatim.reverse(
  params: ReverseParams(
    query: .model(osmType: .way, osmID: "25757253")
  )
)
print(result.name, result.address.road, result.address.houseNumber) // Hauptbahnhof Südtiroler Platz 5 

About

A OSM Nominatim API Wrapper for Swift Package Manage (Linux, MacOS, iOS)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages