Google Maps SDK for iOS 助手库
描述
本开源库包含了一组用于各种应用程序的类,这些应用程序使用了 Google Maps SDK for iOS。
- 几何库 - KML 和 GeoJSON 渲染
- 几何工具 - 紧凑的球形 几何工具函数
- 热图 - 热图渲染
- 标记聚类 — 处理大量点的显示
- 标记自定义 - 显示自定义标记
- 四叉树数据结构 - 索引 2D 几何点和执行 2D 范围查询
需求
- 适用于iOS 13.0及以上版本
- iOS Maps SDK(请参考版本获取最低兼容版本)
安装
-
使用以下任一安装选项(CocoaPods、XCFramework、Carthage(适用于v6.2.1及之前版本)或手动)引入
GoogleMaps
依赖项 -
使用以下方法之一添加此实用程序库
CocoaPods
在你的Podfile
中
use_frameworks!
target 'TARGET_NAME' do
pod 'Google-Maps-iOS-Utils', '4.2.2'
end
替换TARGET_NAME
,然后,在Podfile
目录下,键入
pod install
Swift Package Manager
注意:此功能仅在Swift 5.3(Xcode 12)或更高版本中可用。
将以下内容添加到您的Package.swift
文件的dependencies
值中。
dependencies: [
.package(
url: "https://github.com/googlemaps/google-maps-ios-utils.git",
.upToNextMinor(from: "4.2.2")
)
]
Carthage
仅当使用 Maps SDK v6.2.1 或更早版本时受支持
在您的 Cartfile
中
github "googlemaps/google-maps-ios-utils" ~> 4.1.0
有关进一步安装说明,请参阅Carthage 文档。
演示应用
有关 /samples 目录中 Swift 和 Objective-C 演示应用的说明,请参阅 README 文件。
文档
请访问 developers.google.com 或 /docs 目录中的文档来阅读有关此实用库的文档。
用法
标记聚集
import GoogleMaps
import GoogleMapsUtils
class MarkerClustering: UIViewController, GMSMapViewDelegate {
private var mapView: GMSMapView!
private var clusterManager: GMUClusterManager!
override func viewDidLoad() {
super.viewDidLoad()
// Set up the cluster manager with the supplied icon generator and
// renderer.
let iconGenerator = GMUDefaultClusterIconGenerator()
let algorithm = GMUNonHierarchicalDistanceBasedAlgorithm()
let renderer = GMUDefaultClusterRenderer(mapView: mapView,
clusterIconGenerator: iconGenerator)
clusterManager = GMUClusterManager(map: mapView, algorithm: algorithm,
renderer: renderer)
// Register self to listen to GMSMapViewDelegate events.
clusterManager.setMapDelegate(self)
// ...
}
// ...
}
let markerArray = [marker1, marker2, marker3, marker4] // define your own markers
clusterManager.add(markerArray)
clusterManager.cluster()
显示 KML 数据
import GoogleMaps
import GoogleMapsUtils
func renderKml() {
// Parse KML
let path: String = // Path to your KML file...
let kmlUrl = URL(fileURLWithPath: path)
let kmlParser = GMUKmlParser(url: kmlUrl)
kmlParser.parse()
// Render parsed KML
let renderer = GMUGeometryRenderer(
map: mapView,
geometries: kmlParser.placemarks,
styles: kmlParser.styles,
styleMaps: kmlParser.styleMaps
)
renderer.render()
}
参与贡献
欢迎并鼓励贡献。请参阅贡献指南以获取指导。
支持
本库通过开源许可协议提供。它不受 Google Maps Platform 支持技术支持服务指南、SLA或弃用政策(尽管如此,库中使用的任何 Google Maps Platform 服务仍受 Google Maps Platform 服务条款约束)的约束。
本库遵循语义化版本控制,用以指示向后不兼容更改的引入。因此,在本库版本为 0.x 期间,任何时间都可能引入向后不兼容的更改。
如果您发现了一个错误,或有一个功能请求,请通过 GitHub 上的问题报告。如果您想从其他 Google Maps Platform 开发者那里获得技术问题的答案,请通过我们的开发者社区渠道之一询问,例如我们的Discord 服务器。