【问题标题】:Ho do i use google places to find a place in android我如何使用谷歌地方在android中找到一个地方
【发布时间】:2013-01-10 07:04:26
【问题描述】:

我刚刚购买了 Google API Key。我通过使用 google Places 找到了确切的位置。最重要的是我必须以编程方式找到该位置,这意味着当我打开我的应用程序时,它将在文本视图中显示该位置。我也想找到最近的地方。

谁能用完整的示例代码解释一下(用java,不是java脚本代码)

【问题讨论】:

  • 你的意思是你想在android中以编程方式搜索这些地方。
  • 是的。完全正确。
  • 试试这个: 本教程将帮助您使用google api找出plcaes androidhive.info/2012/08/…谢谢
  • 太好了。所以你可以接受我添加这个的答案

标签: android google-maps google-places-api reverse-geocoding


【解决方案1】:

您可以将以下代码用于 Google 地方 Api

这里我有搜索机场,但您可以搜索自己的位置以及何时找到 这里 getJsonResponse id 你的 httpclient

String url = "https://maps.googleapis.com/maps/api/place/textsearch/json?query="**Place To Search**"&sensor=true&key=**Your Api Key**";
                String res = getJsonRespose(url);

                if (res != null && !res.equalsIgnoreCase("")) {
                    JSONObject jObject = new JSONObject(res);
                    // if (jObject.getString("status").equalsIgnoreCase("ok")) {
                    JSONArray jArray = jObject.getJSONArray("results");

                    if (jArray.length() > 0) {
                        for (int i = 0; i < jArray.length(); i++) {
                            AirportListData adata = new AirportListData();
                            JSONObject geo = jArray.getJSONObject(i);

                            JSONObject jLocation = geo.getJSONObject("geometry");
                            JSONObject jgetLocation = jLocation
                                    .getJSONObject("location");

                            Address = geo.getString("formatted_address");
                            name = geo.getString("name");
                            adata.setAirportName(name);
                            lat = jgetLocation.getDouble("lat");
                            lng = jgetLocation.getDouble("lng");
                            adata.setLat(lat);
                            adata.setLng(lng);
                            double dis = getDistance(lat, lng);
                            adata.setAddress(Address);
                            adata.setDistnace(dis / 1000);

                            ardata.add(adata);

                            Log.e("address", "Distance" + (dis / 1000) + "Address"
                                    + Address + "name" + name + "lat" + lat + "lng"
                                    + lng);
                        }

                    }

                }

当你得到所有地方时,你可以调用 getDistance 方法并找到你当前的地方和你得到的地方之间的距离,并在计算你得到最近的地方之后

public static double getDistance(double lat, double lng) {

        try {
            float[] result = new float[3];
            // Log.e("lat long : ", c.getDouble(1) + " : " + c.getDouble(2) +
            // " : " + latitude + " : " + longitude);
            Location.distanceBetween(Constantdata.lat, Constantdata.lon, lat,
                    lng, result);
            double distance = ((double) result[0]);
            return distance;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return 0.0;

    }

这里的 Constantdata.lat 和 constant.lon 是您当前的纬度和经度,而 lat long 是您获得的纬度和对数

【讨论】:

  • 这个问题不需要我的xml
  • 你只需要 android.permission.INTERNET 就可以了
猜你喜欢
  • 2017-06-02
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多