Использование Google Places API - PullRequest
34 голосов
/ 05 апреля 2011

Я хочу разработать приложение, в котором я хочу отображать информацию о местах поблизости (в пределах 1 км) от пользователя, получая его текущее местоположение.

Скажем, например, я хочу отобразить информацию о ресторанах, торговых центрах, больницах, расположенных в пределах 1 км, связанных с текущим местоположением устройства Android.

Я прошел по этой ссылке: Использование Google Places API в Android .. Но больше не получил.

Кто-нибудь использовал Google Places API в Android?

Ответы [ 5 ]

24 голосов
/ 24 апреля 2011

Некоторые моменты, о которых следует помнить:

  • Чтобы использовать Google Places API, вам необходимо зарегистрироваться и получить ключ API Google Map.
  • В классе UrlSigner в учебном пособии описания переменных: keyString => - это ваш API-ключ Google Map.urlString - это URL, который вы хотите подписать с помощью клавиши API.
  • В коде вы найдете inputKey и inputUrl.Эти две переменные только для целей тестирования, вы можете опустить их, если хотите.Вы можете напрямую написать код следующим образом:

    URL url = new URL(urlString);

    UrlSigner signer = new UrlSigner(keyString);

    String request = signer.signRequest(url.getPath(),url.getQuery());

    System.out.println("Signed URL :" + url.getProtocol() + "://" + url.getHost() + request);

в методе main класса UrlSigner.

12 голосов
/ 07 февраля 2012

API хорошо работает в Индии (конечно, будет работать в любой точке земного шара). Вам нужно пройти через API Google Адресов . Вы можете просто отправить URL-адрес в Google с указанием текущего местоположения пользователя и типов мест, которые вы предпочитаете.

Ответ может быть либо XML, либо Json согласно вашему запросу. Все, что вам нужно сделать, это разобрать. Вы можете получить места вокруг вас до 50 км. Пример запроса URL:

https://maps.googleapis.com/maps/api/place/search/xml?location=9.934866,76.267235&radius=50000&types=country%7Cairport%7Camusement_park%7Cbank%7Cbook_store%7Cbus_station%7Ccafe%7Ccar_rental%7Ccar_repair%7Cchurch%7Cdoctor%7Cfire_station%7Cfood%7Chindu_temple%7Chospital%7Clawyer%7Clibrary%7Cmosque%7Cmuseum%7Cpark%7Cparking%7Cpharmacy%7Cpolice%7Cpost_office%7Crestaurant%7Cschool%7Ctrain_station%7Czoo&sensor=true&key=your_API_Key

* Примечание:% 7C это просто "|".

4 голосов
/ 30 мая 2011

API Google Адресов был опубликован пару недель назад.

Используя Android-совместимую клиентскую библиотеку API Google для Java , вы можете использовать Google Places API из среды выполнения Android.

API-интерфейс REST API Google Places хорошо документирован. Пример использования клиентской библиотеки API Google для Java и API Google Адресов можно найти в следующей записи блога:

http://ddewaele.blogspot.com/2011/05/introducing-google-places-api.html

1 голос
/ 01 октября 2013
/*
For google api key:-
login to your mail account
go to https://code.google.com/apis/console/
goto services tab
click on places api and google map api button. Fill the details
goto api access tab and copy your google api key
*/



package com.example.jstest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.widget.Toast;

public class MainActivity extends Activity {
    private String googleAPIKey = "your google api key"; 
    DefaultHttpClient client;
    HttpResponse res;
    HttpGet req;
    InputStream in;
    JSONObject jsonobj;
    JSONArray resarray;
    String requesturl;
    HttpEntity jsonentity;

    final String TAG = getClass().getSimpleName();  


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        requesturl="https://maps.googleapis.com/maps/api/place/search/json?radius=500&sensor=false&key="+googleAPIKey+"&location=13.01,74.79";

        System.out.println("Request "+requesturl);
        client=new DefaultHttpClient();
        System.out.println("hello");

        req=new HttpGet(requesturl);
        System.out.println("hello");

        try {
            res=client.execute(req);
            StatusLine status = res.getStatusLine();
            int code = status.getStatusCode();
            System.out.println(code);
            if(code!=200)
            {
                System.out.println("Request Has not succeeded");
                finish();
            }

            jsonentity=res.getEntity();
            in = jsonentity.getContent();

            jsonobj=new JSONObject(convertStreamToString(in));


            resarray = jsonobj.getJSONArray("results");

            if(resarray.length()==0){
            }
            else{
                int len=resarray.length();
                for(int j=0;j<len;j++)
                {
                    Toast.makeText(getApplicationContext(), resarray.getJSONObject(j).getString("name") , Toast.LENGTH_LONG).show();
                }
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }   
        catch (JSONException e) {
            e.printStackTrace();
        }   
    }

    private String convertStreamToString(InputStream in) {
        BufferedReader br=new BufferedReader(new InputStreamReader(in));
        StringBuilder jsonstr=new StringBuilder();
        String line;
        try {
            while((line=br.readLine())!=null)
            {
                String t=line+"\n";
                jsonstr.append(t);
            }
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return jsonstr.toString();
    }  

}
1 голос
/ 19 мая 2011

Имейте в виду, этот учебник был написан почти год назад. С тех пор API Places был открыт для общественности, поэтому процесс регистрации теперь намного проще - см. Документацию по адресу: http://code.google.com/apis/maps/documentation/places/#Limits

В настоящее время доступны также новые функции, в том числе поиск по категориям, более 100 различных категорий и услуга автозаполнения: http://code.google.com/apis/maps/documentation/places/autocomplete.html

В частности, поиск по категориям должен помочь вам найти рестораны, торговые центры и больницы, в частности.

...