0

我正在开发一个应用程序,我需要检索当前位置附近的餐馆。论坛建议我使用 Google Places API。当我阅读 Google Place API 时,它说项目需要是“Google App Engine 项目”+ Android 客户端。但是我很困惑,因为我对谷歌世界还很陌生,这是否是一种正确的做法。

有人可以建议我检索当前位置附近餐厅的最佳方式吗?

谢谢。

4

1 回答 1

0

按照这个链接。为您的应用程序创建一个应用程序密钥,您只需发出一个 Http 请求,您将获得 Xml//json 中的所有信息。 https://developers.google.com/places/documentation/

https://maps.googleapis.com/maps/api/place/search/xml?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AddYourOwnKeyHere

在上面的网址中,添加您的 Api 密钥和位置。它将返回一个 xml 给您,其中包含 500m 圈内的所有restras。

此 url 将只接受获取请求。Yov 必须在 Url 本身中附加所有参数。

@Override
                public void run() 
                {
                     String params="location="+(location.getLatitude())+","+(location.getLongitude())+"&radius=5000&types=food&sensor=false&key=your kay";
                        try
                        {
                            http.getPlaces(new URL("https://maps.googleapis.com/maps/api/place/search/xml?"+params));
                            Log.i("url", "https://maps.googleapis.com/maps/api/place/search/xml?"+params);
                            setList();
                        } 
                        catch (MalformedURLException e)
                        {
                            e.printStackTrace();
                        }
                        catch (Exception e) 
                        {
                            e.printStackTrace();
                        }

                }
            });


public void getPlacesDetails(URL url) throws Exception {
    try 
    {
        connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.setDoOutput(true);
        connection.setUseCaches(false);

        connection.setConnectTimeout(TIMEOUT_CONNECT_MILLIS);
        connection.setReadTimeout(TIMEOUT_READ_MILLIS);
        connection.setRequestMethod("GET");

        inStream = (InputStream) connection.getInputStream();


        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();

        HospitalDetailParser myXMLHandler = new HospitalDetailParser();
        xr.setContentHandler(myXMLHandler);
        xr.parse(new InputSource(inStream));


    }

    catch (MalformedURLException e) 
    {

        Log.i("exception in sms", "" + e.toString());
        throw e;
    }

    catch (Exception e) 
    {

        Log.i("exception in sms", "" + e.toString());
        throw e;
    }

}
于 2012-07-18T07:33:12.607 回答