2014-07-19 34 views
-1

嗯,我現在正在編寫一個android應用程序,並且我使用Google地方的REST Api來獲取某個地方的信息,問題是何時會出現如此多的結果在 響應的Http請求不包含所有的Json文件,只有一些對象和最後一個對象不完整,所以我想減少來自API響應的數據,並且我問如果有任何參數設置在URL中爲我做這個。如何僅使用Google place API獲取特定屬性

不:該URL =(https://maps.googleapis.com/maps/api/place/textsearch/json?query=H%C3%B4pital+New紐約&傳感器=假&鍵= API_KEY_HERE)

+1

你可以這樣做很容易,有很多查詢參數可以獲得合併記錄,滿足查詢條件,使用半徑= 500,類型=食品等等。我建議從[地方搜索](https://developers.google.com/places/documentation/search)閱讀谷歌地方API –

+0

@jitainsharma:我之前搜索過,但沒有找到任何匹配的東西我的需求,我認爲你不會得到我的問題,我不需要做一個過濾器,因爲我已經這樣做了,但我想刪除一些信息,回到我減少字符串結果... – Oussaki

回答

0

你真正需要的是pagetoken什麼:

public PlacesList search(double latitude, double longitude, double radius, String types) 
      throws Exception { 

     try { 

      HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT); 
      HttpRequest request = httpRequestFactory 
        .buildGetRequest(new GenericUrl("https://maps.googleapis.com/maps/api/place/search/json?")); 
      request.getUrl().put("key", YOUR_API_KEY); 
      request.getUrl().put("location", latitude + "," + longitude); 
      request.getUrl().put("radius", radius); 
      request.getUrl().put("sensor", "false"); 
      request.getUrl().put("types", types); 

      PlacesList list = request.execute().parseAs(PlacesList.class); 

      if(list.next_page_token!=null || list.next_page_token!=""){ 
       Thread.sleep(4000); 
         /*Since the token can be used after a short time it has been generated*/ 
       request.getUrl().put("pagetoken",list.next_page_token); 
       PlacesList temp = request.execute().parseAs(PlacesList.class); 
       list.results.addAll(temp.results); 

      } 
      return list; 

     } catch (HttpResponseException e) { 
      return null; 
     } 

    } 

從引用:Google Places API : Number of results

相關問題