GooglePolyline

GooglePolyline 是一个 Swift 包,它提供了按照 Google 编码折线算法对折线进行编码和解码的功能。它提供了使用指定的简化因子来简化折线的能力,该因子可以是直接值,也可以根据所需的最大长度自动计算。

特性

安装

Swift Package Manager

在您的 Package.swift 文件中,将以下行添加到您的依赖项中:

.package(url: "https://github.com/podiumkit/GooglePolyline.git", from: "1.0.0"),

然后,将 "GooglePolyline" 作为您目标的依赖项包含进来

.target(name: "YourTarget", dependencies: ["GooglePolyline"]),

用法

在您的 Swift 文件中导入该包

import GooglePolyline

创建 GooglePolyline 的一个实例

let googlePolyline = GooglePolyline()

然后,您可以按如下方式编码和解码折线

let locations: [CLLocation] = ...
let encodedPolyline = googlePolyline.encode(locations: locations)

let decodedLocations = googlePolyline.decode(polyline: encodedPolyline)
let decodedMKPolyline = googlePolyline.decodeToMKPolyline(polyline: encodedPolyline)

实现细节

GooglePolyline 类提供了主要功能。您可以通过在初始化该类时指定 SimplificationFactor 来控制折线的简化。它可以设置为 .automatic(maxLength: Int) 以根据最大长度自动计算简化因子,或者设置为 .value(Double) 以直接设置该因子。

encode(locations:) 函数接受一个 CLLocation 实例数组,并返回一个表示 Google 编码折线的字符串。 decode(polyline:) 函数则相反,它从编码的折线字符串返回一个 CLLocation 实例数组。 decodeToMKPolyline(polyline:) 也解码折线,但返回一个 MKPolyline 实例。

法律声明

Google 是 Google LLC 的商标。除了基于 Google 的折线编码算法之外,本软件既未获得 Google LLC 的认可,也未与 Google LLC 有其他关系。