点击POI(iOS谷歌地图SDK)时是否可以获取地点ID。
例如点击餐馆我想提出一些信息,例如评论和开放时间。
查看文档我可以看到委托方法mapView(mapView: GMSMapView!, didTapAtCoordinate coordinate: CLLocationCoordinate2D)
,但没有提供地点ID。我不确定使用坐标来尝试找到确切的地点ID是多么准确。
答案 0 :(得分:1)
您可以对地点ID执行Google Places API request。您可以使用坐标来执行API请求。
示例API请求网址:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&key=API_KEY
在iOS中,您可以NSURLSession
执行API请求:
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()
}
您可以从the JSON response获取地点ID。