{"id":19959236,"url":"https://github.com/username0x0a/mapnavigationkit","last_synced_at":"2025-09-20T02:38:07.957Z","repository":{"id":62447534,"uuid":"253550025","full_name":"username0x0a/MapNavigationKit","owner":"username0x0a","description":"Easy \u0026 more detailed online routing information for MapKit \u0026 other map frameworks","archived":false,"fork":false,"pushed_at":"2020-06-12T20:34:57.000Z","size":1925,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-03-15T04:06:50.914Z","etag":null,"topics":["ios","macos","mapbox","mapboxg","mapkit"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/username0x0a.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-06T16:10:18.000Z","updated_at":"2021-05-17T16:30:58.000Z","dependencies_parsed_at":"2022-11-01T23:17:27.246Z","dependency_job_id":null,"html_url":"https://github.com/username0x0a/MapNavigationKit","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/username0x0a%2FMapNavigationKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/username0x0a%2FMapNavigationKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/username0x0a%2FMapNavigationKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/username0x0a%2FMapNavigationKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/username0x0a","download_url":"https://codeload.github.com/username0x0a/MapNavigationKit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241390200,"owners_count":19955277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ios","macos","mapbox","mapboxg","mapkit"],"created_at":"2024-11-13T01:46:59.929Z","updated_at":"2025-09-20T02:38:02.907Z","avatar_url":"https://github.com/username0x0a.png","language":"Objective-C","readme":"# MapNavigationKit\n\n**MapNavigationKit** is a tiny framework expanding the capabilities of routing that `MapKit` already has, albeit not that prominently, exposing some additional information you can use to flawlessly build a navigation app on top of `MapKit`.\n\nAlthough the data are primarily for first-hand use with `MapKit`, it can be easily used with other Map UI frameworks, too – `MapBox`, `GoogleMaps` and other SDKs provide a way to build a custom polyline and route objects, with the benefit of using data fetched by this wrapper over the default (and probably payed) alternative provided by the specific Map SDK.\n\n## Getting the framework\n\n### Installing via CocoaPods\n\nSimply add a `MapNavigationKit` pod to your `Podfile`. Then run `pod update` to fetch the framework automatically.\n\n### Getting the framework from GitHub\n\nYou can grab a released compiled framework package or its source code on [GitHub](https://github.com/username0x0a/MapNavigationKit). Check out the repository or grab it from the _Releases_ section.\n\n## Development Requirements\n\nAll development requirements are actually recommendations as it reflects the environment we use to develop and distribute the code.\n\n- Xcode 11.0+ (recommended)\n- macOS 10.10+ SDK (recommended)\n- iOS 10.0+ SDK (recommended)\n- tvOS 10.0+ SDK (recommended)\n- _Objective-C_ or _Swift_ project\n\n## Production Deployment\n\nDeployment requirements determine the minimal environments compatible with the framework when you distribute it with your project.\n\n- macOS 10.10+ target (_macOS framework_)\n- iOS 10.0+ target (_iOS framework_)\n- tvOS 10.0+ target (_tvOS framework_)\n\n## Installation\n\n- get the framework package\n- unpack and add to your project\n- link it as a dynamic framework (embedded binary) in your project settings\n\n## Quick Usage Introduction\n\nThis quick example shows how to use the framework to fetch a representative route.\n\n### Requirements\n\n- _walking_ route\n- starting at _Big Ben_ in London\n- finishing at _Greenwich Observatory_ in London\n\n### Code\n\n```swift\n// Big Ben\nlet srcLocation = CLLocation(latitude: 51.5003646652, longitude: -0.1214328476)\n\n// Greenwich Observatory\nlet dstLocation = CLLocation(latitude: 51.4733514399, longitude: -0.00088499646)\n\nlet query = MNKRouteQuery(type: .walking, source: srcLocation, destination: dstLocation)\n\nMNKRouteFetcher.fetchRoute(query: query) { (route) in\n\tguard let route = route else { return }\n\tlet steps = route.steps\n\t\t.filter { $0.localizedInstructions?.isEmpty == false }\n\t\t.map { \"- After \\(Int($0.nextManeuverDistance))m: \\($0.localizedInstructions!)\" }\n\t\t.joined(separator: \"\\n\")\n\tprint(steps)\n}\n```\n\n### Example output\n\n```\n- After 329m: Turn left onto Saint Margaret Street\n- After 66m: Keep left onto Saint Margaret Street\n- After 641m: At the roundabout, take the first exit onto Lambeth Bridge\n- After 326m: At the roundabout, take the second exit onto Lambeth Road\n- After 957m: Turn left onto A302\n- After 133m: Turn right onto Westminster Bridge Road\n- After 471m: Continue onto London Road\n- After 292m: Turn left onto Elephant and Castle\n- After 798m: Keep right onto New Kent Road\n- After 602m: Continue onto Old Kent Road\n- After 6459m: Turn left onto General Wolfe Road\n- After 82m: Turn right onto Chesterfield Walk\n- After 83m: Turn left onto Chesterfield Walk\n- After 16m: Prepare to park your car\n- After 0m: Take a right\n- After 50m: Take a right\n- After 37m: The destination is on your left\n```\n\n*MapNavigationKit* is very easily testable using _Swift Playgrounds_.\n\n## Basic Classes\n\nClass                    | Description\n:------------------------|:---------------------\n**`MNKRoute`**           | Basic `Route` instance\n**`MNKRouteStep`**       | Particular `Route` step\n**`MNKRouteQuery`**      | Query instance used for fetching\n**`MNKRouteFetcher`**    | Fetching worker\n**`MNKRouting`**         | Routing provider\n**`MNKRoutingInfo`**     | Current, displayable routing info\n\n## License\n\nThis project is licensed under the terms of the MIT license. See the **LICENSE** file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusername0x0a%2Fmapnavigationkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusername0x0a%2Fmapnavigationkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusername0x0a%2Fmapnavigationkit/lists"}