GoogleMaps HeatLayer IOS SDK-使用未声明的类型'GMUHeatmapTileLayer'

时间:2019-05-23 12:31:24

标签: objective-c google-maps google-maps-sdk-ios

在按照我的说明安装Google实用程序时

  

“使用未声明的类型<GMUHeatmapTileLayer>

  

“使用未解决的标识符<GMUWeightedLatLng>

我一直在基于Google Utilites安装documentation

我已经按照指示进行操作了。

  1. 从Podfile中删除Google-Maps-iOS-Utils(如果有)。

      

    该文件最初具有框架,但已被删除。pod文件目前仅包含google地图

  2. 在您的项目中,创建一个名为“ Google-Maps-iOS-Utils”的组。 将仓库下载到本地计算机。 通过右键单击“ Google-Maps-iOS-Utils”组,然后选择“将文件添加到...”,将src目录中的文件夹添加到您的项目中。 在文件资源管理器中展开“选项”选项卡,使用以下设置: 应取消选择“如果需要复制项目” “添加的文件夹”应设置为“创建组” 应将“添加到目标”设置为您的应用目标,以避免出现未定义的符号问题

      

    此操作已完成,并下载了包含所有.h和.m文件的Geometry,QuadTree,Heatmap和Clustering文件夹

  3. 确保在XCode设置中为您的应用目标启用了“使用标题映射”(在XCode中默认为“启用”)。

      

    选中此设置为开

  4. 使用#import“ GMUMarkerClustering.h”(请注意相对路径)添加桥接头文件。

      

    创建了一个桥接标题Filename-Bridge-header.h

  5. 打开伞形标题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"
  1. 我已经更新了Objective-C桥接头,以指向我的桥接头。我搞砸了,它抛出了一个不同的标志,所以我相信这是固定的。

代码直接来自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”的使用和使用

0 个答案:

没有答案