AIPARKSDK 1.1.9

AIPARKSDK 1.1.9

AIPARK 维护。



 
依赖
Alamofire~> 4.0
SwiftyJSON>= 0
 

AIPARKSDK 1.1.9

  • 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

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

platform :ios, '10.0'
use_frameworks!

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

依赖项

以下 CocoaPod 是运行 AIPARK 所必需的

  • Alamofire
  • SwiftyJSON

基础知识

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

import AIPARKSDK

let aiparkcontroller = AIPARK(apikey: <yourAPIKey>)

授权

PLIST

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

用途
NSLocationWhenInUseUsageDescription 为什么在应用程序使用时使用GPS的原因
NSLocationAlwaysAndWhenInUseUsageDescription 为什么在后台使用GPS的原因
NSMotionUsageDescription 为什么使用运动传感器的原因(需要检测离开停车位)

功能

还需要允许在后台模式下进行位置更新。否则,在框架使用过程中将发生异常。

请求停车位区域

要请求停车位,您需要指定一个请求对象。此对象包含您希望获取停车位图的标签。

瓷砖

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

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中的项目,并在左侧栏中单击您的项目名称。然后切换到“能力”标签,并激活“后台模式”,特别是“位置更新”。

*** Assertion failure in -[CLLocationManager setAllowsBackgroundLocationUpdates:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreLocationFramework_Sim/CoreLocation-2245.4.104/Framework/CoreLocation/CLLocationManager.m:652
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: !stayUp || CLClientIsBackgroundable(internal->fClient)'