是否可以不接管屏幕? Google 地点 IOS swift

Is it possible to not take over screen? Google Places IOS swift

下面的代码来自 Google 只有 return 一个地方,如果我从列表中选择一个像我附上的那个。

我的问题: 是否有任何功能可用于将所有地点的详细信息存储在给定坐标中?比如我的坐标是(51.5108396,-0.0922251),我怎么才能得到附近所有地方的信息呢?我不熟悉Json。有没有接近我想要的例子?非常感谢。

这个函数placesClient.currentPlaceWithCallback有点接近我想要的,但是它不能使用自定义坐标,因为它使用用户的当前坐标。

//https://developers.google.com/places/ios-api/placepicker
let center = CLLocationCoordinate2DMake(51.5108396, -0.0922251)
let northEast = CLLocationCoordinate2DMake(center.latitude + 0.001, center.longitude + 0.001)
let southWest = CLLocationCoordinate2DMake(center.latitude - 0.001, center.longitude - 0.001)
let viewport = GMSCoordinateBounds(coordinate: northEast, coordinate: southWest)
let config = GMSPlacePickerConfig(viewport: viewport)
let placePicker = GMSPlacePicker(config: config)
placePicker?.pickPlaceWithCallback({ (place: GMSPlace?, error: NSError?) -> Void in
    if let error = error {
        print("Pick Place error: \(error.localizedDescription)")
        return
    }
    if let place = place {
        print("Place name \(place.name)")
        print("Place address \(place.formattedAddress)")
        print("Place attributions \(place.attributions)")
    } else {
        print("No place selected")
    }
})

由于升级 iOS 版本,某些内容已更改。

完成更改的代码

func fetchPlacesNearCoordinate(coordinate: CLLocationCoordinate2D, radius: Double, types:[String]) {
    var urlString = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=\("your api key")&location=\(coordinate.latitude),\(coordinate.longitude)&radius=\(radius)&rankby=prominence&sensor=true"
    let typesString = types.count > 0 ? types.joinWithSeparator("|") : "food"
    urlString += "&types=\(typesString)"
    urlString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!
    UIApplication.sharedApplication().networkActivityIndicatorVisible = true
    let session = NSURLSession.sharedSession()
    let placesTask = session.dataTaskWithURL(NSURL(string: urlString)!) {data, response, error in
        UIApplication.sharedApplication().networkActivityIndicatorVisible = false
        if let jsonResult = (try? NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers)) as? NSDictionary {
            let returnedPlaces: NSArray? = jsonResult["results"] as? NSArray
            if returnedPlaces != nil {
                 for index in 0..<returnedPlaces!.count {
                     if let returnedPlace = returnedPlaces?[index] as? NSDictionary {
                        var placeName = ""
                        var latitude = 0.0
                        var longitude = 0.0
                        if let name = returnedPlace["name"] as? NSString {
                            placeName = name as String
                        }
                        if let geometry = returnedPlace["geometry"] as? NSDictionary {
                            if let location = geometry["location"] as? NSDictionary {
                                if let lat = location["lat"] as? Double {
                                    latitude = lat
                                }
                                if let lng = location["lng"] as? Double {
                                    longitude = lng
                                }
                            }
                        }
                        print("index", index, placeName, latitude, longitude)
                    }
                }
            }
        }
    }
    placesTask.resume()
}