23

我正在开发一个应用程序,我可以在其中获取用户附近的 ATM 列表。为此,我使用的是 Google Places API,但每次它只返回 20 个结果。我想得到更多的结果。在 API 文档中提到它将返回 20 结果,但我想知道有什么方法可以获得更多数据,或者我必须为此创建自己的数据库?
我在 API 中还发现它没有印度的所有 ATM。某些位置的信息也不准确。所以请给我一些想法,我应该使用自己的数据库吗?
我知道我可以在 Google Places 中注册地点,但问题是每次它只返回 20 个结果。如果无论如何解决了这个问题,那么使用 Places API 会很棒。

请帮助我......

4

7 回答 7

28

根据文档:

https://developers.google.com/places/web-service/search#PlaceSearchResponses

编辑: Place API 现在支持多达 60 个结果的分页。详情见下文。

Places API 每次查询最多返回 20 个场所;但是,每次搜索最多可以返回 60 个结果,分成三个页面。如果您的搜索将返回超过 20 个,则搜索响应将包含一个附加参数 — next_page_token。将 next_page_token 的值传递给新地点搜索的 page_token 参数以查看下一组 20 个结果。

还有严格的服务条款规定您不能预取、缓存或存储内容,除非它是您被允许存储的内容标识符或密钥,即来自地点搜索的参考令牌:

https://cloud.google.com/maps-platform/terms/?_ga=#3-license

关于在印度找不到自动取款机。所有地点都按该类型分类,establishment直到 Google 有足够的关于某个地点的元数据将其分类为更具体的地点类型,例如、ATM等。可能会找到更多结果的解决方法是在您的请求中使用类似“ATM”的参数, 'bank' 或 'finance' 作为值。根据文档:cafebarkeyword

https://developers.google.com/places/web-service/search#PlaceSearchRequests

keyword参数与所有可用字段匹配,包括但不限于姓名、类型和地址,以及客户评论和其他第三方内容。

于 2012-03-09T01:20:56.950 回答
19

Google API在一个页面中获取20 Result假设您想使用下一页 20 结果,那么我们使用来自 google 第一页 xml 的next_page_token作为结果。

1) https://maps.googleapis.com/maps/api/place/search/xml?location=Enter latitude,Enter Longitude&radius=10000&types=store&hasNextPage=true&nextPage()=true&sensor=false&key=Enter Google_Map_key

在第二步中,您使用第一页的next_page_token数据

2)https://maps.googleapis.com/maps/api/place/search/xml?location=Enter Latitude,Enter Longitude&radius=10000&types=store&hasNextPage=true&nextPage()=true&sensor=false&key=enter google_map_key &pagetoken="Enter the first page token Value"

于 2012-09-13T13:12:42.687 回答
6

您可以使用 Google API JAVA 客户端执行此操作 - 这是一个使用 java 客户端获取所有 60 个结果的示例。

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);

                if(temp.next_page_token!=null||temp.next_page_token!=""){
                    Thread.sleep(4000);
                    request.getUrl().put("pagetoken",temp.next_page_token);
                    PlacesList tempList =  request.execute().parseAs(PlacesList.class);
                    list.results.addAll(tempList.results);
              }

            }
            return list;

        } catch (HttpResponseException e) {
            return null;
        }

    }
于 2012-10-10T17:57:16.177 回答
1

在 Google 位置页面上:https ://developers.google.com/places/documentation/search 在“雷达搜索请求”下,它声明使用:https ://maps.googleapis.com/maps/api/place/radarsearch /output?parameters 您使用此调用获得 200 个结果,但请注意,每个调用使用 5 个请求来对抗您的配额。

于 2013-05-15T07:28:04.320 回答
1

雷达搜索不再起作用,因为它不再存在:https ://cloud.google.com/blog/products/maps-platform/announcing-deprecation-of-place-add

见:https ://stackoverflow.com/a/48171023/9903

于 2019-06-25T21:21:49.153 回答
0

请使用以下参数尝试以下网址

URL = " http://www.google.com/maps?q=restaurant&ie=UTF8&hl=en&sll=0.000000,0.000000&sspn=0.000000,0.000000&vps=3&sa=N&start=20 "

其中 start = No of results 例如从 0 或 10 0r 20 开始 -

于 2012-04-27T11:10:30.927 回答
-1

您可以从下一页令牌中获得更多结果:

https://maps.googleapis.com/maps/api/place/textsearch/json?query=[your search key word]&location=latitude,longitude&radius=value&key=[your API key]&next_page_token=next_page_token value
于 2016-05-24T06:22:47.777 回答