Android谷歌地图点之间的距离

时间:2012-07-17 14:15:15

标签: android listview

这是一个ListView,我可以显示城市和地点。我想显示从当前点到列出的位置的距离。

例如:

+++++++++++++++++++++++++
Name :Hotel Hilton
Category :hotel
distance:1km
+++++++++++++++++++++++++

如何计算和显示列表中的每个距离值?

ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();

            JSONArray jsonArray = new JSONArray(response);

            if (jsonArray != null) {
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject object = (JSONObject) jsonArray.get(i);

                    HashMap<String, String> map = new HashMap<String, String>();

                    map.put(TAG_Name, object.getString("name"));
                    map.put(TAG_Category, object.getString("category"));
                    map.put(TAG_Lat, object.getString("lat"));
                    map.put(TAG_Lng, object.getString("lng"));

                    contactList.add(map);

                }
            }

            ListAdapter adapter = new SimpleAdapter(this, contactList,
                    R.layout.menu_list_row, new String[] { TAG_Name,
                    TAG_Category }, new int[] { R.id.LR_Name,
                            R.id.LR_date });
            list.setAdapter(adapter);
        }

当前位置从GPS识别并存储为lat,lng。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以使用:

float[] res = new float[3];
Location.distanceBetween(object.getDouble("lat"), object.getDouble("lng"), lat,lng, res);

假设前两个参数是双精度数,表示对象的位置,而latlng变量包含您当前的位置。

以米为单位的结果将为res[0]