如何将坐标传递给 Google Places iOS API



我在我的一个应用程序中使用谷歌地方信息,在给定坐标的地方,我需要找到附近的地方。地点的 iOS API 可以使用当前地点,也可以使用地点选取器。我不想要这些,而是传递坐标并获取附近的地方,因为我从图像中获取这些坐标。

当电影院经过那个地方时,你应该得到像餐厅,酒吧等类型

迅速

func fetchPlacesNearCoordinate(coordinate: CLLocationCoordinate2D, radius: Double, name : String){
let apiServerKey = "API-Key"
let urlString :URLRequest = URLRequest.init(url: URL.init(string: "https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=(apiServerKey)&location=(currentlatitude),(currentlongitude)&radius=(radius)&types=(Cinema)&rankby=prominence&sensor=true&name=(Cinemas)")!)
print(urlString)
UIApplication.shared.isNetworkActivityIndicatorVisible = true
let placesTask = URLSession.shared.dataTask(with: urlString) {data, response, err in guard let data = data, err == nil else{
print("error ==>(err)")
return
}
let responsestring = String(data: data, encoding: .utf8)
do {
let jsondata1 = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as! NSDictionary
print("Final data Convert to JSON =>(jsondata1)")
let results = jsondata1["results"] as! NSArray
print("Results ==> (results)")
}
catch{
print("error ==>(err)")
}
}
placesTask.resume()
}

这将通过传递坐标返回您附近的地方。只需调用此函数并传递坐标

func getPlacesUsingCoordinates(coordinate: CLLocationCoordinate2D, radius: Double, name : String){
//Pass name of place you want to search nearby in name
var urlString = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=(apiServerKey)&location=(coordinate.latitude),(coordinate.longitude)&radius=(radius)&rankby=prominence&sensor=true"
urlString += "&name=(name)"
urlString = urlString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
placesTask = session.dataTaskWithURL(NSURL(string: urlString)!) {data, response, error in
if let json = NSJSONSerialization.JSONObjectWithData(data, options:nil, error:nil) as? NSDictionary {
if let results = json["results"] as? NSArray {
if let name = results["name"] as? String {
print(name) //Place Name 
}
if let location = results["geometry"] 
print(location) //Geometry
}
}
}
self.placesTask.resume()
}
}

如果您想了解更多地点详细信息,请使用:

CLGeocoder().reverseGeocodeLocation(yourLocation) { (placeDetails, error) in
// This provide every info related to location. Just pass yourLocation here       
}

希望这就是你要注意的。

最新更新