TrainInformationService 0.1.3

TrainInformationService 0.1.3

Dimitar Chakarov维护。



  • 本文作者:Dimitar Chakarov
  • Dimitar Chakarov

TrainInformationService

Build Status Version License Platform

英国火车信息服务的应用程序,使用国家铁路公开API

该API是对国家铁路实时到站信息Web服务的友好界面

安装

使用Swift Package ManagerCocoaPods可以安装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文件。