Usar a API do Google Places

quero desenvolver uma aplicação na qual quero mostrar informação sobre locais próximos (dentro de 1km )do utilizador, obtendo a sua localização actual..

Por exemplo, quero mostrar informações sobre restaurantes, shoppings, hospitais localizados dentro de 1km, relacionados com a localização atual do dispositivo android..

passei por este link: Usando a API do Google Places no Android .. Mas não consegui mais.

alguém usou a API do Google para colocar Andróide ?

Author: Community, 2011-04-05

5 answers

Tente este tutorial: usando-googles-places-api e onde quer que tenha problemas, Peça-o em comentário.

Alguns pontos a ter em mente:
  • para utilizar a API do Google Places, terá de se registar e obter uma chave de API do Google Map.
  • na classe UrlSigner no tutorial as descrições das variáveis são: keyString = > a sua chave da api do google map. urlString = > é o url que deseja assinar com a tecla api.
  • Em código encontrarás inputKey e inputUrl. estas 2 variáveis são apenas para fins de teste que você pode omiti-las se quiser. Você pode escrever código diretamente do seguinte modo:

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

No método principal da classe UrlSigner.

 27
Author: Harry Joy, 2011-04-24 17:24:10
A API funciona bem na Índia (claro que funcionará em qualquer lugar do mundo). O que você deve passar é O Google coloca API . Você pode simplesmente dar um pedido de url para o google com a localização atual do Usuário e os tipos de lugar que você preferiria.

A resposta pode ser XML ou Json de acordo com o seu pedido. Tudo o que tens de fazer é analisá-lo. Você pode obter lugares à sua volta até 50 kms. Um exemplo para o pedido de 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

* Nota: %7C é apenas"|".

 12
Author: Deepukjayan, 2012-02-07 09:50:19
O Google Places API tornou-se público há umas semanas.

Usando o Android Compatível Google APIs Client Library para Java , você pode usar a API do Google Places a partir de uma execução do Android.

O Google coloca API REST está bem documentado. Por exemplo, ao usar a biblioteca cliente APIs do Google para Java e a API do Google Places, confira o seguinte blog entrada:

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

 5
Author: ddewaele, 2011-05-30 09:20:26
Tenha em mente que o tutorial foi escrito há quase um ano. Os lugares API foi lançado ao público desde então, por isso o processo de registro é agora muito mais simples-veja a documentação em: http://code.google.com/apis/maps/documentation/places/#Limits

Existem também novos recursos disponíveis agora, incluindo pesquisa por categoria, com mais de 100 categorias diferentes oferecidas, e um Autocomplete servico: http://code.google.com/apis/maps/documentation/places/autocomplete.html

Em particular, a pesquisa de categorias deve ajudá-lo a encontrar restaurantes, shoppings e hospitais especificamente.
 2
Author: sarah.w.99, 2011-05-19 00:30:50
/*
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
Author: Harshal Voonna, 2013-10-01 15:12:35