TrainInformationService
英国火车信息服务的应用程序,使用国家铁路公开API
该API是对国家铁路实时到站信息Web服务的友好界面
安装
使用Swift Package Manager或CocoaPods可以安装TrainInformationService。
Swift Package Manager
Swift Package Manager需要Swift版本4.0或更高版本。首先,创建一个Package.swift
文件,它应该看起来像这样:
dependencies: [
.package(url: "https://github.com/dchakarov/TrainInformationService.git", from: "0.1.0"),
]
然后使用swift build
命令安装和编译TrainInformationService,以便开始使用。
CocoaPods
要安装,只需将以下行添加到Podfile文件即可:
pod 'TrainInformationService'
开始使用
初始化
为了使用此框架,您需要一个国家铁路查询LDBWS(OpenLDBWS)的令牌。您可以免费注册并在此处获取令牌 - http://realtime.nationalrail.co.uk/OpenLDBWSRegistration/。有关国家铁路提供的可用API的更多信息,您可以在此处阅读 - http://www.nationalrail.co.uk/100296.aspx
获取令牌后,您可以通过以下方式实例化服务
import TrainInformationService
let trainInformationService = TrainInformationService(
apiUrl: "https://lite.realtime.nationalrail.co.uk/OpenLDBWS/ldb11.asmx",
token: "your-token-goes-here")
目前该服务支持OpenLDWS的两种方法。它们都是异步的,因为它们从国家铁路实时到站板Web服务获取数据。有关方法和文档的完整列表,您可以访问此处 - https://lite.realtime.nationalrail.co.uk/OpenLDBWS/
获取给定车站的实时到站板(GetDepartureBoard)
您可以在这里找到车站及其CSR代码的列表 - http://www.nationalrail.co.uk/stations_destinations/48541.aspx
let stationCSRCode = "PAD" // Paddington
trainInformationService.departureBoard(for: stationCSRCode, items: 5) { result in
switch result {
case .success(let board):
print(board)
case .error(_):
break
}
}
结果 board
将是一个包含最多5个 DepartingService 对象的数组。
获取服务的下一站(GetServiceDetails)
给定您有一个服务ID(例如上述调用中的DepartingService对象),您可以按照以下方式获取其时间表中剩余的停靠站列表
trainInformationService.serviceDetails(service.serviceId) { callingPoints in
print(callingPoints)
}
在此处 callingPoints
是一个包含 CallingPoint 对象的数组。
贡献
欢迎贡献!只需提交一个PR。
作者
Dimitar Chakarov, [email protected]
许可证
这是一份免费且无负担的软件,已发布到公共领域。有关更多信息,请参阅LICENSE文件。