Google Maps iOS SDK разместить идентификатор на кран
Можно ли получить идентификатор места при нажатии на POI (iOS SDK Google Maps).
Например, нажав на ресторан, я хотел бы вызвать некоторую информацию, такую как отзывы и часы работы.
Глядя на документы, я вижу метод делегата mapView(mapView: GMSMapView!, didTapAtCoordinate coordinate: CLLocationCoordinate2D)
но ничего, что обеспечивает идентификатор места. Я не уверен, насколько точным было бы попытаться найти точный идентификатор места, используя только координаты.
1 ответ
Вы можете сделать запрос API Google Адресов к идентификатору места. Вы можете выполнить запрос API с помощью координаты.
Пример URL запроса API:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&key=API_KEY
В iOS вы можете сделать запрос API NSURLSession
:
func placesAPITest(coordinate: CLLocationCoordinate2D) {
let requestURL = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=\(coordinate.latitude),\(coordinate.longitude)&radius=500&key=YOUR_API_KEY"
let request = NSURLRequest(URL: NSURL(string:requestURL)!)
let session = NSURLSession.sharedSession()
session.dataTaskWithRequest(request,
completionHandler: {(data: NSData!, response: NSURLResponse!, error: NSError!) in
if error == nil {
let object = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as! NSDictionary
println(object)
let results = object["results"] as! [NSDictionary]
for place in results {
println(place["place_id"])
println(place["opening_hours"])
}
}
else {
println("Places API error")
}
}).resume()
}
Вы можете получить идентификатор места из ответа JSON.