A Swift wrapper for forward and reverse geocoding of OpenStreetMap data

Overview

Nominatim

CI Status Version License Platform

NominatimKit is a Swift wrapper for forward and reverse geocoding of OpenStreetMap data.

Why? Geocoding location data on iOS requires the use of CoreLocation and the user's permission to access location data. This permission if often not given. Even worse so, CLGeocoder can be quite inaccurate. If you want a lightweight and more reliable solution to geocode addressess and coordinates, NominatimKit comes to the rescue.

How? Nominatim is a search engine for OpenStreetMap data. NominatimKit uses the free Nominatim API to gather location data for specific geo coordinates or any free text query (i.e. addresses or landmarks).

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Installation

Nominatim is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Nominatim'

Usage

Search for Addresses

Nominatim.getLocation(fromAddress: "Stephansplatz, 1010 Vienna, Austria", completion: {(error, location) -> Void in
      print("Geolocation of the Royal Palace of Stockholm:")
      print("lat = " + (location?.latitude)! + "   lon = " + (location?.longitude)!)
    })

Search for Landmarks

Nominatim.getLocation(fromAddress: "The Royal Palace of Stockholm", completion: {(error, location) -> Void in
      print("Geolocation of the Royal Palace of Stockholm:")
      print("lat = " + (location?.latitude)! + "   lon = " + (location?.longitude)!)
    })

Search with Latitude and Longitude

Nominatim.getLocation(fromLatitude: "55.6867243", longitude: "12.5700724", completion: {(error, location) -> Void in
      print("City for geolocation 55.6867243/12.5700724:")
      print(location?.city)
    })

Author

NominatimKit was created by Josef Moser. I am an independent software developer and co-founder of Cora Health and Cryptoradar.

Find me on: Github or Twitter

Contribution

We welcome contribution to this project by opening issues or pull request.

License

NominatimKit is available under the MIT license. See the LICENSE file for more info. If you'd like to acknowledge the author of NominatimKit, please set a link to this GitHub page.

You might also like...
A project to test the accuracy of iOS geofence and visits monitoring.

GeofenceTester iOS About This Component • Build • Support • Contribute • Licensing A project to test the accuracy of iOS geofence and visits monitorin

Open-source iOS application written to explore Swift in its early days
Open-source iOS application written to explore Swift in its early days

Cepp iOS application written in Swift. Icon by: Rodrigo Nascimento (tks :D) IMPORTANT: *This project uses CocoaPods as the dependency manager, make su

Contains the swift rewrite of Find My Bus NJ iOS App
Contains the swift rewrite of Find My Bus NJ iOS App

FIND MY BUS NJ 2 An app for tracking NJ Transit bus times. Dependancies Alamofire SwiftyJSON PKHUD Fabric Getting started Install fastlane and imagema

Location Weather Demo With Swift

LocationWeatherDemo Здравствуйте! Для того что бы проект корректно работал установите pod's. О проекте: 1) На первой странице можно увидеть погоду в л

GoogleMapsApp - Google Maps App With Swift
GoogleMapsApp - Google Maps App With Swift

googleMapsApp Тестовое задание Current location: Import points from servers:

A Swift wrapper for forward and reverse geocoding of OpenStreetMap data

Nominatim NominatimKit is a Swift wrapper for forward and reverse geocoding of OpenStreetMap data. Why? Geocoding location data on iOS requires the us

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

🗺️ MAPS.ME — Offline OpenStreetMap maps for iOS and Android
🗺️ MAPS.ME — Offline OpenStreetMap maps for iOS and Android

MAPS.ME MAPS.ME is an open source cross-platform offline maps application, built on top of crowd-sourced OpenStreetMap data. It was publicly released

iOS SDK for access the OpenCage Geocoding API

OpenCageSDK Requirements OpenCageSDK works on iOS 9+ and requires ARC to build. It depends on the following Apple frameworks, which should already be

Time is a Swift package that makes dealing with calendar values a natural and straight-forward process.

Time Time is a Swift package that makes dealing with calendar values a natural and straight-forward process. Working with calendars can be extremely c

Youtube-like double tap to forward/rewind animation with ripple effect.
Youtube-like double tap to forward/rewind animation with ripple effect.

VideoQuickSeeking Youtube-like double tap to forward/rewind animation with ripple effect. Please feel free to make pull requests. Example To run the e

Accelerated tensor operations and dynamic neural networks based on reverse mode automatic differentiation for every device that can run Swift - from watchOS to Linux
Accelerated tensor operations and dynamic neural networks based on reverse mode automatic differentiation for every device that can run Swift - from watchOS to Linux

DL4S provides a high-level API for many accelerated operations common in neural networks and deep learning. It furthermore has automatic differentiati

A reverse engineering tool to restore stripped symbol table and dump Objective-C class or Swift types for machO file.

A reverse engineering tool to restore stripped symbol table and dump Objective-C class or Swift types for machO file.

Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers

Frida Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers. Learn more at frida.re. Two ways to install 1. Inst

🔒 Swift Obfuscator that protects iOS apps against reverse engineering attacks.
🔒 Swift Obfuscator that protects iOS apps against reverse engineering attacks.

struct fjiovh4894bvic: XbuinvcxoDHFh3fjid { let VNfhnfn3219d: Vnahfi5n34djga func cxncjnx8fh83FDJSDd() - Lghbna2gf0gmh3d { return vPAOSNdcbif

Revamped Download Button. It's kinda a reverse engineering of Netflix's app download button.
Revamped Download Button. It's kinda a reverse engineering of Netflix's app download button.

NFDownloadButton Revamped Download Button Requirements Installation Usage License Requirements iOS 8.0+ Swift 4.2+ Xcode 10.0+ Installation CocoaPods

An easy to integrate Model Based Google Maps Helper (SVHTTPClient, AFNetworking) That lets you Geo Code , Reverse Geocode, Get Directions , Places Autocomplete.

GoogleMapsHelper Read Me in Russian : http://gargo.of.by/googlemapshelper/ A GOOGLE MAPS Helper that help you do multiple tasks like HOW TO USE // usi

Comments
  • Converting ISO-8859-1 response to UTF-8

    Converting ISO-8859-1 response to UTF-8

    ISO-8859-1 has no support for special characters such as ä, ö, ü, æ, ø, å, etc.

    Converting the JSON data to UTF-8 will ensure that the results are properly formatted for display in app.

    opened by caloon 0
Owner
Josef Moser
Independent iOS developer, founder at Cora Health and Cryptoradar
Josef Moser
A wrapper on the CoreLocation framework replacing the delegate pattern with Swift concurrency

swift-locations A wrapper on the CoreLocation framework replacing the delegate pattern with Swift concurrency. Overview CoreLocation reports a device'

Alexandre H. Saad 5 Nov 26, 2022
The most power-efficient and lightweight iOS location manager for Swift and ObjC

IngeoSDK for iOS Overview IngeoSDK is a power-efficient location manager for iOS (Swift and Objective-C), which extends and improves CoreLocation. It

IngeoSDK 99 Feb 28, 2022
iOS and  Watch app to find city bicycles to rent in your city

Bike-Compass Bike Compass is a full-featured city bicycle finder app for iOS. Using a bike is enjoyable, that is why our app is fast, beautiful, and d

Raul Riera 80 May 18, 2022
Israel's tech jobs, startups, incubators and investors iOS App

Startups | Mapped In Israel Startups is a beautiful way to discover new startups, locate co-working spaces and get funded. Startups lets you: Visualiz

Sugar So Studio 31 Feb 9, 2022
Abandonned project - iOS and watchOS apps to travel with Geneva Public Transports

Presentation tpg offline is an iOS app that allows you to travel in Geneva by bus and tramay without cellular data. This application is available on t

tpg offline 14 Jan 1, 2023
🛰 CoreLocation Made Easy - Efficient & Easy Location Tracker, IP Location, Gecoder, Geofence, Autocomplete, Beacon Ranging, Broadcaster and Visits Monitoring

Location Manager Made Easy SwiftLocation is a lightweight Swift Library that provides an easy way to work with location-related functionalities. No mo

Daniele Margutti 3.2k Dec 30, 2022
Simple library to detect motion type (walking, running, automotive) and count users steps. This library will make motion detection much more easily.

SOMotionDetector Simple library to detect motion for iOS by arturdev . Based on location updates and acceleration. ###Requierments iOS > 6.0 Compatibl

Artur  Mkrtchyan 1.1k Nov 25, 2022
A ready for use and fully customizable location picker for your app

LocationPicker A ready for use and fully customizable location picker for your app. Features Installation Cocoapods Carthage Swift Package Manager Qui

Zhuoran 397 Nov 16, 2022
A simple map with the location of the user and the control of permissions

Proposal The project is based on implementing a simple map with the location of

Raúl Pedraza León 0 Dec 26, 2021
An original project making use of custom UITableViewCells, date formatting, json parsing, and handling user location.

SunTimes An original project making use of custom UITableViewCells, date formatting, json parsing, date and time formatting based on the json data, an

David Chester 0 Feb 8, 2022