Показать динамический маркер GoogleMap из JSON - PullRequest
0 голосов
/ 22 сентября 2018

Как я могу показать динамические маркеры в Google Map Marker после извлечения ответа широты и долготы из JSON здесь мой код маркера показа, но я инициирую объект камеры в viewDidLoad (), так что это не работает, но если не инициировать объект камеры в viewDidLoad () объект камеры показывает ошибку

, вот функция showMarkerFunction:

private func showMarker(_ lat: String, _ lng: String, _ description: String){

        let latitude: CLLocationDegrees = Double(lat) ?? 0.00
        let longitude: CLLocationDegrees = Double(lng) ?? 0.00

        print("Latitude: \(latitude), Longitude: \(longitude)")


        let position = CLLocationCoordinate2DMake(latitude, longitude)
        let marker = GMSMarker(position: position)
        marker.title = ""
        marker.map = self.mapView

    }

1 Ответ

0 голосов
/ 22 сентября 2018

сначала установите камеру в метод loadView следующим образом:

override func loadView() {

    // set mapView with settings
    let camera = GMSCameraPosition.camera(withLatitude: 30.101932, longitude: 31.379173, zoom: 15.5)
    let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
    mapView.delegate = self
    mapView.isMyLocationEnabled = true
    mapView.settings.compassButton = true
    mapView.settings.myLocationButton = true
    mapView.setMinZoom(8, maxZoom: 20)
    self.mapView = mapView
    view = mapView
}

, затем установите функцию маркера следующим образом

func drawMarker(lat: CLLocationDegrees , long: CLLocationDegrees, description : String) {
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: lat, longitude: long)
    marker.icon = UIImage(named: "")
    marker.map = mapView
}

, наконец, в функции viewDidLoad вызовите ваш метод

drawMarker(lat: Double("your value"), long: Double("your value"), description: "")
...