it-swarm.com.de

Wie erhalte ich über 20 Ergebnisse mit der Google Places-API?

Ich entwickle eine App, in der ich die Liste der Geldautomaten in der Nähe des Benutzers erhalte. Dafür benutze ich Google Places API, aber jedes Mal gibt es nur 20 Ergebnisse zurück. Ich möchte mehr Ergebnisse erzielen. In der API-Dokumentation wird erwähnt, dass 20 Ergebnisse zurückgegeben werden. Ich möchte jedoch wissen, ob es eine Möglichkeit gibt, mehr Daten abzurufen, oder ob ich dafür eine eigene Datenbank erstellen muss. Auch was ich in der API gefunden habe, ist, dass es nicht alle Geldautomaten für Indien hat. Die Informationen sind für einige Standorte auch nicht korrekt. Also, bitte schlagen Sie mir eine Idee vor, ob ich meine eigene Datenbank verwenden soll oder nicht. Ich weiß, dass ich Orte in Google Places registrieren kann, aber da ist das Problem, dass jedes Mal nur 20 Ergebnisse zurückgegeben werden. Wenn dieses Problem dennoch behoben ist, ist es hilfreich, die Places-API zu verwenden.

Bitte helfen Sie mir freundlich .....

14
Scorpion

Laut Dokumentation: http://code.google.com/intl/de/apis/maps/documentation/places/#PlaceSearchResponses

EDIT: Place API unterstützt jetzt die Paginierung von bis zu 60 Ergebnissen. Details finden Sie unten.

Die Places-API gibt bis zu 20 Einrichtungen pro Abfrage zurück. Jede Suche kann jedoch bis zu 60 Ergebnisse zurückgeben, die auf drei Seiten aufgeteilt sind. Wenn Ihre Suche mehr als 20 ergibt, enthält die Suchantwort einen zusätzlichen Parameter - next_page_token. Übergeben Sie den Wert von next_page_token an den Parameter page_token einer neuen Ortssuche, um die nächsten 20 Ergebnisse anzuzeigen.

Es gibt auch strikte Servicebedingungen, die angeben, dass Sie keine Vorabruf-, Cache- oder Store-Inhalte verwenden können, es sei denn, es handelt sich um die Inhaltskennung oder den Schlüssel, den Sie speichern dürfen, dh Referenztoken aus einer Ortssuche: http: //code.google.com/intl/de/apis/maps/terms.html#section_10_1_3

Im Hinblick darauf, in Indien keine Geldautomaten finden zu können. Alle Orte werden unter dem Typ establishment kategorisiert, bis Google über genügend Metadaten für einen Ort verfügt, um ihn unter spezifischeren Ortstypen wie ATM, cafe, bar usw. zu kategorisieren. Eine Möglichkeit, weitere Ergebnisse zu finden, besteht in der Verwendung des Parameters keyword in Ihrer Anforderung etwas wie "ATM", "Bank" oder "Finanzen" als Wert. Laut Dokumentation: http://code.google.com/apis/maps/documentation/places/ Der Parameter keyword wird mit allen verfügbaren Feldern abgeglichen, einschließlich, aber nicht beschränkt auf Name, Typ und Adresse sowie Kundenbewertungen und andere Inhalte von Drittanbietern.

13
Chris Green

Google API holt das 20 Ergebnis auf einer Seite. Angenommen, Sie möchten das Ergebnis der nächsten Seite 20 verwenden. Als Ergebnis verwenden Sie das next_page_token von google first page xml.

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

im zweiten Schritt verwenden Sie die erste Seite next_page_token data

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"

15
Rushabh

Sie können dies tun, indem Sie den Java-Client von Google API verwenden. Hier ein Beispiel, in dem der Java-Client verwendet wird, um alle 60 Ergebnisse zu erhalten.

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

    }
6
shreks7
1
Alex Fedotov

Auf der Seite von Google Orte: https://developers.google.com/places/documentation/search Unter "Radarsuchanfragen" wird angegeben, dass: https: // maps verwendet wird. googleapis.com/maps/api/place/radarsearch/output?parameters Sie erhalten mit diesem Aufruf 200 Ergebnisse. Beachten Sie jedoch, dass jeder Aufruf 5 Anfragen für Ihr Kontingent verwendet.

1
nickelastic

Weitere Ergebnisse erhalten Sie auf der nächsten Seite.

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

Bitte versuchen Sie unter URL mit den folgenden Parametern 

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

Wobei start = Nein der Ergebnisse beispielsweise von 0 oder 10 0r 20 aus 

0
Gauging