在按照我的说明安装Google实用程序时
“使用未声明的类型
<GMUHeatmapTileLayer>
”
和
“使用未解决的标识符
<GMUWeightedLatLng>
”
我一直在基于Google Utilites安装documentation。
我已经按照指示进行操作了。
从Podfile中删除Google-Maps-iOS-Utils(如果有)。
该文件最初具有框架,但已被删除。pod文件目前仅包含google地图
在您的项目中,创建一个名为“ Google-Maps-iOS-Utils”的组。 将仓库下载到本地计算机。 通过右键单击“ Google-Maps-iOS-Utils”组,然后选择“将文件添加到...”,将src目录中的文件夹添加到您的项目中。 在文件资源管理器中展开“选项”选项卡,使用以下设置: 应取消选择“如果需要复制项目” “添加的文件夹”应设置为“创建组” 应将“添加到目标”设置为您的应用目标,以避免出现未定义的符号问题
此操作已完成,并下载了包含所有.h和.m文件的Geometry,QuadTree,Heatmap和Clustering文件夹
确保在XCode设置中为您的应用目标启用了“使用标题映射”(在XCode中默认为“启用”)。
选中此设置为开
使用#import“ GMUMarkerClustering.h”(请注意相对路径)添加桥接头文件。
创建了一个桥接标题Filename-Bridge-header.h
打开伞形标题GMUMarkerClustering.h(在Google-Maps-iOS-Utils / Cluster组下),并将所有导入路径更改为relative。例如,将#import <Google-Maps-iOS-Utils/GMUCluster.h>
更改为#import "GMUCluster.h"
。 (“使用标题映射”设置将正确解析相对路径。)
将标记聚类标头更新为
#import "GMUCluster.h" #import "GMUClusterItem.h" #import "GMUClusterManager.h" #import "GMUDefaultClusterIconGenerator.h" #import "GMUDefaultClusterRenderer.h" #import "GMUGridBasedClusterAlgorithm.h" #import "GMUNonHierarchicalDistanceBasedAlgorithm.h" #import "GMUStaticCluster.h" #import "GQTPointQuadTree.h"
在我添加的桥接标题中
#import "GMUMarkerClustering.h" #import "GMUGeoJSONParser.h" #import "GMUKMLParser.h" #import "GMUGeometryRenderer.h"
代码直接来自Google的示例
import UIKit
import GoogleMaps
import GooglePlaces
class ViewController: UIViewController, GMSMapViewDelegate {
private var heatmapLayer: GMUHeatmapTileLayer!
@IBOutlet weak var mapView: GMSMapView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
super.viewDidLoad()
heatmapLayer = GMUHeatmapTileLayer()
heatmapLayer.map = mapView
}
//MARK: - HEAT MAP
func addHeatmap() {
var list = [GMUWeightedLatLng]()
do {
// Get the data: latitude/longitude positions of police stations.
if let path = Bundle.main.url(forResource: "police_stations", withExtension: "json") {
let data = try Data(contentsOf: path)
let json = try JSONSerialization.jsonObject(with: data, options: [])
if let object = json as? [[String: Any]] {
for item in object {
let lat = item["lat"]
let lng = item["lng"]
let coords = GMUWeightedLatLng(coordinate: CLLocationCoordinate2DMake(lat as! CLLocationDegrees, lng as! CLLocationDegrees), intensity: 1.0)
list.append(coords)
}
} else {
print("Could not read the JSON.")
}
}
} catch {
print(error.localizedDescription)
}
// Add the latlngs to the heatmap layer.
heatmapLayer.weightedData = list
}
我正在使用未声明的类型'GMUHeatmapTileLayer'。标识符“ GMUWeightedLatLng”的使用和使用