大佬教程收集整理的这篇文章主要介绍了如何在IOS的Storyboard中添加GMSMapView,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为地图聚类工作.在地图聚类中
private var mapView: GMsmapView!
用于mapView但找不到任何GMsmapView!在故事板连接.
从故事板我发现
@IBOutlet var mapView: MKMapView!
这就产生了问题.当我使用exampled谷歌地图时,它会抛出错误
这个类不是键值mapView的关键值编码兼容.
这里有完整的代码:
import UIKit import MapKit import GooglePlaces import GoogleMaps // Point of Interest Item which implements the GMUClusterItem protocol. class POIItem: NSObject,GMUClusterItem { var position: CLLOCATIOnCoordinate2D var name: String! init(position: CLLOCATIOnCoordinate2D,name: String) { self.position = position self.name = name } } let kClusterItemCount = 10000 let kCameraLatitude = -33.8 let kCameraLongitude = 151.2 class FirstViewController: UIViewController,GMUClusteRMANagerDelegate,GMsmapViewDelegate { // @IBOutlet var mapView: MKMapView! 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. // Set up the cluster manager with default 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) // Generate and add random items to the cluster manager. generateClusterItems() // Call cluster() after items have been added to perform the clustering and rendering on map. clusteRMANager.cluster() // Register self to listen to both GMUClusteRMANagerDelegate and GMsmapViewDelegate events. clusteRMANager.setDelegate(self,mapDelegate: self) } // override func loadView() { // // // Create a GMSCameraPosition that tells the map to display the // // coordinate -33.86,151.20 at zoom level 6. // let camera = GMSCameraPosition.camera(withLatitude: -33.86,longitude: 151.20,zoom: 6.0) // let mapView = GMsmapView.map(withFrame: CGRect.zero,camera: camera) // view = mapView // // // Creates a marker in the center of the map. // let marker = GMsmarker() // marker.position = CLLOCATIOnCoordinate2D(latitude: -33.86,longitude: 151.20) // marker.title = "Sydney" // marker.snippet = "Australia" // marker.map = mapView // // } // // MARK: - GMUClusteRMANagerDelegate func clusteRMANager(clusteRMANager: GMUClusteRMANager,didTapCluster cluster: GMUCluster) { let newCamera = GMSCameraPosition.camera(withTarget: cluster.position,zoom: mapView.camera.zoom + 1) let update = GMSCameraupdate.setCamera(newCamera) mapView.moveCamera(updatE) } // MARK: - GMUMapViewDelegate func mapView(mapView: GMsmapView,didTapMarker marker: GMsmarker) -> Bool { if let poiItem = marker.userData as? POIItem { NSLog("Did tap marker for cluster item \(poiItem.Name)") } else { NSLog("Did tap a normal marker") } return false } // MARK: - Private /// Randomly generates cluster items within some extent of the camera and adds them to the /// cluster manager. private func generateClusterItems() { let extent = 0.2 for index in 1...kClusterItemCount { let lat = kCameraLatitude + extent * randomScale() let lng = kCameraLongitude + extent * randomScale() let name = "Item \(indeX)" let item = POIItem(position: CLLOCATIOnCoordinate2DMake(lat,lng),name: Name) clusteRMANager.add(item) } } /// Returns a random value between -1.0 and 1.0. private func randomScale() -> Double { return Double(arc4random()) / Double(UINT32_MAX) * 2.0 - 1.0 } }
以上是大佬教程为你收集整理的如何在IOS的Storyboard中添加GMSMapView全部内容,希望文章能够帮你解决如何在IOS的Storyboard中添加GMSMapView所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。