координата функции didTapAt ничего не показывает - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь определить положение маркера, как только пользователь нажмет на карту с помощью функции координат didTapAt, но событие не сработает, я не знаю, почему

я пробовал разные функции, такие как didtap на месте, и то же самое у меня не было ошибок, но также нет результатов

import UIKit
import GoogleMaps
import Alamofire
class MapController: UIViewController {
    var postArray = [AnyObject]()
    var posts:NSArray = []
    var bounds = GMSCoordinateBounds()
    @IBOutlet var mapView: GMSMapView!
    override func viewDidLoad() {
        super.viewDidLoad()    
    }                    
        func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D){
AddMarker(title: "test", snippet: "test" latitude: coordinate.latitude, longitude: coordinate.longitude)
        }                
    func mapView(_ mapView: GMSMapView, didTapPOIWithPlaceID placeID: String,
                 name: String, location: CLLocationCoordinate2D) {
        AddMarker(title: placeID, snippet: name, latitude: location.latitude, longitude: location.longitude)
        print("You tapped \(name): \(placeID), \(location.latitude)/\(location.longitude)")
    }                        
    private func AddMarker(title:String , snippet:String  , latitude:Double , longitude:Double){

        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
        marker.title = title
        marker.snippet = snippet
        marker.map = mapView
        bounds = bounds.includingCoordinate(marker.position)
        let update = GMSCameraUpdate.fit(bounds, withPadding: 100)
        mapView.animate(with: update)
    }    
    }
    override func loadView() {
       GMSServices.provideAPIKey("MyApiKey")
        let camera = GMSCameraPosition.camera(withLatitude: 36, longitude: 10, zoom: 15)
         mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
        view = mapView
       // AddMarker(title: "pala", snippet: "nanana", latitude: 30.89939467218524, longitude: 10.187976658344267)
    }
}

1 Ответ

1 голос
/ 23 мая 2019

Для mapView нужна ссылка на ваш контроллер представления, чтобы знать, куда отправлять события. Вам необходимо назначить mapView.delegate для self и настроить ViewController на соответствующий протокол делегирования, например:

class MapController: UIViewController, GMSMapViewDelegate

Затем в loadView добавьте эту строку.

mapView.delegate = self

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...