2014-07-19 32 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

相关问题