AIPARK 0.1.7

AIPARK 0.1.7

AIPARK 维护。



 
依赖项
Alamofire~> 4.0
SwiftyJSON>= 0
 

AIPARK 0.1.7

  • 作者:
  • Matthias Natho

AIPARK: Artificial Intelligence Based Parking

Build Status CocoaPods Compatible Platform Twitter License

入门指南

本指南将向您展示如何使用 AIPARK 框架,它可以帮助您使用 AIPARK 服务。

要求

  • iOS 10+
  • swift 4

安装

Cocoa Pods

CocoaPod 是 Cocoa 项目的依赖管理器。您可以使用以下命令安装它

gem install cocoapods

要在 Xcode 项目中使用 CocoaPods 集成 Alamofire,请在您的 Podfile 中指定它

platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'Aipark'
end

依赖项

以下可可豆是运行AIPARK所需的。

  • Alamofire
  • SwiftyJSON

第一步

要使用AIPARK SDK,请导入包并初始化AIPARK类。

import Aipark

let aiparkcontroller = AIPARK(apikey: <yourAPIKey>)

授权

PLIST

要使用AIPARK,我们需要的设备当前GPS位置。因此,请在info.plist文件中添加以下键。

用途
NSLocationWhenInUseUsageDescription 使用应用时使用GPS的原因
NSLocationAlwaysAndWhenInUseUsageDescription 在后台使用GPS的原因

能力

您还需要在后台模式中允许位置更新。否则,在框架的使用过程中将出现异常。

请求停车场区域

要请求停车场区域,您需要指定一个请求对象。该对象包含您希望获取停车场区域的瓦片。

瓦片

瓦片是预定义的地图区域。要可视化这些瓦片,您可以访问这个网站 瓦片。您可以在15至16的缩放级别请求瓦片。要使用预定义的方法将GPS坐标转换为瓦片,您可以使用以下方法。

func getTileForCoordinates(latitude: Double, longitude: Double, zoom: Int) -> (x: Int, y: Int) 

以下是一个获取停车场请求的示例。这个请求将返回指定瓦片中的一系列停车场。

let aiparkcontroller = AIPARK(apikey: <yourAPIKey>)
let test = ParkingAreaRequest(tiles: [Tile(x: 35209, y: 21496)])
aiparkcontroller.getParkingAreas(request: test) { (parkingareas) in
  for entry in parkingareas {
    print(entry.name)
  }
}

缓存

当您请求停车场时,它们将自动缓存以最小化网络流量。如果您请求相同的瓦片两次,您将看到性能的提高,因为API响应已经缓存。因此,只需使用getParkingAreas方法执行第二次请求。为了保持结果更新,这些区域将在15分钟后从缓存中删除。如果您再次请求它们,它们将在该时间限制之后从web服务获取。

问题

启动后SIGABRT

如果您在应用启动后立即看到如下错误消息,则表示缺少后台模式权限。要解决这个问题,请转到XCode中的项目,点击左侧栏中您的项目名称。然后切换到能力选项卡,激活“后台模式”,特别是“位置更新”。

2018-10-02 13:44:31.721371+0200 Ein neuer Test[8291:1564683] *** Assertion failure in -[CLLocationManager setAllowsBackgroundLocationUpdates:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreLocationFramework_Sim/CoreLocation-2245.4.104/Framework/CoreLocation/CLLocationManager.m:652
2018-10-02 13:44:31.726032+0200 Ein neuer Test[8291:1564683] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: !stayUp || CLClientIsBackgroundable(internal->fClient)'