{"id":15066908,"url":"https://github.com/fpseverino/apple-maps-kit","last_synced_at":"2025-10-09T16:49:48.113Z","repository":{"id":256026759,"uuid":"853907851","full_name":"fpseverino/apple-maps-kit","owner":"fpseverino","description":"🗺️ Integrate the Apple Maps Server API into Swift server applications","archived":false,"fork":false,"pushed_at":"2024-12-29T15:30:19.000Z","size":73,"stargazers_count":15,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T20:45:10.046Z","etag":null,"topics":["apple-maps","directions","eta","geocoding","location","map","search","server-side-swift","swift","swift-library","swift-linux","swift-on-server","swift-package","swift-package-manager"],"latest_commit_sha":null,"homepage":"https://swiftpackageindex.com/fpseverino/apple-maps-kit","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fpseverino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-07T21:43:17.000Z","updated_at":"2025-03-17T22:53:44.000Z","dependencies_parsed_at":"2024-09-08T16:33:53.014Z","dependency_job_id":"08a4aa71-a347-4e42-965f-e0314c9c4ba7","html_url":"https://github.com/fpseverino/apple-maps-kit","commit_stats":null,"previous_names":["fpseverino/apple-maps-kit"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpseverino%2Fapple-maps-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpseverino%2Fapple-maps-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpseverino%2Fapple-maps-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpseverino%2Fapple-maps-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fpseverino","download_url":"https://codeload.github.com/fpseverino/apple-maps-kit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248229270,"owners_count":21068866,"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":["apple-maps","directions","eta","geocoding","location","map","search","server-side-swift","swift","swift-library","swift-linux","swift-on-server","swift-package","swift-package-manager"],"created_at":"2024-09-25T01:13:53.535Z","updated_at":"2025-10-09T16:49:43.092Z","avatar_url":"https://github.com/fpseverino.png","language":"Swift","readme":"# AppleMapsKit\n\n🗺️ Integrate the [Apple Maps Server API](https://developer.apple.com/documentation/applemapsserverapi) into Swift server applications\n\n[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Ffpseverino%2Fapple-maps-kit%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/fpseverino/apple-maps-kit)\n[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Ffpseverino%2Fapple-maps-kit%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/fpseverino/apple-maps-kit)\n\n[![](https://img.shields.io/github/actions/workflow/status/fpseverino/apple-maps-kit/test.yml?event=push\u0026style=plastic\u0026logo=github\u0026label=tests\u0026logoColor=%23ccc)](https://github.com/fpseverino/apple-maps-kit/actions/workflows/test.yml)\n[![](https://img.shields.io/codecov/c/github/fpseverino/apple-maps-kit?style=plastic\u0026logo=codecov\u0026label=codecov)](https://codecov.io/github/fpseverino/apple-maps-kit)\n\n## Overview\n\nUse this web-based service to streamline your app’s API by moving georelated searches for places, points of interest, geocoding, directions, possible autocompletions for searches, and estimated time of arrival (ETA) calculations from inside your app to your server.\n\n### Getting Started\n\nUse the SPM string to easily include the dependendency in your `Package.swift` file\n\n```swift\n.package(url: \"https://github.com/fpseverino/apple-maps-kit.git\", from: \"1.0.0\")\n```\n\nand add it to your target's dependencies:\n\n```swift\n.product(name: \"AppleMapsKit\", package: \"apple-maps-kit\")\n```\n\n### Geocode an address\n\nReturns the latitude and longitude of the address you specify.\n\n```swift\nimport AppleMapsKit\nimport AsyncHTTPClient\n\nlet client = AppleMapsClient(\n    httpClient: HTTPClient(...),\n    teamID: \"DEF123GHIJ\",\n    keyID: \"ABC123DEFG\",\n    key: \"\"\"\n        -----BEGIN PRIVATE KEY-----\n        ...\n        -----END PRIVATE KEY-----\n        \"\"\"\n)\n\nlet places = try await client.geocode(address: \"1 Apple Park, Cupertino, CA\")\n```\n\n### Reverse geocode a location\n\nReturns an array of addresses present at the coordinates you provide.\n\n```swift\nimport AppleMapsKit\nimport AsyncHTTPClient\n\nlet client = AppleMapsClient(\n    httpClient: HTTPClient(...),\n    teamID: \"DEF123GHIJ\",\n    keyID: \"ABC123DEFG\",\n    key: \"\"\"\n        -----BEGIN PRIVATE KEY-----\n        ...\n        -----END PRIVATE KEY-----\n        \"\"\"\n)\n\nlet places = try await client.reverseGeocode(latitude: 37.33182, longitude: -122.03118)\n```\n\n### Search for places that match specific criteria\n\nFind places by name or by specific search criteria.\n\n```swift\nimport AppleMapsKit\nimport AsyncHTTPClient\n\nlet client = AppleMapsClient(\n    httpClient: HTTPClient(...),\n    teamID: \"DEF123GHIJ\",\n    keyID: \"ABC123DEFG\",\n    key: \"\"\"\n        -----BEGIN PRIVATE KEY-----\n        ...\n        -----END PRIVATE KEY-----\n        \"\"\"\n)\n\nlet searchResponse = try await client.search(for: \"eiffel tower\")\n```\n\n### Search for places that meet specific criteria to autocomplete a place search\n\nFind results that you can use to autocomplete searches.\n\n```swift\nimport AppleMapsKit\nimport AsyncHTTPClient\n\nlet client = AppleMapsClient(\n    httpClient: HTTPClient(...),\n    teamID: \"DEF123GHIJ\",\n    keyID: \"ABC123DEFG\",\n    key: \"\"\"\n        -----BEGIN PRIVATE KEY-----\n        ...\n        -----END PRIVATE KEY-----\n        \"\"\"\n)\n\nlet results = try await client.searchAutoComplete(for: \"eiffel\")\n```\n\n### Search for directions and estimated travel time between locations\n\nFind directions by specific criteria.\n\n```swift\nimport AppleMapsKit\nimport AsyncHTTPClient\n\nlet client = AppleMapsClient(\n    httpClient: HTTPClient(...),\n    teamID: \"DEF123GHIJ\",\n    keyID: \"ABC123DEFG\",\n    key: \"\"\"\n        -----BEGIN PRIVATE KEY-----\n        ...\n        -----END PRIVATE KEY-----\n        \"\"\"\n)\n\nlet directions = try await client.directions(\n    origin: \"37.7857,-122.4011\",\n    destination: \"San Francisco City Hall, CA\"\n)\n```\n\n### Determine estimated arrival times and distances to one or more destinations\n\nReturns the estimated time of arrival (ETA) and distance between starting and ending locations.\n\n```swift\nimport AppleMapsKit\nimport AsyncHTTPClient\n\nlet client = AppleMapsClient(\n    httpClient: HTTPClient(...),\n    teamID: \"DEF123GHIJ\",\n    keyID: \"ABC123DEFG\",\n    key: \"\"\"\n        -----BEGIN PRIVATE KEY-----\n        ...\n        -----END PRIVATE KEY-----\n        \"\"\"\n)\n\nlet coordinateEtas = try await client.eta(\n    from: (latitude: 37.331423, longitude: -122.030503),\n    to: [\n        (latitude: 37.32556561130194, longitude: -121.94635203581443),\n        (latitude: 37.44176585512703, longitude: -122.17259315798667)\n    ]\n)\n\nlet addressEtas = try await client.etaBetweenAddresses(\n    from: \"San Francisco City Hall, CA\",\n    to: [\"Golden Gate Park, San Francisco\"],\n)\n```\n\n### Search for places using identifiers\n\nObtain a set of ``Place`` objects for a given set of Place IDs or get a list of alternate Place IDs given one or more Place IDs.\n\n```swift\nimport AppleMapsKit\nimport AsyncHTTPClient\n\nlet client = AppleMapsClient(\n    httpClient: HTTPClient(...),\n    teamID: \"DEF123GHIJ\",\n    keyID: \"ABC123DEFG\",\n    key: \"\"\"\n        -----BEGIN PRIVATE KEY-----\n        ...\n        -----END PRIVATE KEY-----\n        \"\"\"\n)\n\nlet place = try await client.place(id: \"I7C250D2CDCB364A\")\n\nlet placesResponse = try await client.places(ids: [\"ICFA2FAE5487B94AF\", \"IA6FD1E86A544F69D\"])\n\nlet alternateIDsResponse = try await client.alternatePlaceIDs(ids: [\"I7C250D2CDCB364A\", \"ICFA2FAE5487B94AF\"])\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffpseverino%2Fapple-maps-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffpseverino%2Fapple-maps-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffpseverino%2Fapple-maps-kit/lists"}