此 SDK 使 Swift 应用程序能够集成 Open Journey Planner (OJP) V2 API,以支持根据欧洲 (CEN) 技术规范“智能交通系统 – 公共交通 – 分布式行程规划开放 API”进行分布式行程规划。
有关 OJP
的一般介绍,请查阅 Cookbook,网址为 opentransportdata.swiss。访问 vdvde.github.io/OJP 以获取 OJP XML 架构的文档。
🚧 目前此 SDK 正在建设中。 请注意,API 仍可能更改。 🚧
可以使用 Swift Package Manager 将 SDK 集成到您的 Xcode 项目中。将以下依赖项添加到您的 Package.swift
或作为 Xcode 中的 Package Dependency
.package(url: "`https://github.com/openTdataCH/ojp-ios.git", from: "1.0.0"),
import OJP
let apiConfiguration = APIConfiguration(
apiEndPoint: URL(string: "your api endpoint")!,
requesterReference: "your request reference",
additionalHeaders: [
"Authorization": "Bearer yourBearerToken"
]
)
let ojpSdk = OJP(
loadingStrategy: .http(apiConfiguration),
language: "de" // optional ISO language code. Defaults to the preferred localization.
)
// get only stops
let stops = try await ojpSdk.requestPlaceResults(
from: "Bern",
restrictions: .init(type: [.stop])
)
// get stops and addresses
let addresses = try await ojpSdk.requestPlaceResults(from: "Bern", restrictions: .init(type: [.stop, .address]))
let nearbyStops = try await ojpSdk.requestPlaceResults(
from: Point(long: 5.6, lat: 2.3),
restrictions: .init(type: [.stop])
)
let origin = try await ojpSdk.requestPlaceResults(
from: "Bern",
restrictions: .init(type: [.stop])
).first!
let via = try await ojpSdk.requestPlaceResults(
from: "Luzern",
restrictions: .init(type: [.stop])
).first!
let destination = try await ojpSdk.requestPlaceResults(
from: "Zurich HB",
restrictions: .init(type: [.stop])
).first!
let tripDelivery = try await ojp.requestTrips(
from: origin.placeRef,
to: destination.placeRef,
via: via.placeRef,
params: .init(
includeTrackSections: true,
includeIntermediateStops: true
)
)
有关更详细的介绍,请访问文档中的 入门指南 文章。
有一个实验性的 示例应用 用于展示和测试 SDK。目前旨在作为 macOS 应用程序运行。
format-code.sh
以在库上执行 swiftformat请参阅 发布 以获取所有当前版本的历史记录。
可以使用 ./create-version.sh
准备新版本。
欢迎贡献。请随时创建 issue 或功能请求,或 fork 该项目并提交 pull request。
MIT 许可证,请参阅 LICENSE
创建 issue 或联系 opentransportdata.swiss