ios web place api получает рейтинги и отзывы - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь получить оценки и отзывы через веб-сайты Google api

с помощью сведений о месте. Я могу получить доступ к рейтингам и отзывам мест

Я хочу, чтобы можно было отображать оценки для всех местоположений.появляется на карте, но информация о месте дает только один идентификатор места, который я могу использовать?

прямо сейчас я нахожу все звездные баксы в области и возвращаю список информации, такой как время открытия.Мне бы хотелось, чтобы в идеале показывались рейтинговые обзоры, аналогичные тому, как это показывает карта Google, после поиска.

func loadStarbucksJson(_ latLong:(Double,Double)) {
        isLoading = true
        NearbyStarbucks.sharedInstance.stores.removeAll()
        tableView.reloadData()
        activityIndicator.startAnimating()

        var keys : NSDictionary?
        if let path = Bundle.main.path(forResource: "keys", ofType: "plist") {
            keys = NSDictionary(contentsOfFile: path)
        }
        var apiKey : String = ""
        if let dict = keys {
            apiKey = dict["webPlacesApiKey"]! as! String
        }
        let url = URL(string: "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=\(latLong.0),\(latLong.1)&rankby=distance&type=cafe&keyword=Starbucks&key=\(apiKey)")
        let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
            if let data = data {
                do {
                    // Convert the data to JSON
                    let jsonSerialized = try JSONSerialization.jsonObject(with: data, options: []) as? [String : Any]
                    if let json = jsonSerialized, let results = json["results"] {

                        for result in (results as! NSArray as! [NSDictionary]) {
                            if let geometry = result["geometry"] as! NSDictionary?, let location = geometry["location"] as! NSDictionary? {
                                let name = result["name"] as! String
                                let vicinity = result["vicinity"] as! String
                                let lat = location["lat"] as! Double
                                let lng = location["lng"] as! Double

                              // let rating = result["rating"] as! String
                                var openNow : Bool? = nil
                                if let opening = result["opening_hours"] as! NSDictionary?{
                                    if let opened = opening["open_now"] as! Bool? {
                                        openNow = opened
                                    }
                                }
                                let newStore = Store(name: name, vicinity: vicinity, lat: lat, lng: lng, openNow: openNow)
                                NearbyStarbucks.sharedInstance.stores += [newStore]
                            }
                        }
                    }
                } catch let error as NSError {
                    print(error.localizedDescription)
                }

            } else if let error = error {
                print(error.localizedDescription)
                let alertController = UIAlertController(title: "Could not load data", message: "Please connect to the Internet.", preferredStyle: UIAlertControllerStyle.alert)
                alertController.addAction(UIAlertAction(title: "Retry", style: UIAlertActionStyle.default, handler: { (alert) in
                    self.loadStarbucksJson(latLong)
                }))
                self.present(alertController, animated: true, completion: nil)
            }
            self.postLoadStoreJson()
        }
        task.resume()
    }
...