Карта с несколькими маркерами, отображающая только один маркер, когда их много в списке, когда они помещаются в очередь отправки - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть массив значений lon, где я пытаюсь выставить все значения lat с маркерами, только 1 маркер отображается на карте.Пожалуйста, помогите

for item in json {
    //print(item["price"])
    if let vendor = item["vendor"] as? [String:Any],
       let lat = vendor["latitude"] as? Double,
       let lon = vendor["longitude"] as? Double,
       let termsandcondi = item["termsAndConditions"] as? String,
       let pre = item["price"] as? Int ,
       let name = item["name"] as? String, !name.isEmpty {
        //print(termsandcondi)
        //print(pre)
        self.locationManager.delegate = self
        self.locationManager.requestWhenInUseAuthorization()
        self.locationManager.startUpdatingLocation()
        let data = ["name":name,"latitude":lat,"longitude":lon,"termsAndConditions":termsandcondi,"price":pre] as! [String : AnyObject]
        //print("getting here")
        self.myArray.append(data)
        DispatchQueue.main.async {
             print("Coming here !! Dispatch Queue")
             let camera = GMSCameraPosition.camera(withLatitude:12.9716, longitude:77.5946, zoom: 10.0)
             let subView = GMSMapView.map(withFrame: CGRect(x: 0, y: 0, width: self.mapView.frame.size.width, height: self.mapView.frame.size.height), camera: camera)
             self.nameDeal.text = name as String?
             self.pric.text = String(describing: pre)
             let marker = GMSMarker()
             marker.position = CLLocationCoordinate2D(latitude:lat, longitude:lon)
             marker.title = name
             marker.map = self.mapView
             //marker.map = self.mapView
        }

1 Ответ

0 голосов
/ 12 декабря 2018

Этот метод позволит вам разместить несколько пинов на карте.Поместите это в метод и используйте func prepareMap () {

//Filtered data is in array of key values that contains lat long
    guard let _filteredData = filteredData else { return }

    //Converting lat long to double
     var latitude = filteredData?.first?.lATITUDE
      var  longitude = filteredData?.first?.lONGITUDE


    for pins in _filteredData{
        let position = CLLocationCoordinate2D(latitude: CLLocationDegrees(Float(latitude)), longitude: CLLocationDegrees(Float(longitude)))
        let marker = GMSMarker(position: position)
        marker.icon = UIImage(named: "map-location-pin")
        marker.map = self.mapView
        marker.userData = pins.iD
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...