簡體   English   中英

將標記添加到GMSMapView子視圖iOS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM