[英]Adding a marker to a GMSMapView subview ios
我正在使用Google地圖cocoapod,但不知道如何在地圖上添加標記。 我的地圖在子視圖中。 我將其放在viewDidLoad中的視圖數組中,因為出於某種原因,我不明白它總是會被刪除,然后才可以在viewDidLoad之外的方法中訪問它-這並不理想,但這是我想出辦法保存的唯一方法。 無論如何,我正在嘗試添加標記。 當我將地圖設置為這樣的主視圖時,它可以正常工作:
var camera: GMSCameraPosition = GMSCameraPosition.cameraWithLatitude(37.7833, longitude: -122.4167, zoom: 6)
var mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
self.view = mapView
var marker = GMSMarker()
marker.position = camera.target
marker.map = mapView
但是,當我嘗試將標記添加到從子視圖數組中獲得的子視圖時,它不會顯示:
var tempMapSubView = self.views[0] as! GMSMapView
var camera: GMSCameraPosition = GMSCameraPosition.cameraWithLatitude(37.7833, longitude: -122.4167, zoom: 6)
var mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
tempMapSubView.camera = camera
tempMapSubView = mapView
var marker = GMSMarker()
marker.position = camera.target
marker.map = tempMapSubView
一系列的子視圖解決方案與我嘗試做的所有其他事情都非常有效。 謝謝你的幫助!
您是否正在使用Google Maps通過IP或GPS獲取設備傳感器? 如果是,它將自動放置一個標記。 然后,您可以將標記坐標傳遞給字符串。
您的代碼是從self.views[0]
獲取地圖,然后創建一個新地圖,然后向該新地圖添加標記。 然后,您對新地圖不執行任何操作,因此它將不會顯示。 原始地圖未添加任何內容,因此您看不到標記。
我認為您需要這樣的東西:
var tempMapSubView = self.views[0] as! GMSMapView
var position = CLLocationCoordinate2DMake(37.7833, -122.4167)
var marker = GMSMarker()
marker.position = position
marker.map = tempMapSubView
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.