Подтвердить что ты не робот

Использование API Google Адресов

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

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

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

Кто-нибудь использовал API Google Адресов в андроиде?

4b9b3361

Ответ 1

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

  • Чтобы использовать API Googles Places, вам необходимо зарегистрироваться и получить ключ API Карт Google.
  • В классе 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);

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

Ответ 2

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 - это просто "|".

Ответ 3

API Google Places стал общедоступным пару недель назад.

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

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

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

Ответ 4

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

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

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

Ответ 5

/*
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();
    }  

}