rankby=Strecke in Google Places-Android-API
Ich geschrieben habe einige code, um die Suche von Orten in der Nähe, basierend auf deren Bedeutung. Als Nächstes würde ich gerne meine app-Suche nach Orten basierend auf aufsteigender Entfernung von der Benutzer. Um das zu tun, habe ich gelernt, dass ich rankby=distance
aber rankby
nicht erlaubt, einen Wert für radius
- so die folgenden radius-basierte Suche nicht funktioniert:
nearPlaces = googlePlaces.search(
gps.getLatitude(),
gps.getLongitude(),
radius,
types
);
Habe ich gesehen, dass mehrere blogs und Artikel, in denen die Leute gefragt, ähnliche Fragen, aber keine von Ihnen eine Antwort, die scheint zu funktionieren. Was sollte ich verwenden, wenn nicht die oben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
private static final String PLACES_SEARCH_URL = "https://maps.googleapis.com/maps/api/place/search/json?rankby=distance&";
öffentlichen PlacesList Suche(double latitude, double longitude, double radius, String-Typen)
throws Exception {
richtige ist
rankBy=distance...
Halten die
B
Kapital inrankBy...
Können Sie es umgehen. Ich benutzt 'GOOGLE PLACES WEB-SERVICES'
https://developers.google.com/places/webservice/search :
bekommen ein JSON-alle Ihre Plätze über PLÄTZE-API (HttpURLConnection benutzen um die Anfrage zu senden) :
Parsen der zurückgegebenen JSON und Holen Sie sich die Koordinaten LAT/LON, jeder von der stellen.
Bekommen ein JSON-von allen Entfernungen von der aktuellen position mit jeweils einem der Orte, die Sie DISTANCE MATRIX API:
Beachten Sie, dass die Entfernung ist zu Fuß,fahren oder Distanz, die der Distanz, die wir interessiert sind. Der radius Abstand (Luft -) Abstand ist nicht relevant. Das Wandern/fahren/Radfahren Entfernungen größer sind, als die Luft Entfernung.Also, zum Beispiel, können Sie Ihre Suche nach einem Ort im Umkreis von 10 km, sondern den Fuß, um es 11 km.
Erstellen Sie ein Objekt für jeden der Orte mit dem Namen und der Entfernung von Ihrer aktuellen position als interne Variablen.
Erzeugen Sie eine ArrayList mit allen Ihren Objekten stellen.