Latest Release Swift Package Manager License

GeoURI

Geo URI 方案的 Swift 实现。

geo URI 方案是一种统一资源标识符 (URI) 方案,由互联网工程任务组 (IETF) 的 RFC 5870 定义。

“geo” URI 以紧凑、简单、易于阅读且与协议无关的方式标识二维或三维坐标参考系中的物理位置。

要求

iOS 16、macOS 10.13、tvOS 16、watchOS 9

安装

此软件包可通过 Swift Package Manager 获得。

要安装它,只需以通常的方式将 repo URL 添加到您的项目中,并在需要的地方 import GeoURI

用法

可以从其组成部分(纬度、经度和可选的高度)或从符合 geo URI 方案 的 URL 创建 GeoURI 类型。

还有 CoreLocation 扩展,可以从 CLLocationCLLocationCoordinate2D 初始化 GeoURI

如果任何属性不符合规范,将抛出错误。

请参阅文档以获取完整参考。

创建 GeoURI

import GeoURI

let geoURI = try? GeoURI(latitude: 48.2010, longitude: 16.3695, altitude: 183)
let urlString = geoURI?.url.absoluteString // "geo:48.201,16.3695,183?crs=wgs84"

从 URL 创建 GeoURI

import GeoURI

if let let url = URL(string: "geo:-48.876667,-123.393333") {
    let geoURI = try? GeoURI(url: url)
}

从字符串创建 GeoURI

import GeoURI

let geoURI = try GeoURI("geo:48.201,16.3695", format: GeoURI.FormatStyle)

从 GeoURI 创建字符串

geoURI.formatted()      // "geo:48.201,16.3695"
geoURI.formatted(.full) // "geo:48.201,16.3695;crs=wgs84"

CoreLocation

import CoreLocation
import GeoURI

let coordinate = CLLocationCoordinate2D(latitude: 48.2010, longitude: 16.3695)
let geoURI = try? GeoURI(coordinate: coordinate)
let urlString = geoURI?.url.absoluteString // "geo:48.2010,16.3695?crs=wgs84"

处理错误

import GeoURI

if let url = URL(string: "geo:-48.876667,-123.393333") {
    do {
        let geoURI = try GeoURI(url: url)
    } catch GeoURIParsingError {
        print("A parsing error occurred: \(parsingError.errorDescription)")
    }
}

文档

此软件包的文档通过 DocC 文档目录提供。

RFC 5870 的官方规范是 GeoURI 方案的规范参考。

构建文档

要从命令行构建文档

$ swift package generate-documentation

添加 --help 标志以获取所有支持的参数和选项的列表。

Xcode

您也可以直接在 Xcode 中的“产品”菜单中构建文档

产品 > 构建文档

然后可以在文档查看器中查看文档。

贡献

欢迎贡献!请随时提交 pull request 或在 GitHub 存储库上提出问题。

许可

GeoURI 在 Unlicense 下可用。 有关更多信息,请参阅 LICENSE 文件。