2015-06-08 191 views
4

當點擊一個POI(iOS谷歌地圖SDK)時,是否有可能獲得地點ID?谷歌地圖iOS SDK位置id

例如點擊餐廳我想提出一些信息,如評論和開放時間。

看看文檔,我可以看到代理方法mapView(mapView: GMSMapView!, didTapAtCoordinate coordinate: CLLocationCoordinate2D)但沒有提供地點id。我不知道如何使用座標來試圖找到確切的地點id。

回答

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。

+0

@Ben_hawk,我的答案能解決你的問題嗎?如果是這樣,你能否將我的答案標記爲已接受?謝謝。 – ztan