2015-08-11 7 views
2

Я использую карты Google cocoapod, и я не могу понять, как добавить маркер к моей карте. Моя карта находится в подпункте. Я поместил его в массив представлений в viewDidLoad, потому что по какой-то причине я не понимаю, что он всегда удаляется, прежде чем я могу получить доступ к нему в методах вне viewDidLoad - не идеально, но это был единственный способ, который я мог бы выяснить, чтобы его сохранить , Во всяком случае, я пытаюсь добавить маркер. Когда я поставил карту, чтобы мой основной взгляд, как это работает отлично:Добавление маркера в подпрограмму GMSMapView iOS

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 

Массив решения subviews отлично работает со всеми остальными вещами, которые я пытаюсь сделать. Спасибо за вашу помощь!

ответ

0

Ваш код получает карту от 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 
+0

Отлично! Отличное объяснение спасибо! –

0

Вы используете карты Google, чтобы получить датчик своего устройства через IP или GPS? Если так, то он должен автоматически помещать маркер. Затем вы можете передать координаты маркера в строку.

+0

Я использую основную библиотеку местоположения КСНА поэтому я полагаю, GPS. Как мне получить координаты маркера? –

 Смежные вопросы

  • Нет связанных вопросов^_^